diff --git a/README.adoc b/README.adoc index f635ef0266..cf050c6aad 100644 --- a/README.adoc +++ b/README.adoc @@ -1,22 +1,43 @@ = Couchbase Server Documentation // Settings: +<<<<<<< HEAD +ifndef::env-github[:icons: font] +======= +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ifdef::env-github[] :warning-caption: :warning: endif::[] // URLs: :url-org: https://github.com/couchbase +<<<<<<< HEAD +======= :url-contribute: https://docs.couchbase.com/home/contribute/index.html +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 :url-ui: {url-org}/docs-ui :url-playbook: {url-org}/docs-site :url-cli: {url-org}/couchbase-cli :url-backup: {url-org}/backup :url-analytics: https://github.com/couchbaselabs/asterix-opt +<<<<<<< HEAD +.Work In Progress! +[WARNING] +This repository is managed by an automated migration process. +*DO NOT* submit pull requests to this repository. +Send documentation changes to the {url-org}/docs-cb4[docs-cb4 repository]. + +Documentation component for Couchbase Server. + +== Contributing + +Check out our contributing guide to learn how to: +======= This repository hosts the documentation source for Couchbase Server. == Contributing Check out our {url-contribute}[contributing guide] to learn how to: +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 * submit a bug or feedback issue * set up your documentation workspace diff --git a/antora.yml b/antora.yml index 36e362cef4..3144e9f66c 100644 --- a/antora.yml +++ b/antora.yml @@ -1,6 +1,11 @@ name: server +<<<<<<< HEAD +title: Couchbase Server +version: '5.5' +======= version: '5.5' title: Couchbase Server +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 start_page: introduction:intro.adoc nav: - modules/ROOT/nav.adoc diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 353b26ddf7..29c8143afd 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -122,13 +122,16 @@ ** xref:eventing:eventing-Terminologies.adoc[Terminology] ** xref:eventing:eventing-language-constructs.adoc[Language Constructs] ** xref:eventing:eventing-adding-function.adoc[Adding a Couchbase Function] - ** xref:eventing:eventing-function-export.adoc[Exporting Functions] ** xref:eventing:eventing-examples.adoc[Examples: Using the Eventing Service] ** xref:eventing:eventing-debugging-and-diagnosability.adoc[Debugging and Diagnosability] ** xref:eventing:eventing-statistics.adoc[Statistics] ** xref:eventing:troubleshooting-best-practices.adoc[Troubleshooting and Best Practices] ** xref:eventing:eventing-faq.adoc[Frequently Asked Questions] +<<<<<<< HEAD +include::../analytics/pages/_partials/nav.adoc[] +======= include::analytics:partial$nav.adoc[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 .Managing Clusters * xref:admin:admin-intro.adoc[Administration Tools] @@ -299,6 +302,10 @@ include::analytics:partial$nav.adoc[] ** xref:install:install-uninstalling.adoc[Uninstalling Couchbase Server] * xref:install:running-couchbase-in-containers.adoc[Deploying Couchbase Server in Containers] ** xref:install:getting-started-docker.adoc[Running Couchbase Server Using Docker] +<<<<<<< HEAD + ** xref:operator::overview.adoc[Autonomous Operator] +======= +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 * xref:cloud:couchbase-cloud-deployment.adoc[Deploying Couchbase in the Cloud] ** xref:cloud:couchbase-aws.adoc[Amazon Web Services (AWS) and Couchbase] *** xref:cloud:couchbase-aws-marketplace.adoc[Deploying Couchbase from AWS Marketplace] @@ -401,8 +408,13 @@ include::analytics:partial$nav.adoc[] * xref:cli:cli-intro.adoc[CLI Reference] + -- +<<<<<<< HEAD +include::../backup-restore/pages/_partials/nav.adoc[] +include::../cli/pages/_partials/cbcli/nav.adoc[] +======= include::backup-restore:partial$nav.adoc[] include::cli:partial$cbcli/nav.adoc[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 -- ** xref:cli:cbanalyze-core-tool.adoc[cbanalyze-core] @@ -574,6 +586,17 @@ include::cli:partial$cbcli/nav.adoc[] ** Data Import/Export Tools + -- +<<<<<<< HEAD +include::../tools/pages/_partials/nav-cbimport.adoc[] +include::../tools/pages/_partials/nav-cbexport.adoc[] +-- + +.Release Notes +* xref:release-notes:relnotes.adoc[Release Notes for Couchbase Server 5.5.x] + +.Licenses +* xref:third-party-licenses.adoc[Licenses for Third-Party Components] +======= include::tools:partial$nav-cbimport.adoc[] include::tools:partial$nav-cbexport.adoc[] -- @@ -584,3 +607,4 @@ include::tools:partial$nav-cbexport.adoc[] .Contributing * xref:home:contribute:index.adoc[Contribute to the Documentation] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 diff --git a/modules/backup-restore/assets/images/admin/picts/backup-combined-incremental.jpg b/modules/backup-restore/assets/images/admin/picts/backup-combined-incremental.jpg new file mode 100644 index 0000000000..4aefc830c4 Binary files /dev/null and b/modules/backup-restore/assets/images/admin/picts/backup-combined-incremental.jpg differ diff --git a/modules/backup-restore/assets/images/admin/picts/backup-cumulative-incremental.jpg b/modules/backup-restore/assets/images/admin/picts/backup-cumulative-incremental.jpg new file mode 100644 index 0000000000..b44aae74f6 Binary files /dev/null and b/modules/backup-restore/assets/images/admin/picts/backup-cumulative-incremental.jpg differ diff --git a/modules/backup-restore/assets/images/admin/picts/backup-differential-incremental.jpg b/modules/backup-restore/assets/images/admin/picts/backup-differential-incremental.jpg new file mode 100644 index 0000000000..a4f105174d Binary files /dev/null and b/modules/backup-restore/assets/images/admin/picts/backup-differential-incremental.jpg differ diff --git a/modules/backup-restore/pages/incremental-backup.adoc b/modules/backup-restore/pages/incremental-backup.adoc index ed8891bcd5..5b666d1ba5 100644 --- a/modules/backup-restore/pages/incremental-backup.adoc +++ b/modules/backup-restore/pages/incremental-backup.adoc @@ -32,7 +32,11 @@ The following figure shows an example of a differential incremental backup strat Every Sunday, a full backup is made. On the other days of the week, a differential incremental backup is made. +<<<<<<< HEAD +image::admin/picts/backup-differential-incremental.jpg[,720,align=left] +======= image::admin/backup-differential-incremental.jpg[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 In this example, the Monday backup contains the changes made since the full backup on Sunday, the Tuesday backup contains the changes made since the Monday backup, the Wednesday backup contains the changes made since the Tuesday backup, and so on. For example, a restore operation performed on Wednesday uses the full backup from Sunday and the differential incremental backups from Monday and Tuesday. @@ -46,7 +50,11 @@ The following figure shows an example of a cumulative incremental backup strateg Every Sunday, a full backup is made. On the other days of the week, a cumulative incremental backup is made. +<<<<<<< HEAD +image::admin/picts/backup-cumulative-incremental.jpg[,720,align=left] +======= image::admin/backup-cumulative-incremental.jpg[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 In this example, the Monday backup contains all the changes made since the full backup on Sunday, the Tuesday backup contains all the changes made since the full backup on Sunday, the Wednesday backup contains all the changes made since the full backup on Sunday, and so on. For example, a restore operation performed on Wednesday uses the full backup from Sunday and the cumulative incremental backup from Tuesday. @@ -59,7 +67,11 @@ The following figure shows an example of a backup strategy that incorporates bot Every Sunday, a full backup is made. For the remainder of the week, depending on the day, either a differential or cumulative incremental backup is made. +<<<<<<< HEAD +image::admin/picts/backup-combined-incremental.jpg[,720,align=left] +======= image::admin/backup-combined-incremental.jpg[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 In this example, the backup schedule includes differential and cumulative incremental backups on different days. On Monday, Tuesday, Wednesday, Friday, and Saturday a differential incremental backup is made. diff --git a/modules/cloud/pages/couchbase-azure-marketplace.adoc b/modules/cloud/pages/couchbase-azure-marketplace.adoc index 9c24ebf24a..ee978a9eea 100644 --- a/modules/cloud/pages/couchbase-azure-marketplace.adoc +++ b/modules/cloud/pages/couchbase-azure-marketplace.adoc @@ -61,8 +61,12 @@ The password must satisfy at least three of the following four conditions: | Subscription | +<<<<<<< HEAD +// What are the available options? I see +======= // What are the available options? // I see +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 // Pay-As-You-Go in your video, and Documentation in the version that I'm playing // with. diff --git a/modules/cloud/pages/couchbase-gcp-cloud-launcher.adoc b/modules/cloud/pages/couchbase-gcp-cloud-launcher.adoc index 65c7ef9224..f044bf0105 100644 --- a/modules/cloud/pages/couchbase-gcp-cloud-launcher.adoc +++ b/modules/cloud/pages/couchbase-gcp-cloud-launcher.adoc @@ -84,8 +84,12 @@ IMPORTANT: Note the Couchbase Username and Password displayed on the screen. + image::gcp/deploying/gcp-new-couchbase-ee-deploy-done.png[,570] +<<<<<<< HEAD +That's it! It may take a short while for Couchbase to be up and running. +======= That's it! It may take a short while for Couchbase to be up and running. +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 At this point a number of Instance Group Managers have been deployed. It may take several minutes for the VMs that the Instance Group Managers manage to start, and for their start-up scripts to complete installing and configuring Couchbase. diff --git a/modules/clustersetup/assets/images/admin/picts/active-servers.png b/modules/clustersetup/assets/images/admin/picts/active-servers.png new file mode 100644 index 0000000000..ca67afb0ad Binary files /dev/null and b/modules/clustersetup/assets/images/admin/picts/active-servers.png differ diff --git a/modules/clustersetup/assets/images/admin/picts/add-server-new2.png b/modules/clustersetup/assets/images/admin/picts/add-server-new2.png new file mode 100644 index 0000000000..a15262813b Binary files /dev/null and b/modules/clustersetup/assets/images/admin/picts/add-server-new2.png differ diff --git a/modules/clustersetup/assets/images/admin/picts/graceful-failover.png b/modules/clustersetup/assets/images/admin/picts/graceful-failover.png new file mode 100644 index 0000000000..07e5d22b66 Binary files /dev/null and b/modules/clustersetup/assets/images/admin/picts/graceful-failover.png differ diff --git a/modules/clustersetup/assets/images/admin/picts/homogenous-scaling.png b/modules/clustersetup/assets/images/admin/picts/homogenous-scaling.png new file mode 100644 index 0000000000..703fca1ceb Binary files /dev/null and b/modules/clustersetup/assets/images/admin/picts/homogenous-scaling.png differ diff --git a/modules/clustersetup/assets/images/admin/picts/independent-scaling.jpg b/modules/clustersetup/assets/images/admin/picts/independent-scaling.jpg new file mode 100644 index 0000000000..0e40a6d160 Binary files /dev/null and b/modules/clustersetup/assets/images/admin/picts/independent-scaling.jpg differ diff --git a/modules/clustersetup/assets/images/admin/picts/logs-tab.png b/modules/clustersetup/assets/images/admin/picts/logs-tab.png new file mode 100644 index 0000000000..3a18b91a7d Binary files /dev/null and b/modules/clustersetup/assets/images/admin/picts/logs-tab.png differ diff --git a/modules/clustersetup/assets/images/admin/picts/mds-scaling.png b/modules/clustersetup/assets/images/admin/picts/mds-scaling.png new file mode 100644 index 0000000000..479613b49f Binary files /dev/null and b/modules/clustersetup/assets/images/admin/picts/mds-scaling.png differ diff --git a/modules/clustersetup/assets/images/admin/picts/ui-server.png b/modules/clustersetup/assets/images/admin/picts/ui-server.png new file mode 100644 index 0000000000..d7bf34609c Binary files /dev/null and b/modules/clustersetup/assets/images/admin/picts/ui-server.png differ diff --git a/modules/clustersetup/assets/images/admin/picts/vbucket-resources.png b/modules/clustersetup/assets/images/admin/picts/vbucket-resources.png new file mode 100644 index 0000000000..395742dba3 Binary files /dev/null and b/modules/clustersetup/assets/images/admin/picts/vbucket-resources.png differ diff --git a/modules/clustersetup/pages/adding-nodes.adoc b/modules/clustersetup/pages/adding-nodes.adoc index 45e59c5573..ccb632fac6 100644 --- a/modules/clustersetup/pages/adding-nodes.adoc +++ b/modules/clustersetup/pages/adding-nodes.adoc @@ -24,7 +24,11 @@ image::admin-tasks-rebalance-node-added.png[,align=left] Using the same method, you can add a server that was previously part of this or another cluster. During this process, Couchbase Server must be running. +<<<<<<< HEAD +image::admin/picts/add-server-new2.png[,align=left] +======= image::admin/add-server-new2.png[,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 To add a new node to an existing cluster using the Web Console: diff --git a/modules/clustersetup/pages/hard-failover.adoc b/modules/clustersetup/pages/hard-failover.adoc index 5ce9c54066..5f397ddd38 100644 --- a/modules/clustersetup/pages/hard-failover.adoc +++ b/modules/clustersetup/pages/hard-failover.adoc @@ -34,7 +34,11 @@ For example, if you have four nodes running the Data service, and one node has f The vBucket resources will look like below: +<<<<<<< HEAD +image::admin/picts/vbucket-resources.png[,350,align=left] +======= image::admin/vbucket-resources.png[,350,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The moment you initiate a hard failover (either by using the Couchbase Web Console, CLI, REST API or automatic failover), the Couchbase Cluster Manager communicates with the remaining nodes in the Data service to begin the process. The Cluster Manager has information about the location of all active and replica vBuckets across the cluster, as well as about the physical topology of the cluster. @@ -127,8 +131,12 @@ This process all happens in fractions of a second. It is then repeated for the remaining 255 vBuckets of the bucket, one bucket at a time. If there were more buckets, it would proceed to the next bucket and repeat the process there until complete. +<<<<<<< HEAD +What is happening in the application during this process, one might ask? Until the down node is failed over (either automatically or manually) to promote the replica vBuckets to active, the application is receiving errors or timeouts for one-quarter of the reads and writes that would have gone to the now down node. +======= What is happening in the application during this process, one might ask? Until the down node is failed over (either automatically or manually) to promote the replica vBuckets to active, the application is receiving errors or timeouts for one-quarter of the reads and writes that would have gone to the now down node. +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 We had four nodes; now we have three. If there were ten nodes in the Data service, the application would be unable to address one tenth of the data until failover is initiated. If the application needs to read before failover happens, the application developer may want to use Replica Reads (see SDK-specific documentation), which is only used for such circumstances. diff --git a/modules/clustersetup/pages/remove-nodes.adoc b/modules/clustersetup/pages/remove-nodes.adoc index c6e1e887d0..c1afe54cce 100644 --- a/modules/clustersetup/pages/remove-nodes.adoc +++ b/modules/clustersetup/pages/remove-nodes.adoc @@ -31,7 +31,11 @@ To prevent such problems, make sure that you provide one of the following soluti == Using the UI +<<<<<<< HEAD +image::admin/picts/active-servers.png[,align=left] +======= image::admin/active-servers.png[,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 To remove a node from an existing cluster using the Web Console: diff --git a/modules/clustersetup/pages/server-setup.adoc b/modules/clustersetup/pages/server-setup.adoc index 419269420e..adc3d17360 100644 --- a/modules/clustersetup/pages/server-setup.adoc +++ b/modules/clustersetup/pages/server-setup.adoc @@ -14,7 +14,11 @@ For more information, see xref:manage-groups.adoc[Managing Server Groups]. * To add a new server, click [.ui]*Add Server*. For more information, see xref:adding-nodes.adoc[Adding a Node]. +<<<<<<< HEAD +image::admin/picts/ui-server.png[,720] +======= image::admin/ui-server.png[,720] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 .Server Details [cols="3,8"] diff --git a/modules/clustersetup/pages/services-mds.adoc b/modules/clustersetup/pages/services-mds.adoc index b2668509ea..5287f75a2f 100644 --- a/modules/clustersetup/pages/services-mds.adoc +++ b/modules/clustersetup/pages/services-mds.adoc @@ -13,7 +13,11 @@ With MDS, admins can achieve both the existing homogeneous scalability model and To better understand the new multidimensional scaling model, it is beneficial to take a look at the current homogeneous scaling model. +<<<<<<< HEAD +image::admin/picts/homogenous-scaling.png[,600,align=left] +======= image::admin/homogenous-scaling.png[,600,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 In this model, your applications workload is distributed equally across a cluster made up of the homogeneous set of nodes. Each node that does the core processing takes a similar slice of the work and has the same HW resources. @@ -31,11 +35,19 @@ When you separate the competing workloads into independent service and isolate t The figure below demonstrates a deployment topology that can be achieved with MDS. In this topology, each service is deployed to an independent zone within the cluster. +<<<<<<< HEAD +image::admin/picts/independent-scaling.jpg[,600,align=left] + +Each service zone within a cluster (data, query, and index services) can now scale independently so that the best computational capacity is provided for each of them. + +image::admin/picts/mds-scaling.png[,600,align=left] +======= image::admin/independent-scaling.jpg[,600,align=left] Each service zone within a cluster (data, query, and index services) can now scale independently so that the best computational capacity is provided for each of them. image::admin/mds-scaling.png[,600,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 In the figure above, the green additions signify the direction of scaling for each service. In this case, query and index services scale up over the fewer sets of powerful nodes and data service scale out with an additional node. diff --git a/modules/clustersetup/pages/setup-failover-graceful.adoc b/modules/clustersetup/pages/setup-failover-graceful.adoc index 995985a760..5afdf2e3c6 100644 --- a/modules/clustersetup/pages/setup-failover-graceful.adoc +++ b/modules/clustersetup/pages/setup-failover-graceful.adoc @@ -31,7 +31,11 @@ Use Graceful failover only when the following conditions are met; otherwise, use If not, first fix the problems and rebalance the cluster. For each bucket, look at the `vBucket Resources` section of the metrics, then look at the active and replica vBucket graphs to confirm that each graph has 1024 for that bucket. + +<<<<<<< HEAD +image::admin/picts/graceful-failover.png[,550,align=left] +======= image::admin/graceful-failover.png[,550,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 For example: diff --git a/modules/eventing/pages/eventing-Terminologies.adoc b/modules/eventing/pages/eventing-Terminologies.adoc index 6422930089..dce524173e 100644 --- a/modules/eventing/pages/eventing-Terminologies.adoc +++ b/modules/eventing/pages/eventing-Terminologies.adoc @@ -107,9 +107,3 @@ Newly created handlers start in an undeployed state. When a Function gets deleted, the source code implementing the Function, all processing checkpoints, and other artifacts in the metadata provider are purged. Before deleting, make sure you have undeployed the Function. - -== Timers - -Timers provide execution of code at a preconfigured clock time or after a specified number of seconds. -Using timers, you can write a simple JavaScript Function handler code to delay or trigger the execution of a Function at specific wall-clock time events. -Timers allow archiving of expired documents at a preconfigured clock time. diff --git a/modules/eventing/pages/eventing-adding-function.adoc b/modules/eventing/pages/eventing-adding-function.adoc index b629675662..cc078414a1 100644 --- a/modules/eventing/pages/eventing-adding-function.adoc +++ b/modules/eventing/pages/eventing-adding-function.adoc @@ -16,7 +16,8 @@ To add a new Function, proceed as follows: | Source Bucket | The name of a bucket currently defined on the cluster. -For more information on Source Bucket, refer to xref:clustersetup:create-bucket.adoc[Create a Bucket]. +For more information on creating a bucket, refer to xref:clustersetup:create-bucket.adoc[Create a Bucket]. + | Metadata Bucket | The name of a bucket currently defined on the cluster. @@ -61,7 +62,7 @@ Additional controls are now displayed: The controls are: . Click *Deploy*. This displays the *Confirm Deploy Function* dialog. The Feed Boundary determines whether documents previously in existence needs to be included in the Function's activities: the options are *Everything* and *From now*. -The *Everything* option invokes a Function on all the data present in the cluster. +The *Everything* option invokes a Function on all mutations available in the cluster. The *From now* option invokes a Function during future instances of data mutation, post Function deployment. . Click *Deploy* Function. This deploys the Function and returns you to the main Eventing screen. diff --git a/modules/eventing/pages/eventing-api.adoc b/modules/eventing/pages/eventing-api.adoc index c0bfa9b31d..a254c47022 100644 --- a/modules/eventing/pages/eventing-api.adoc +++ b/modules/eventing/pages/eventing-api.adoc @@ -3,6 +3,8 @@ [abstract] The Functions REST API, available by default at port 8096, provides the methods available to work with Couchbase Functions. +NOTE: The Functions REST API is a Beta feature intended for development purposes only, do not use them in production; no Enterprise Support is provided for Beta features. + .Functions API [cols="2,3,6"] |=== diff --git a/modules/eventing/pages/eventing-examples.adoc b/modules/eventing/pages/eventing-examples.adoc index a2df8c2fae..bfb8df31f7 100644 --- a/modules/eventing/pages/eventing-examples.adoc +++ b/modules/eventing/pages/eventing-examples.adoc @@ -352,124 +352,3 @@ SELECT user_id, COUNT(1) FROM `Users` GROUP BY user_id ORDER BY user_id ASC; image::query-results-ondelete.png[,400] . In the *Query Results* pane notice that user_ids, *user_id4* and *user_id 10* are removed as part of the cascade user delete operation. - -== Example 4 - -*Goal*: When a document in an existing bucket is about to expire, a new document is created in a newly created bucket. - -*Implementation*: Write an OnUpdate handler, which runs whenever a document is created or mutated. -The handler calls a timer routine, which executes a callback function, two minutes prior to any document’s established expiration. -This function retrieves a specified value from the document, and stores it in a document of the same name, in a specified target bucket. -The original document in the source bucket is not changed.. - -For this example, the buckets created such as source, target, and metadata buckets, are used. -A new document is created within the source bucket, and this document has its expiration — or Time To Live (TTL) — set to occur ten minutes after the document's creation. - -Python script for this Example is provided for reference. -Using the Couchbase SDK, you can create or modify the document expiration. -In this example, the Couchbase SDK Python client creates a document and sets the document's expiration. - ----- -from couchbase.cluster import Cluster -from couchbase.cluster import PasswordAuthenticator -import time -cluster = Cluster('couchbase://localhost:8091') -authenticator = PasswordAuthenticator('Administrator', 'password') -cluster.authenticate(authenticator) - -cb = cluster.open_bucket('source') -cb.upsert('SampleDocument2', {'a_key': 'a_value'}) -cb.touch('SampleDocument2', ttl=10*60) ----- - -The script imports a Couchbase cluster object, and authenticates against it, using (for demonstration purposes) the Full Administrator username and password (the cluster is assumed to be accessible on localhost). -The script then opens the existing source bucket, and inserts a new document, named *SampleDocument2*, whose body is *{'a_key': 'a_value'}*. - -For information on installing the Couchbase Python SDK, refer to xref:java-sdk::start-using-sdk.adoc[Start Using the SDK]. -For information on using the Couchbase Python SDK to establish bucket-expiration, refer to xref:dotnet-sdk::document-operations.adoc[Document Operations]. - -*Procedure* - -Proceed as follows: - -. Install the Couchbase SDK Python client and from the appropriate folder, start Python. -+ ----- -./python ----- - -. On the Python prompt, enter the provided code. -+ ----- ->>> from couchbase.cluster import Cluster ->>> from couchbase.cluster import PasswordAuthenticator ->>> import time ->>> cluster = Cluster('couchbase://localhost:8091') ->>> authenticator = PasswordAuthenticator('Administrator', 'password') ->>> cluster.authenticate(authenticator) ->>> cb = cluster.open_bucket('source') ->>> cb.upsert('SampleDocument2', {'a_key': 'a_value'}) -OperationResult ->>> cb.touch('SampleDocument2', ttl=10*60) -OperationResult ->>> ----- - -. To verify bucket creation, access the *Buckets* screen from the *Couchbase Web Console* and click the *Document* tab of the *Source* bucket. -The new document gets displayed. -. [Optional Step] Click on a document's id to view the metadata information. -. From the *Couchbase Web Console* > *Eventing* page, click *ADD FUNCTION*, to add a new Function. -The *ADD FUNCTION* dialog appears. -. In the *ADD FUNCTION* dialog, for individual Function elements provide the below information: - ** For the *Source Bucket* drop-down, select *source*. - ** For the *Metadata Bucket* drop-down, select *metadata*. - ** Enter *add_timer_before_expiry* as the name of the Function you are creating in the *FunctionName* text-box. - ** Enter text *Function that adds timer before document expiry*, in the *Description* text-box. - ** For the *Settings* option, use the default values. - ** For the *Bindings* option, add two bindings. -For the first binding specify *source* as the name of the bucket, and specify *src* as the associated value. -For the second binding, specify *target* as the name of the bucket, and specify *tgt* as the associated value. -. After providing all the required information in the *ADD FUNCTION* dialog, click *Next: Add Code*. -The *add_timer_before_expiry* dialog appears. -. The *add_timer_before_expiry* dialog initially contains a placeholder code block. -You will substitute your actual *add_timer_before_expiry code* in this block. -+ -image::casacade_del_withcode.png[,600] - -. Copy the following Function, and paste it in the placeholder code block of *add_timer_before_expiry* dialog. -+ ----- -function OnUpdate(doc, meta) { - if (meta.expiration > 0 ) //do only for those documents that have a non-zero TTL - { - var expiry = new Date(meta.expiration); - // Compute 2 minutes from the TTL timestamp - var twoMinsPrior = new Date(expiry.setMinutes(expiry.getMinutes()-2)); - var context = {docID : meta.id}; - createTimer(DocTimerCallback, twoMinsPrior , meta.id, context); - log('Added Doc Timer to DocId:', meta.id); - } -} -function DocTimerCallback(context) - { - log('DocTimerCallback Executed for DocId:', String(context.docID)); - tgt[context.docID] = "To Be Expired Key's Value is:" + JSON.stringify(src[context.docID]); - log('Doc Timer Executed for DocId', String(context.docID)); - } ----- -+ -After pasting, the screen appears as displayed below: -+ -image::casacade_del_withcode.png[,600] - -. Click *Save*. -. To return to the Eventing screen, click *Eventing* tab. -. From the *Eventing* screen, click *Deploy*. -. In the *Confirm Deploy Function* dialog, select *Everything from the Feed boundary* option. -. Click *Deploy*. -The function is deployed and starts running within a few seconds. -+ -image::cascade_delete_buckets.png[,600] -+ -As a result, a new document — like the original, named *SourceDocument2* — is created, with a value based on that of the original. -After two minutes has elapsed, check the documents within the source bucket: the original *SourceDocument2* is no longer visible, having been removed at its defined expiration-time. diff --git a/modules/eventing/pages/eventing-faq.adoc b/modules/eventing/pages/eventing-faq.adoc index fcd5f5e29a..1ad472a5d9 100644 --- a/modules/eventing/pages/eventing-faq.adoc +++ b/modules/eventing/pages/eventing-faq.adoc @@ -142,23 +142,3 @@ All changes from a document are always processed in order. + We block one of the mutations alone and hand it over to the debugger session. The rest of the mutations continue to be serviced by the event handler. - -* Are timers scalable? -+ -Timers get automatically sharded across Eventing nodes and therefore are elastically scalable. -Due to sharding, triggering of timers at or after a specified time interval is guaranteed. -However, triggering of timers may either be on the same node where the time was created, or on a different node. -Relative ordering between two specific timers cannot be maintained. - -* Can I use Debugger to debug timers? -+ -Timers cannot be debugged using the Visual Debugger. - -* What happens when the Function handler code contains a timestamp in the past? -+ -When a Function handler code contains a timestamp in the past, upon a successful Function deployment, the system executes the code in the next available time slot. - -* What is the Timer behavior post reboot? -+ -During a boot operation, all clocks in the cluster nodes get synchronized. -Post-startup, cluster nodes get periodically synchronized using clock synchronization tools such as Network Time Protocol (NTP). diff --git a/modules/eventing/pages/eventing-language-constructs.adoc b/modules/eventing/pages/eventing-language-constructs.adoc index cd7add3caa..5c599d9e3d 100644 --- a/modules/eventing/pages/eventing-language-constructs.adoc +++ b/modules/eventing/pages/eventing-language-constructs.adoc @@ -51,7 +51,7 @@ function OnUpdate(doc, meta) { _Browser and other Extensions_: -{empty} .A Function executes on Couchbase Server similar to the code that is visible in the browser. +A Function executes on Couchbase Server similar to the code that is visible in the browser. As a Developer, you need to understand that the code displayed in the below example runs in the browser. The ‘window’ term in the code *window.XMLHttpRequest()*, is not a server-side construct but is in the context of a browser. @@ -94,8 +94,8 @@ Operations that return values are accessible through a special iterator on which This restricted looping-construct allows support of query-result streaming, and automatic query-cancellation when the iterator goes out of scope. Any variable that is reachable from the scope of the N1QL query can be referred to using *$* syntax in the N1QL statement, where parameters get substituted according to the rules of the named-parameter substitution in the N1QL grammar specification. -IMPORTANT: The N1QL construct is still in development and may have some rough edges and bugs, and may change significantly before the final GA release. -This release version of Couchbase Server 5.5 is intended for development purposes only. +IMPORTANT: The N1QL queries in events are a BETA feature and may have some rough edges and bugs, and may change significantly before the final GA release. +This Beta-release version of Couchbase Server 5.5 is intended for development purposes only; no Enterprise Support is provided for Beta features. The iterator is an input iterator (elements are read-only). The keyword _this_ cannot be used in the body of the iterator. @@ -113,6 +113,89 @@ function OnUpdate(doc, meta) { break; // Cancel streaming query by breaking out. } } + +---- +The Function handler code supports N1QL queries. +Top level N1QL keywords, such as SELECT, UPDATE, and INSERT, are available as keywords in Functions. + +During deployment, if a handler code includes an N1QL query, then the system generates a warning message. +[.out]``Warning Message: "Handler uses Beta features. +Do not use in production environments."``However, the warning message does not prevent the Function deployment. + +You must use [.var]`$`, as per N1QL specification, to use a JavaScript variable in the query statement. +The object expressions for substitution are not supported and therefore you cannot use the [.param]`meta.id` expression in the query statement. + +Instead of [.param]`meta.id` expression, you can use `var id = meta.id` in an N1QL query. + +* Invalid N1QL query ++ +---- +DELETE FROM `transactions` WHERE username = $meta.id; +---- + +* Valid N1QL query ++ +---- +var id = meta.id; +DELETE FROM `transactions` WHERE username = $id; +---- + +When you use a N1QL query inside a Function handler, remember to use an escaped identifier for bucket names with special characters (`[.var]`bucket-name``). +Escaped identifiers are surrounded by backticks and support all identifiers in JSON + +For example: + +* If the bucket name is [.param]`beer-sample`, then use the N1QL query such as: ++ +---- +SELECT * FROM `beer-sample` WHERE type... +---- + +* If bucket name is [.param]`beersample`, then use the N1QL query such as: ++ +---- +SELECT * FROM beersample WHERE type ... +---- +The Function handler code supports N1QL queries. +Top level N1QL keywords, such as SELECT, UPDATE, and INSERT, are available as keywords in Functions. + +During deployment, if a handler code includes an N1QL query, then the system generates a warning message. +[.out]``Warning Message: "Handler uses Beta features. +Do not use in production environments."``However, the warning message does not prevent the Function deployment. + +You must use [.var]`$`, as per N1QL specification, to use a JavaScript variable in the query statement. +The object expressions for substitution are not supported and therefore you cannot use the [.param]`meta.id` expression in the query statement. + +Instead of [.param]`meta.id` expression, you can use `var id = meta.id` in an N1QL query. + +* Invalid N1QL query ++ +---- +DELETE FROM `transactions` WHERE username = $meta.id; +---- + +* Valid N1QL query ++ +---- +var id = meta.id; +DELETE FROM `transactions` WHERE username = $id; +---- + +When you use a N1QL query inside a Function handler, remember to use an escaped identifier for bucket names with special characters (`[.var]`bucket-name``). +Escaped identifiers are surrounded by backticks and support all identifiers in JSON + +For example: + +* If the bucket name is [.param]`beer-sample`, then use the N1QL query such as: ++ +---- +SELECT * FROM `beer-sample` WHERE type... +---- + +* If bucket name is [.param]`beersample`, then use the N1QL query such as: ++ +---- +SELECT * FROM beersample WHERE type ... ---- [#handler-signatures] @@ -237,102 +320,3 @@ During the Function deployment step, when the system validates the handler code, Reserved words as a property bindings value image::reserved-words.png[,300] - -== *Support for N1QL in Function Handlers* - -IMPORTANT: The N1QL queries in events are a BETA feature and may have some rough edges and bugs, and may change significantly before the final GA release. -This Beta-release version of Couchbase Server 5.5 is intended for development purposes only; no Enterprise Support is provided for Beta features. - -The Function handler code supports N1QL queries. -Top level N1QL keywords, such as SELECT, UPDATE, and INSERT, are available as keywords in Functions. - -During deployment, if a handler code includes an N1QL query, then the system generates a warning message. -[.out]``Warning Message: "Handler uses Beta features. -Do not use in production environments."``However, the warning message does not prevent the Function deployment. - -You must use [.var]`$`, as per N1QL specification, to use a JavaScript variable in the query statement. -The object expressions for substitution are not supported and therefore you cannot use the [.param]`meta.id` expression in the query statement. - -Instead of [.param]`meta.id` expression, you can use `var id = meta.id` in an N1QL query. - -* Invalid N1QL query -+ ----- -DELETE FROM `transactions` WHERE username = $meta.id; ----- - -* Valid N1QL query -+ ----- -var id = meta.id; -DELETE FROM `transactions` WHERE username = $id; ----- - -When you use a N1QL query inside a Function handler, remember to use an escaped identifier for bucket names with special characters (`[.var]`bucket-name``). -Escaped identifiers are surrounded by backticks and support all identifiers in JSON - -For example: - -* If the bucket name is [.param]`beer-sample`, then use the N1QL query such as: -+ ----- -SELECT * FROM `beer-sample` WHERE type... ----- - -* If bucket name is [.param]`beersample`, then use the N1QL query such as: -+ ----- -SELECT * FROM beersample WHERE type ... ----- - -== Timers - -*Creating a Timer* - -To create a timer use the below syntax: - ----- -createTimer(callback, timestamp, reference, context) ----- - -In the createTimer syntax: - -* *callback* - is the function called when the timer gets triggered. -You need to ensure that the callback function is the top-level function that takes a single argument, the context. -* *timestamp* - is the JavaScript Date object timestamp at which the Function handler code must be executed. -* *reference* - is a unique string that gets passed. -This string helps to identify the timer that is being created. -All callback and references are scoped to the Function definition. -Also, all references must be unique within the Function scope. -When multiple timers are created with the same unique reference, old timers (with the same unique reference) get canceled. -* *context* - is any JavaScript object that can be serialized. -When the timer gets triggered, the context specified during timer creation gets passed to the callback Function. -For optimal performance, the context object payload needs to be lesser than 100 KB. - -A sample *createTimer* language construct is provided for reference. - ----- -createTimer(DocTimerCallback, twoMinsPrior, meta.id, context) ----- - -In the sample construct: - -* *DocTimerCallback* is the name of the function used in the Function handler code. -* *twoMinsPrior* is a JavaScript Date object. -* *meta.id* is a generic reference string that can be used in the Couchbase cluster. -* *context* is the JavaScript object that is used in the Function handler code. - -A few ascpects related to timer construct are listed below: - -* Bindings can be reused in timers. -Bindings, created during the Function definition, can be accessed by the timer constructs in the Function handler code. -* When logging is enabled, timer related logs get captured as part of the Application logs. -* Timers get deleted when the associated Function is deleted or undeployed. -* While using timers, ensure that other applications do not use the metadata bucket. -The metadata bucket stores information about timers and its association with a Function. -Therefore, the metadata bucket should not be deleted or flushed, or the keys be updated. -* With an increase in the usage of timers, the metadata memory assignment must also be increased. -Due to runtime or programmatic errors in the Function handler code, if triggering of a timer fails, then triggering of timer gets permanently blocked. -* For easy debugging, Couchbase recommends enclosing of timers in a try-catch block. -* Timers follow the same timeout semantics as their Parent Functions. -So, if a Function has an execution timeout of 60 seconds, each of the timers created from the Function inherits the same execution timeout value of 60 seconds. diff --git a/modules/eventing/pages/eventing-overview.adoc b/modules/eventing/pages/eventing-overview.adoc index 31e7e12a6d..ef322cfc44 100644 --- a/modules/eventing/pages/eventing-overview.adoc +++ b/modules/eventing/pages/eventing-overview.adoc @@ -156,7 +156,7 @@ The tabular column below lists popular scenarios where the Eventing Service acro | Transaction threshold | Generate risk alerts and quarantine user upon threshold breach. -.2+| Inventory/ +| Inventory/ Warehousing | New sales voucher @@ -167,7 +167,7 @@ Warehousing | Saved wishlist/cart | Notify price alerts for wishlist items. -.2+| Airline +| Airline | New booking | Booking history | Enroll for frequent flyer program and notify special promotions diff --git a/modules/eventing/pages/troubleshooting-best-practices.adoc b/modules/eventing/pages/troubleshooting-best-practices.adoc index 89902995c5..aee1fb532e 100644 --- a/modules/eventing/pages/troubleshooting-best-practices.adoc +++ b/modules/eventing/pages/troubleshooting-best-practices.adoc @@ -75,25 +75,3 @@ Ensure that you configure the script timeout value after carefully evaluating th As a best practice use a combination of try-catch block and the application log options. This way you can monitor, debug and troubleshoot errors during the Function execution. - -== What are a few best practices while passing timer related timestamps? - -Perform a timestamp check to avoid triggering of timers during the stale-time period. - -To handle delays during Function backlogs, in the Function handler code, you can program some additional time to allow triggering of timers. -If this additional time period is also breached, then the time status is considered as stale-time. -If your business logic is time-sensitive, then the Function handler code should refrain from triggering of timers during this stale-time period. - -The following code snippet ensures a valid timestamp check is performed before the Function handler code gets executed. - ----- -func callback(context) -{ - //context.my_deadline is the parameter in the timer payload - if new Date().getTime() > context.my_deadline - { - // timestamp is back-dated, do not execute the rest of the timer - return; - } -} ----- diff --git a/modules/indexes/pages/indexing-overview.adoc b/modules/indexes/pages/indexing-overview.adoc index 419ac3099e..cc9a65e8d0 100644 --- a/modules/indexes/pages/indexing-overview.adoc +++ b/modules/indexes/pages/indexing-overview.adoc @@ -51,7 +51,12 @@ MapReduce views:: MapReduce views (also called _views_) are indexes built using JavaScript _map_ and _reduce_ functions defined on documents in a Couchbase bucket. Views can be accessed directly from the View API or from N1QL. + +<<<<<<< HEAD +NOTE: N1QL can only utilize views created through CREATE INDEX \... +USING VIEW statements. +======= NOTE: N1QL can only utilize views created through CREATE INDEX \... USING VIEW statements. +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 + Views are built incrementally, re-indexing only the documents that have changed since the last index update. Couchbase Server precomputes and stores view results for fast retrieval. diff --git a/modules/install/assets/images/admin/picts/TsAndCs01.png b/modules/install/assets/images/admin/picts/TsAndCs01.png new file mode 100644 index 0000000000..ef9937d008 Binary files /dev/null and b/modules/install/assets/images/admin/picts/TsAndCs01.png differ diff --git a/modules/install/assets/images/admin/picts/cluster-setup-host.png b/modules/install/assets/images/admin/picts/cluster-setup-host.png new file mode 100644 index 0000000000..4476942b5b Binary files /dev/null and b/modules/install/assets/images/admin/picts/cluster-setup-host.png differ diff --git a/modules/install/assets/images/admin/picts/configureNewCluster01.png b/modules/install/assets/images/admin/picts/configureNewCluster01.png new file mode 100644 index 0000000000..59b38c919f Binary files /dev/null and b/modules/install/assets/images/admin/picts/configureNewCluster01.png differ diff --git a/modules/install/assets/images/admin/picts/dashboard01.png b/modules/install/assets/images/admin/picts/dashboard01.png new file mode 100644 index 0000000000..9657d7ea14 Binary files /dev/null and b/modules/install/assets/images/admin/picts/dashboard01.png differ diff --git a/modules/install/assets/images/admin/picts/joinClusterInitial.png b/modules/install/assets/images/admin/picts/joinClusterInitial.png new file mode 100644 index 0000000000..4c36f09e88 Binary files /dev/null and b/modules/install/assets/images/admin/picts/joinClusterInitial.png differ diff --git a/modules/install/assets/images/admin/picts/joinClusterMemoryQuotaSaved.png b/modules/install/assets/images/admin/picts/joinClusterMemoryQuotaSaved.png new file mode 100644 index 0000000000..e6973dee5e Binary files /dev/null and b/modules/install/assets/images/admin/picts/joinClusterMemoryQuotaSaved.png differ diff --git a/modules/install/assets/images/admin/picts/joinClusterServiceCheckboxes.png b/modules/install/assets/images/admin/picts/joinClusterServiceCheckboxes.png new file mode 100644 index 0000000000..511912c7a2 Binary files /dev/null and b/modules/install/assets/images/admin/picts/joinClusterServiceCheckboxes.png differ diff --git a/modules/install/assets/images/admin/picts/joinExistingNewServiceSettings.png b/modules/install/assets/images/admin/picts/joinExistingNewServiceSettings.png new file mode 100644 index 0000000000..c182e3769c Binary files /dev/null and b/modules/install/assets/images/admin/picts/joinExistingNewServiceSettings.png differ diff --git a/modules/install/assets/images/admin/picts/joinWithCustomConfigurationButton.png b/modules/install/assets/images/admin/picts/joinWithCustomConfigurationButton.png new file mode 100644 index 0000000000..582d58f1db Binary files /dev/null and b/modules/install/assets/images/admin/picts/joinWithCustomConfigurationButton.png differ diff --git a/modules/install/assets/images/admin/picts/joinWithDefaultConfig.png b/modules/install/assets/images/admin/picts/joinWithDefaultConfig.png new file mode 100644 index 0000000000..d5c7de0dd7 Binary files /dev/null and b/modules/install/assets/images/admin/picts/joinWithDefaultConfig.png differ diff --git a/modules/install/assets/images/admin/picts/registerForUpdates01.png b/modules/install/assets/images/admin/picts/registerForUpdates01.png new file mode 100644 index 0000000000..6034985402 Binary files /dev/null and b/modules/install/assets/images/admin/picts/registerForUpdates01.png differ diff --git a/modules/install/assets/images/admin/picts/setUpNewCluster01.png b/modules/install/assets/images/admin/picts/setUpNewCluster01.png new file mode 100644 index 0000000000..ce84fb4cb1 Binary files /dev/null and b/modules/install/assets/images/admin/picts/setUpNewCluster01.png differ diff --git a/modules/install/assets/images/admin/picts/welcome.png b/modules/install/assets/images/admin/picts/welcome.png new file mode 100644 index 0000000000..bdc2e9d137 Binary files /dev/null and b/modules/install/assets/images/admin/picts/welcome.png differ diff --git a/modules/install/pages/getting-started-docker.adoc b/modules/install/pages/getting-started-docker.adoc index 5c919e0b1a..c22048f342 100644 --- a/modules/install/pages/getting-started-docker.adoc +++ b/modules/install/pages/getting-started-docker.adoc @@ -55,7 +55,11 @@ Starting Couchbase Server -- Web UI available at http://:8091 . From a Web browser, go to [.path]_\http://localhost:8091_ to access the Couchbase Server Web Console. If the container is up and running, you should see the Couchbase Server Setup Screen. + +<<<<<<< HEAD +image::admin/picts/welcome.png[,300] +======= image::admin/welcome.png[,300] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . Walk through the setup wizard to xref:init-setup.adoc[initialize the Couchbase Server cluster] as normal. + @@ -162,7 +166,11 @@ The initial cluster setup will automatically pick up the IP address for `db3`. . From a Web browser, go to [.path]_\http://localhost:8091_ to access the Web Console. If `db3` is up and running, you should see the Couchbase Server Setup Screen. + +<<<<<<< HEAD +image::admin/picts/welcome.png[,300] +======= image::admin/welcome.png[,300] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . Click [.ui]*Setup New Cluster* and walk through the setup wizard to xref:init-setup.adoc[initialize the Couchbase Server cluster] as normal. + @@ -241,7 +249,11 @@ You need the IP address of each container to set up the three-node Couchbase Ser . On one of the physical hosts, open a Web browser and go to [.path]_\http://localhost:8091_ or `+http://:8091+` to access the Web Console. If the container is up and running, you should see the Couchbase Server Setup Screen. + +<<<<<<< HEAD +image::admin/picts/welcome.png[,300] +======= image::admin/welcome.png[,300] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 + Click [.ui]*Setup New Cluster* and walk through the setup wizard to xref:init-setup.adoc[initialize the Couchbase Server cluster] as normal. + diff --git a/modules/install/pages/hostnames.adoc b/modules/install/pages/hostnames.adoc index 13783edf00..35bfa961b9 100644 --- a/modules/install/pages/hostnames.adoc +++ b/modules/install/pages/hostnames.adoc @@ -20,7 +20,11 @@ Each of these options is described below. In the [.ui]*Cluster Name* panel, on the [.ui]*Couchbase > New Cluster* dialog, you can enter either a hostname or a specific IP address into the interactive text-field. +<<<<<<< HEAD +image::admin/picts/cluster-setup-host.png[,320,align=left] +======= image::admin/cluster-setup-host.png[,320,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == Provide a Hostname while Adding a Node diff --git a/modules/install/pages/init-setup.adoc b/modules/install/pages/init-setup.adoc index efb2b8f839..d83fd4a07e 100644 --- a/modules/install/pages/init-setup.adoc +++ b/modules/install/pages/init-setup.adoc @@ -17,7 +17,11 @@ If you have chosen to run Couchbase on a port other than `8091`, connect on that Once you have connected, the [.ui]*Welcome* screen appears: [#welcome] +<<<<<<< HEAD +image::admin/picts/welcome.png[,400,align=left] +======= image::admin/welcome.png[,400,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The [.ui]*Welcome* screen lets you either [.ui]*Setup New Cluster*, or [.ui]*Join Existing Cluster*. Information on joining an existing cluster is provided below, in the section _Join an Existing Cluster_. @@ -29,7 +33,11 @@ To set up a new cluster, left-click on [.ui]*Setup New Cluster*. The [.ui]*New Cluster* screen now appears, as follows: [#set_up_new_cluster_01] +<<<<<<< HEAD +image::admin/picts/setUpNewCluster01.png[,390,align=left] +======= image::admin/setUpNewCluster01.png[,390,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The fields displayed on the screen are: @@ -52,14 +60,22 @@ When you have entered appropriate data into each field, left-click on the btn:[N The [.ui]*New Cluster* screen now changes, to show the [.ui]*Terms and Conditions* for the Enterprise Edition of Couchbase Server: [#ts_and_cs_01] +<<<<<<< HEAD +image::admin/picts/TsAndCs01.png[,390,align=left] +======= image::admin/TsAndCs01.png[,390,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Check the [.ui]*I accept the terms & conditions* checkbox. Then, to register for updates, left-click on the right-facing arrowhead, adjacent to the [.ui]*Register for updates* notification. The screen now expands vertically, as follows: [#register_for_updates] +<<<<<<< HEAD +image::admin/picts/registerForUpdates01.png[,390,align=left] +======= image::admin/registerForUpdates01.png[,390,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 To receive updates, fill out the four newly displayed fields with your first and last name, company-name, and email-address. Provided that the current node is connected to the internet, the Couchbase Server version-numbers corresponding to each node in your cluster will be anonymously sent to Couchbase: this information is used by Couchbase over time, to provide you with appropriate updates, and to help with product-improvement. @@ -76,7 +92,11 @@ However, if you wish to customize those settings, left-click on the btn:[Configu The [.ui]*Configure* screen now appears, as follows: [#configure_new_cluster_01] +<<<<<<< HEAD +image::admin/picts/configureNewCluster01.png[,390,align=left] +======= image::admin/configureNewCluster01.png[,390,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The displayed fields are: @@ -135,7 +155,11 @@ When you have finished entering your configuration-details, left-click on the [. This configures the server accordingly, and brings up the Couchbase Web Console [.ui]*Dashboard*, for the first time. [#dashboard_01] +<<<<<<< HEAD +image::admin/picts/dashboard01.png[,820,align=left] +======= image::admin/dashboard01.png[,820,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == New-Cluster Set-Up: Next Steps @@ -158,7 +182,11 @@ For information on how to set up RBAC users so that they can access the buckets If, while the [.ui]*Welcome Screen* is still displayed, you left-click on [.ui]*Join Existing Cluster*, the [.ui]*Join Cluster* screen appears: [#join_cluster_initial] +<<<<<<< HEAD +image::admin/picts/joinClusterInitial.png[,390,align=left] +======= image::admin/joinClusterInitial.png[,390,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The interactive fields [.ui]*Cluster Host Name/IP Address*, [.ui]*Cluster Admin Username*, and [.ui]*Cluster Admin Password* require you to enter information already defined by the Full Administrator for the cluster-host: see _Set Up a New Cluster_, above. @@ -169,7 +197,11 @@ To change the default configuration, or to review its details, left-click on the The screen now expands vertically, as shown below: [#join_with_default_config] +<<<<<<< HEAD +image::admin/picts/joinWithDefaultConfig.png[,390,align=left] +======= image::admin/joinWithDefaultConfig.png[,390,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Newly displayed fields show default values for the Couchbase services (a checked box indicating that the corresponding service will be added to this node), the [.ui]*Host Name/IP Address* for the current node, and default paths for [.ui]*Data*, [.ui]*Indexes*, and [.ui]*Analytics*. Specify hostname or IP address, and data and index paths as described above, in _Set Up a New Cluster_. @@ -180,18 +212,30 @@ For example, _uncheck_ the checkboxes for [.ui]*Query Service*, [.ui]*Eventing S The checkbox-display now appears as follows: [#join_cluster_service_checkboxes] +<<<<<<< HEAD +image::admin/picts/joinClusterServiceCheckboxes.png[,140,align=left] +======= image::admin/joinClusterServiceCheckboxes.png[,140,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Note that due to this change, the button at the lower right has been renamed: [#join_with_custom_configuration_button] +<<<<<<< HEAD +image::admin/picts/joinWithCustomConfigurationButton.png[,240,align=left] +======= image::admin/joinWithCustomConfigurationButton.png[,240,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Left-click on this button, to save the configurations you have specified. If the existing cluster previously had (say) only the Data service defined, the [.ui]*New Service Settings* dialog now appears: [#join_existing_new_service_settings] +<<<<<<< HEAD +image::admin/picts/joinExistingNewServiceSettings.png[,390,align=left] +======= image::admin/joinExistingNewServiceSettings.png[,390,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 This dialog acknowledges that the Index has been added to the cluster for the first time, and provides the opportunity to edit both of the services now featured (Data and Index), and also to make a selection for the [.ui]*Index Storage Setting*; as is now required due to your addition of the Index service. All modifications you now make are applied to each node in the cluster. @@ -200,7 +244,11 @@ When you have made the appropriate changes, left-click on the btn:[Save Settings The Couchbase Web Console [.ui]*Dashboard* for the current node now appears — with a notification confirming the successful saving of a new memory quota: [#join_cluster_memory_quota_saved] +<<<<<<< HEAD +image::admin/picts/joinClusterMemoryQuotaSaved.png[,720,align=left] +======= image::admin/joinClusterMemoryQuotaSaved.png[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The new node has now been successfully added to the existing cluster. diff --git a/modules/install/pages/install-package-windows.adoc b/modules/install/pages/install-package-windows.adoc index 90de896939..bbd8fa4150 100644 --- a/modules/install/pages/install-package-windows.adoc +++ b/modules/install/pages/install-package-windows.adoc @@ -50,7 +50,12 @@ For information on installing Couchbase Server on IPv6 systems, see xref:ipv6-se // Windows or Powershell scripting. //

//

The basic syntax of the wget command is: +<<<<<<< HEAD +// $ wget [option]... +// [url]...For example, the following command +======= // $ wget [option]... [url]...For example, the following command +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 // downloads Couchbase Server Enterprise Edition for Windows Server 2012 R2: // $ wget.exe -\-no-check-certificate http://packages.couchbase.com/releases/version/couchbase-server-enterprise-version-windows_amd64.msi

diff --git a/modules/install/pages/running-couchbase-in-containers.adoc b/modules/install/pages/running-couchbase-in-containers.adoc index 2db67316e4..d292be1c25 100644 --- a/modules/install/pages/running-couchbase-in-containers.adoc +++ b/modules/install/pages/running-couchbase-in-containers.adoc @@ -4,6 +4,20 @@ Couchbase Server is designed to run in the most popular container environments. Use this topic to explore the different ways that you can deploy Couchbase in containers. +<<<<<<< HEAD +With the xref:operator::overview.adoc[Couchbase Autonomous Operator], you can easily automate the deployment of Couchbase Server on container orchestration platforms like Kubernetes and Red Hat OpenShift. + +If you want to do a more traditional container deployment in a data center, or simply want to install Couchbase in a container on your laptop, you can download and install the official images from Docker Hub. + +.Container Deployment Methods +|=== +| Couchbase Autonomous Operator (Beta) ^| Docker + +| Automate your Couchbase deployment with native Kubernetes and OpenShift integration. +| Run Couchbase Server using a traditional Docker deployment. + +| xref:operator::overview.adoc[About the Couchbase Autonomous Operator for Kubernetes] +======= .Container Deployment Methods |=== | Couchbase Autonomous Operator (Kubernetes) ^| Docker @@ -12,6 +26,7 @@ Use this topic to explore the different ways that you can deploy Couchbase in co | Run Couchbase Server using a traditional Docker deployment. | xref:operator::overview.adoc[About the Couchbase Autonomous Operator] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 a| * xref:getting-started-docker.adoc[Running Couchbase Server Using Docker] |=== diff --git a/modules/monitoring/assets/images/admin/picts/dcp-queue-stats.png b/modules/monitoring/assets/images/admin/picts/dcp-queue-stats.png new file mode 100644 index 0000000000..93f2f077a3 Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/dcp-queue-stats.png differ diff --git a/modules/monitoring/assets/images/admin/picts/inbound_xdcr_web_console.png b/modules/monitoring/assets/images/admin/picts/inbound_xdcr_web_console.png new file mode 100644 index 0000000000..b647dcf08d Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/inbound_xdcr_web_console.png differ diff --git a/modules/monitoring/assets/images/admin/picts/index-queue-stats.png b/modules/monitoring/assets/images/admin/picts/index-queue-stats.png new file mode 100644 index 0000000000..a0c509038a Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/index-queue-stats.png differ diff --git a/modules/monitoring/assets/images/admin/picts/outbound_xdcr.png b/modules/monitoring/assets/images/admin/picts/outbound_xdcr.png new file mode 100644 index 0000000000..0900a007b1 Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/outbound_xdcr.png differ diff --git a/modules/monitoring/assets/images/admin/picts/query-queue-stats.png b/modules/monitoring/assets/images/admin/picts/query-queue-stats.png new file mode 100644 index 0000000000..37435db5e1 Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/query-queue-stats.png differ diff --git a/modules/monitoring/assets/images/admin/picts/web-console-server-stats-diskqueues.png b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-diskqueues.png new file mode 100644 index 0000000000..84bd5abc63 Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-diskqueues.png differ diff --git a/modules/monitoring/assets/images/admin/picts/web-console-server-stats-memcached.png b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-memcached.png new file mode 100644 index 0000000000..65671a5be7 Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-memcached.png differ diff --git a/modules/monitoring/assets/images/admin/picts/web-console-server-stats-serverresource.png b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-serverresource.png new file mode 100644 index 0000000000..d1948945ef Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-serverresource.png differ diff --git a/modules/monitoring/assets/images/admin/picts/web-console-server-stats-summary.png b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-summary.png new file mode 100644 index 0000000000..53b3105fc0 Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-summary.png differ diff --git a/modules/monitoring/assets/images/admin/picts/web-console-server-stats-vbucket.png b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-vbucket.png new file mode 100644 index 0000000000..7791b2a368 Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-vbucket.png differ diff --git a/modules/monitoring/assets/images/admin/picts/web-console-server-stats-views.png b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-views.png new file mode 100644 index 0000000000..8017af2b2e Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/web-console-server-stats-views.png differ diff --git a/modules/monitoring/assets/images/admin/picts/xdcr_ongoing.png b/modules/monitoring/assets/images/admin/picts/xdcr_ongoing.png new file mode 100644 index 0000000000..f8cbf335b4 Binary files /dev/null and b/modules/monitoring/assets/images/admin/picts/xdcr_ongoing.png differ diff --git a/modules/monitoring/pages/monitoring-rest.adoc b/modules/monitoring/pages/monitoring-rest.adoc index 9b83b64aa3..d0e6aeab2e 100644 --- a/modules/monitoring/pages/monitoring-rest.adoc +++ b/modules/monitoring/pages/monitoring-rest.adoc @@ -38,8 +38,12 @@ While `views` operations are not factored into the metric, they provide a very q Cache Miss (`ep_cache_miss_rate`):: This metric counts the ratio of requested objects found in the cache compared to what is needed to be fetched from the disk. For example, if ten requests entered the database and one request needed to be retrieved from disk, the miss rate would be 10%. +<<<<<<< HEAD +What is the right cache miss rate for a given cluster? It depends on how much the application expects the database to hold in memory. +======= What is the right cache miss rate for a given cluster? It depends on how much the application expects the database to hold in memory. +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Fragmentation (`couch_docs_fragmentation`):: Couchbase Server stores data in an append-only format on disk. diff --git a/modules/monitoring/pages/ui-monitoring-statistics.adoc b/modules/monitoring/pages/ui-monitoring-statistics.adoc index f8636ba13b..3f01e6070c 100644 --- a/modules/monitoring/pages/ui-monitoring-statistics.adoc +++ b/modules/monitoring/pages/ui-monitoring-statistics.adoc @@ -55,7 +55,11 @@ For Memcached bucket types, the Memcached statistic summary is provided. The summary section is designed to provide a quick overview of the cluster activity. Each graph (or selected graph) shows information based on the currently selected bucket. +<<<<<<< HEAD +image::admin/picts/web-console-server-stats-summary.png[] +======= image::admin/web-console-server-stats-summary.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The following statistics are available: @@ -213,7 +217,11 @@ The following statistics are available: The *Server Resources* statistics section displays the resource information on this server including swap usage, free RAM, CPU utilization percentage, connections, port requests, streaming requests, index RAM used, remaining index RAM, and FTS RAM used. +<<<<<<< HEAD +image::admin/picts/web-console-server-stats-serverresource.png[,720] +======= image::admin/web-console-server-stats-serverresource.png[,720] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The displayed statistics are: @@ -259,7 +267,11 @@ The vBucket statistics provide information for all vBucket types within the clus Within the statistic display the table of statistics is organized in four columns, showing the Active, Replica and Pending states for each individual statistic. The last column provides the total value for each statistic. +<<<<<<< HEAD +image::admin/picts/web-console-server-stats-vbucket.png[,720] +======= image::admin/web-console-server-stats-vbucket.png[,720] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The *Active* column displays the information for vBuckets within the Active state. The *Replica* column displays the statistics for vBuckets within the Replica state (that is currently being replicated). @@ -306,7 +318,11 @@ The *Disk Queues* statistics section displays the information for data being pla Disk queues are used within Couchbase Server to store the information written to RAM on disk for persistence. Information is displayed for each of the disk queue states, Active, Replica, and Pending. +<<<<<<< HEAD +image::admin/picts/web-console-server-stats-diskqueues.png[,720] +======= image::admin/web-console-server-stats-diskqueues.png[,720] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The *Active* column displays the information for the Disk Queues within the Active state. The *Replica* column displays the statistics for the Disk Queues within the Replica state (that is currently being replicated). @@ -340,7 +356,11 @@ The displayed statistics are: The DCP queues statistics are designed to show information about the DCP connections activity for the bucket. The statistics information is therefore organized as a table with columns showing the statistics for DCP queues used for replication, XDCR, views/indexes, and other. +<<<<<<< HEAD +image::admin/picts/dcp-queue-stats.png[] +======= image::admin/dcp-queue-stats.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The statistics are detailed below: @@ -373,7 +393,11 @@ The statistics are detailed below: The *View Stats* show information about individual design documents within the selected bucket. One block of stats will be shown for each production-level design document. +<<<<<<< HEAD +image::admin/picts/web-console-server-stats-views.png[,520] +======= image::admin/web-console-server-stats-views.png[,520] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The statistics shown are: @@ -397,7 +421,11 @@ The statistics shown are: The INDEX STATS section provides statistics about the GSI Indexes. Statistics are provided per each individual index. +<<<<<<< HEAD +image::admin/picts/index-queue-stats.png[] +======= image::admin/index-queue-stats.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The statistics in this section are detailed below: @@ -445,7 +473,11 @@ This indicates the % of disk space consumed by the index, but not utilized for i For Memcached buckets, Web Console displays a separate group of statistics: +<<<<<<< HEAD +image::admin/picts/web-console-server-stats-memcached.png[,720] +======= image::admin/web-console-server-stats-memcached.png[,720] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The Memcached statistics are: @@ -520,7 +552,11 @@ The Memcached statistics are: The Query section provides statistics about the N1QL query service. These statistics are aggregated numbers at the query service level across the cluster, and are not per bucket or per node. +<<<<<<< HEAD +image::admin/picts/query-queue-stats.png[] +======= image::admin/query-queue-stats.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The statistics in this section are detailed below: @@ -575,7 +611,11 @@ The Outgoing XDCR shows the XDCR operations that are supporting cross datacenter You can monitor the current status for all active replications in the *Ongoing Replications* section on the *XDCR* page: +<<<<<<< HEAD +image::admin/picts/xdcr_ongoing.png[,720] +======= image::admin/xdcr_ongoing.png[,720] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The *Ongoing Replications* pane shows the following information: @@ -621,7 +661,11 @@ You can find two drop-down areas called in the [.ui]*Outgoing XDCR* and [.ui]*In Both provides statistics about ongoing replication for the particular bucket. Under the [.ui]*Outgoing XDCR* panel, if you have multiple replication streams you will see statistics for each stream. +<<<<<<< HEAD +image::admin/picts/outbound_xdcr.png[,720] +======= image::admin/outbound_xdcr.png[,720] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The statistics shown below may be different depending on the bucket data: @@ -699,7 +743,11 @@ All of the statistics in Web Console are based on statistics via the REST API or The *Incoming XDCR Operations* section shows the XDCR operations that are coming into to the current cluster from a remote cluster. +<<<<<<< HEAD +image::admin/picts/inbound_xdcr_web_console.png[,620] +======= image::admin/inbound_xdcr_web_console.png[,620] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The statistics shown are: diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/ANY_SOME_EVERY_expr.png b/modules/n1ql/assets/images/n1ql-language-reference/images/ANY_SOME_EVERY_expr.png new file mode 100644 index 0000000000..1a7e3972fa Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/ANY_SOME_EVERY_expr.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/ARRAY_FIRST_OBJECT_expr.png b/modules/n1ql/assets/images/n1ql-language-reference/images/ARRAY_FIRST_OBJECT_expr.png new file mode 100644 index 0000000000..80639f4598 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/ARRAY_FIRST_OBJECT_expr.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/ARRAY_expr.png b/modules/n1ql/assets/images/n1ql-language-reference/images/ARRAY_expr.png new file mode 100644 index 0000000000..92a9340134 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/ARRAY_expr.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/CURL_Add_button.png b/modules/n1ql/assets/images/n1ql-language-reference/images/CURL_Add_button.png new file mode 100644 index 0000000000..3b574aa6bf Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/CURL_Add_button.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/CURL_Remove_button.png b/modules/n1ql/assets/images/n1ql-language-reference/images/CURL_Remove_button.png new file mode 100644 index 0000000000..106e8d6051 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/CURL_Remove_button.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/CURL_Whitelist.png b/modules/n1ql/assets/images/n1ql-language-reference/images/CURL_Whitelist.png new file mode 100644 index 0000000000..9308a1bc02 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/CURL_Whitelist.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/EXISTS_expr.png b/modules/n1ql/assets/images/n1ql-language-reference/images/EXISTS_expr.png new file mode 100644 index 0000000000..5ff49421cc Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/EXISTS_expr.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_AnsiJoin-Ex4-BeerVisual1.png b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_AnsiJoin-Ex4-BeerVisual1.png new file mode 100755 index 0000000000..282f3b6f4b Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_AnsiJoin-Ex4-BeerVisual1.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_AnsiJoin-Ex4-BeerVisual2.png b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_AnsiJoin-Ex4-BeerVisual2.png new file mode 100755 index 0000000000..93f277f6be Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_AnsiJoin-Ex4-BeerVisual2.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_ansi-join_RR-clause_5.5.png b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_ansi-join_RR-clause_5.5.png new file mode 100755 index 0000000000..1b0a43d67b Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_ansi-join_RR-clause_5.5.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_ansi-nest_RR-clause_5.5.png b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_ansi-nest_RR-clause_5.5.png new file mode 100755 index 0000000000..d445507eff Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_ansi-nest_RR-clause_5.5.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_index-join-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_index-join-clause.png new file mode 100755 index 0000000000..0039a021ca Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_index-join-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_index-nest_5.1_rr.png b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_index-nest_5.1_rr.png new file mode 100755 index 0000000000..331c825f6b Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_index-nest_5.1_rr.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_lookup-join-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_lookup-join-clause.png new file mode 100755 index 0000000000..dd0ffe223d Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_lookup-join-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_lookup-nest_4.0_RR.png b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_lookup-nest_4.0_RR.png new file mode 100755 index 0000000000..7760436ad4 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_lookup-nest_4.0_RR.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_unnest-clause_4.0_RR.png b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_unnest-clause_4.0_RR.png new file mode 100755 index 0000000000..97be4fe941 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/FROM_unnest-clause_4.0_RR.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_55execution.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_55execution.png new file mode 100644 index 0000000000..e62d9d6a8c Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_55execution.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex0_QP_after55.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex0_QP_after55.png new file mode 100644 index 0000000000..e3b5b7d831 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex0_QP_after55.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex0_QP_before55.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex0_QP_before55.png new file mode 100644 index 0000000000..84983abeea Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex0_QP_before55.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex10_VP.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex10_VP.png new file mode 100644 index 0000000000..83c6dc883d Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex10_VP.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex2A_EP.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex2A_EP.png new file mode 100644 index 0000000000..808a6f0ce6 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex2A_EP.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex4A_VP.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex4A_VP.png new file mode 100644 index 0000000000..5c2f41240e Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_Ex4A_VP.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExB_Plan.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExB_Plan.png new file mode 100644 index 0000000000..879d214ae6 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExB_Plan.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExC_Plan.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExC_Plan.png new file mode 100644 index 0000000000..65ab3d39f4 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExC_Plan.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExD2_Plan.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExD2_Plan.png new file mode 100644 index 0000000000..2857ee0810 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExD2_Plan.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExD_Plan.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExD_Plan.png new file mode 100644 index 0000000000..87f0cd200c Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExD_Plan.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExE_Plan.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExE_Plan.png new file mode 100644 index 0000000000..c5f2587919 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_ExE_Plan.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_pre55execution.png b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_pre55execution.png new file mode 100644 index 0000000000..c3164667a2 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/GBAP_pre55execution.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/IN_expr.png b/modules/n1ql/assets/images/n1ql-language-reference/images/IN_expr.png new file mode 100644 index 0000000000..7222ab695c Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/IN_expr.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/Union_Intersect_Except.png b/modules/n1ql/assets/images/n1ql-language-reference/images/Union_Intersect_Except.png new file mode 100644 index 0000000000..1363e56273 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/Union_Intersect_Except.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/WITHIN_expr.png b/modules/n1ql/assets/images/n1ql-language-reference/images/WITHIN_expr.png new file mode 100644 index 0000000000..5c67c20ca1 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/WITHIN_expr.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/adaptive-indexing_Q7-Q8_Results.png b/modules/n1ql/assets/images/n1ql-language-reference/images/adaptive-indexing_Q7-Q8_Results.png new file mode 100644 index 0000000000..b97e150580 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/adaptive-indexing_Q7-Q8_Results.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/alias.png b/modules/n1ql/assets/images/n1ql-language-reference/images/alias.png new file mode 100755 index 0000000000..af237bb18a Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/alias.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index-clause.png new file mode 100644 index 0000000000..ca2855d15b Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_action-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_action-clause.png new file mode 100644 index 0000000000..3058964c57 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_action-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_node-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_node-clause.png new file mode 100644 index 0000000000..eb84628878 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_node-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_servers_step1.png b/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_servers_step1.png new file mode 100644 index 0000000000..bc95477eb5 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_servers_step1.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_servers_step2.png b/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_servers_step2.png new file mode 100644 index 0000000000..10474d311c Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/alter-index_servers_step2.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/cond.png b/modules/n1ql/assets/images/n1ql-language-reference/images/cond.png new file mode 100755 index 0000000000..842d5ea779 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/cond.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/create-partitioned-index-syntax.png b/modules/n1ql/assets/images/n1ql-language-reference/images/create-partitioned-index-syntax.png new file mode 100644 index 0000000000..3444911724 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/create-partitioned-index-syntax.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/escaped-identifier.png b/modules/n1ql/assets/images/n1ql-language-reference/images/escaped-identifier.png new file mode 100755 index 0000000000..1536f61b13 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/escaped-identifier.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/expr.png b/modules/n1ql/assets/images/n1ql-language-reference/images/expr.png new file mode 100755 index 0000000000..265f0b2e05 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/expr.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/from-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/from-clause.png new file mode 100755 index 0000000000..36b9ecca67 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/from-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/from-keyspace.png b/modules/n1ql/assets/images/n1ql-language-reference/images/from-keyspace.png new file mode 100755 index 0000000000..f6fb24216b Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/from-keyspace.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/from-select.png b/modules/n1ql/assets/images/n1ql-language-reference/images/from-select.png new file mode 100755 index 0000000000..49e2ee3662 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/from-select.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/from-term.png b/modules/n1ql/assets/images/n1ql-language-reference/images/from-term.png new file mode 100644 index 0000000000..0634c25b31 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/from-term.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/group-by-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/group-by-clause.png new file mode 100755 index 0000000000..45562390a8 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/group-by-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/having-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/having-clause.png new file mode 100755 index 0000000000..ae0144736d Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/having-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/identifier.png b/modules/n1ql/assets/images/n1ql-language-reference/images/identifier.png new file mode 100755 index 0000000000..1b00eef557 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/identifier.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/index-join-predicate.png b/modules/n1ql/assets/images/n1ql-language-reference/images/index-join-predicate.png new file mode 100755 index 0000000000..f42b03162d Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/index-join-predicate.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/index-name.png b/modules/n1ql/assets/images/n1ql-language-reference/images/index-name.png new file mode 100755 index 0000000000..e3ed29979f Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/index-name.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/index-ref.png b/modules/n1ql/assets/images/n1ql-language-reference/images/index-ref.png new file mode 100755 index 0000000000..c2d136bbd6 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/index-ref.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/index-using.png b/modules/n1ql/assets/images/n1ql-language-reference/images/index-using.png new file mode 100755 index 0000000000..92baec9705 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/index-using.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/insert-select.png b/modules/n1ql/assets/images/n1ql-language-reference/images/insert-select.png new file mode 100755 index 0000000000..ce3763520a Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/insert-select.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/insert-values.png b/modules/n1ql/assets/images/n1ql-language-reference/images/insert-values.png new file mode 100755 index 0000000000..a15e2e171f Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/insert-values.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/insert.png b/modules/n1ql/assets/images/n1ql-language-reference/images/insert.png new file mode 100755 index 0000000000..e192b7416b Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/insert.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/join-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/join-clause.png new file mode 100755 index 0000000000..998f24e7bb Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/join-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/join-predicate.png b/modules/n1ql/assets/images/n1ql-language-reference/images/join-predicate.png new file mode 100755 index 0000000000..bf6b57ce0e Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/join-predicate.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/join-type.png b/modules/n1ql/assets/images/n1ql-language-reference/images/join-type.png new file mode 100755 index 0000000000..3ed28b1366 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/join-type.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/key-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/key-clause.png new file mode 100644 index 0000000000..ed23460698 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/key-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/keyspace-ref.png b/modules/n1ql/assets/images/n1ql-language-reference/images/keyspace-ref.png new file mode 100755 index 0000000000..a90a469409 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/keyspace-ref.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/keyspace.png b/modules/n1ql/assets/images/n1ql-language-reference/images/keyspace.png new file mode 100755 index 0000000000..b83347a380 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/keyspace.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/let-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/let-clause.png new file mode 100755 index 0000000000..191687c5e6 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/let-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/letting-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/letting-clause.png new file mode 100755 index 0000000000..0bb664b2f0 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/letting-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/limit-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/limit-clause.png new file mode 100755 index 0000000000..f984a15e8a Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/limit-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/lookup-join-predicate.png b/modules/n1ql/assets/images/n1ql-language-reference/images/lookup-join-predicate.png new file mode 100755 index 0000000000..25e035b1bf Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/lookup-join-predicate.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/merge-actions.png b/modules/n1ql/assets/images/n1ql-language-reference/images/merge-actions.png new file mode 100644 index 0000000000..a2465352ba Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/merge-actions.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/merge-delete.png b/modules/n1ql/assets/images/n1ql-language-reference/images/merge-delete.png new file mode 100644 index 0000000000..2674a3e269 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/merge-delete.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/merge-insert.png b/modules/n1ql/assets/images/n1ql-language-reference/images/merge-insert.png new file mode 100644 index 0000000000..f3f059b0cd Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/merge-insert.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/merge-source.png b/modules/n1ql/assets/images/n1ql-language-reference/images/merge-source.png new file mode 100644 index 0000000000..75a9571f2a Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/merge-source.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/merge-update.png b/modules/n1ql/assets/images/n1ql-language-reference/images/merge-update.png new file mode 100644 index 0000000000..730b2bfe6d Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/merge-update.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/merge.png b/modules/n1ql/assets/images/n1ql-language-reference/images/merge.png new file mode 100644 index 0000000000..9593eb3bd4 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/merge.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/namespace.png b/modules/n1ql/assets/images/n1ql-language-reference/images/namespace.png new file mode 100755 index 0000000000..93658f7df7 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/namespace.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/nest-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/nest-clause.png new file mode 100755 index 0000000000..45e01e582c Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/nest-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/offset-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/offset-clause.png new file mode 100755 index 0000000000..df74733a56 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/offset-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/order-by-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/order-by-clause.png new file mode 100644 index 0000000000..451fc25258 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/order-by-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/ordering-term.png b/modules/n1ql/assets/images/n1ql-language-reference/images/ordering-term.png new file mode 100755 index 0000000000..86306554ec Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/ordering-term.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/path.png b/modules/n1ql/assets/images/n1ql-language-reference/images/path.png new file mode 100755 index 0000000000..6898869277 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/path.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/query_execution.png b/modules/n1ql/assets/images/n1ql-language-reference/images/query_execution.png new file mode 100644 index 0000000000..74cccda0bf Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/query_execution.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/query_service.svg b/modules/n1ql/assets/images/n1ql-language-reference/images/query_service.svg new file mode 100644 index 0000000000..ff2611d6f3 --- /dev/null +++ b/modules/n1ql/assets/images/n1ql-language-reference/images/query_service.svg @@ -0,0 +1,250 @@ + + + + Artboard + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Parse + + + Plan + + + Scan + + + Fetch + + + Join + + + Sort + + + Offset + + + Limit + + + Project + + + Filter + + + Pre-Aggregate + + + Aggregate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Client + + + Query Service + + + + Index Service + + + + Data Service + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/result-expr.png b/modules/n1ql/assets/images/n1ql-language-reference/images/result-expr.png new file mode 100755 index 0000000000..28400d5096 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/result-expr.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/returning-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/returning-clause.png new file mode 100755 index 0000000000..9a3d2e01f3 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/returning-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause.png new file mode 100755 index 0000000000..5c3b2fad0c Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_RR_alias.png b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_RR_alias.png new file mode 100644 index 0000000000..e6cbed8c58 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_RR_alias.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_RR_path.png b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_RR_path.png new file mode 100644 index 0000000000..941ac5335f Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_RR_path.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_RR_result-expr.png b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_RR_result-expr.png new file mode 100644 index 0000000000..b826df1959 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_RR_result-expr.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_ex1.png b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_ex1.png new file mode 100644 index 0000000000..88ab0f9b76 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_ex1.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_ex2.png b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_ex2.png new file mode 100644 index 0000000000..deed993289 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/select-clause_ex2.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/select-from.png b/modules/n1ql/assets/images/n1ql-language-reference/images/select-from.png new file mode 100755 index 0000000000..cfd5766da6 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/select-from.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/select-term.png b/modules/n1ql/assets/images/n1ql-language-reference/images/select-term.png new file mode 100755 index 0000000000..33696d3d99 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/select-term.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/select.png b/modules/n1ql/assets/images/n1ql-language-reference/images/select.png new file mode 100755 index 0000000000..0ad0f5ae7f Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/select.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/set-op.png b/modules/n1ql/assets/images/n1ql-language-reference/images/set-op.png new file mode 100755 index 0000000000..98fc108f0e Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/set-op.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/subselect.png b/modules/n1ql/assets/images/n1ql-language-reference/images/subselect.png new file mode 100755 index 0000000000..07f3cfc887 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/subselect.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/unescaped-identifier.png b/modules/n1ql/assets/images/n1ql-language-reference/images/unescaped-identifier.png new file mode 100755 index 0000000000..27b9e4134e Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/unescaped-identifier.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/unnest-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/unnest-clause.png new file mode 100755 index 0000000000..99e32b66b1 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/unnest-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/use-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/use-clause.png new file mode 100755 index 0000000000..1c5e19ca38 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/use-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/use-index-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/use-index-clause.png new file mode 100755 index 0000000000..3ec4c8dafa Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/use-index-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/use-keys-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/use-keys-clause.png new file mode 100755 index 0000000000..54566d320c Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/use-keys-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/values-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/values-clause.png new file mode 100755 index 0000000000..986b049804 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/values-clause.png differ diff --git a/modules/n1ql/assets/images/n1ql-language-reference/images/where-clause.png b/modules/n1ql/assets/images/n1ql-language-reference/images/where-clause.png new file mode 100755 index 0000000000..20d9e6fcd1 Binary files /dev/null and b/modules/n1ql/assets/images/n1ql-language-reference/images/where-clause.png differ diff --git a/modules/n1ql/assets/images/travel-app/images/travel-app-data-model.png b/modules/n1ql/assets/images/travel-app/images/travel-app-data-model.png new file mode 100644 index 0000000000..02f6e18373 Binary files /dev/null and b/modules/n1ql/assets/images/travel-app/images/travel-app-data-model.png differ diff --git a/modules/n1ql/pages/n1ql-language-reference/adaptive-indexing.adoc b/modules/n1ql/pages/n1ql-language-reference/adaptive-indexing.adoc index 9442b37d3a..e7c121b89b 100644 --- a/modules/n1ql/pages/n1ql-language-reference/adaptive-indexing.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/adaptive-indexing.adoc @@ -280,7 +280,11 @@ C8: CREATE INDEX `ai_city` ON `travel-sample`(pairs({city})); Q8: EXPLAIN SELECT city FROM `travel-sample` USE INDEX (ai_city) WHERE city = "San Francisco"; ---- + +<<<<<<< HEAD +image::n1ql-language-reference/images/adaptive-indexing_Q7-Q8_Results.png[] +======= image::n1ql-language-reference/adaptive-indexing_Q7-Q8_Results.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . *Adaptive index requires more storage and memory*, especially in case of Memory Optimized Indexes. diff --git a/modules/n1ql/pages/n1ql-language-reference/alterindex.adoc b/modules/n1ql/pages/n1ql-language-reference/alterindex.adoc index c5888d7764..6c1a75bff6 100644 --- a/modules/n1ql/pages/n1ql-language-reference/alterindex.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/alterindex.adoc @@ -43,11 +43,19 @@ This statement is supported only from 5.5 onwards; if the cluster is in mix-mode == Syntax +<<<<<<< HEAD +image::n1ql-language-reference/images/alter-index-clause.png[,850] + +image::n1ql-language-reference/images/alter-index_action-clause.png[,50%] + +image::n1ql-language-reference/images/alter-index_node-clause.png[,50%] +======= image::n1ql-language-reference/alter-index-clause.png[,850] image::n1ql-language-reference/alter-index_action-clause.png[,50%] image::n1ql-language-reference/alter-index_node-clause.png[,50%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- ALTER INDEX key_expr @@ -137,7 +145,11 @@ Create a cluster of 3 nodes and then go to *Settings > Sample buckets* to instal The indexes will then be installed in a round-robin fashion and distributed over the 3 nodes. Then move the `def_faa` index from the first node (192.168.10.*10* in the screenshot) to the second node (192.168.10.*11* in the screenshot). +<<<<<<< HEAD +image::n1ql-language-reference/images/alter-index_servers_step1.png[,70%] +======= image::n1ql-language-reference/alter-index_servers_step1.png[,70%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- ALTER INDEX `travel-sample`.def_faa @@ -152,7 +164,11 @@ You should see: } ---- +<<<<<<< HEAD +image::n1ql-language-reference/images/alter-index_servers_step2.png[,70%] +======= image::n1ql-language-reference/alter-index_servers_step2.png[,70%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 *Example 2: Create and move an index replica from one node to another.* diff --git a/modules/n1ql/pages/n1ql-language-reference/bitwisefun.adoc b/modules/n1ql/pages/n1ql-language-reference/bitwisefun.adoc index 576006a8e5..9f91e30dbe 100644 --- a/modules/n1ql/pages/n1ql-language-reference/bitwisefun.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/bitwisefun.adoc @@ -185,7 +185,12 @@ results: [ This results in 7 (0**111** in binary) because at least 1 bit of each (00**11** and 0**11**0) is 1 in bits 1, 2, and 3. +<<<<<<< HEAD +*Example OR-2*: Perform OR on 3 (0011 in binary) and -4 (1000 0000 0000 \... +0000 1100 in binary). +======= *Example OR-2*: Perform OR on 3 (0011 in binary) and -4 (1000 0000 0000 \... 0000 1100 in binary). +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- SELECT BITOR(3,-4) AS BitOR; @@ -195,7 +200,12 @@ results: [ ] ---- +<<<<<<< HEAD +This results in -1 (*1111 1111 1111 \... +1111 1111* in binary) because the two 1 bits in 3 fill in the two 0 bits in -4 to turn on all the bits. +======= This results in -1 (*1111 1111 1111 \... 1111 1111* in binary) because the two 1 bits in 3 fill in the two 0 bits in -4 to turn on all the bits. +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 *Example OR-3*: Perform OR on 3 (0011 in binary) and 6 (0110 in binary) and 15 (1111 in binary). @@ -332,17 +342,32 @@ For comparison, see the below table. | 6 (0000 0110) | -2 | 1 (0000 0001) +<<<<<<< HEAD +| -9223372036854776000 (1000 0000 \... +0000 0001) +======= | -9223372036854776000 (1000 0000 \... 0000 0001) +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | 6 (0000 0110) | -3 | 0 (0000 0000) +<<<<<<< HEAD +| -4611686018427388000 (1100 0000 \... +0000 0000) +======= | -4611686018427388000 (1100 0000 \... 0000 0000) +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | 6 (0000 0110) | -4 | 0 (0000 0000) +<<<<<<< HEAD +| 6917529027641081856 (0110 0000 \... +0000 0000) +======= | 6917529027641081856 (0110 0000 \... 0000 0000) +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== Return Value:: An integer, representing the result of either a logical or circular shift of the given integer. diff --git a/modules/n1ql/pages/n1ql-language-reference/collectionops.adoc b/modules/n1ql/pages/n1ql-language-reference/collectionops.adoc index 6605523df5..2005c653e1 100644 --- a/modules/n1ql/pages/n1ql-language-reference/collectionops.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/collectionops.adoc @@ -10,7 +10,11 @@ The operators include `ANY`, `EVERY`, `ARRAY`, `FIRST`, `EXISTS`, `IN`, and `WIT `ANY` is a range predicate that tests a Boolean condition over the elements or attributes of a collection, object, or objects. It uses the `IN` and `WITHIN` operators to range through the collection. +<<<<<<< HEAD +*Syntax* image:n1ql-language-reference/images/ANY_SOME_EVERY_expr.png[] +======= *Syntax* image:n1ql-language-reference/ANY_SOME_EVERY_expr.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- ANY var1 ( IN | WITHIN ) expr1 @@ -182,7 +186,11 @@ It evaluates to an array of the operand expression, that satisfies the `WHEN` cl *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/ARRAY_expr.png[,50%] +======= image::n1ql-language-reference/ARRAY_expr.png[,50%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- ARRAY var1 FOR var1 ( IN | WITHIN ) expr1 @@ -239,7 +247,11 @@ AND ANY v IN schedule SATISFIES v.utc > "19:00" END; `EVERY` is a range predicate that tests a Boolean condition over the elements or attributes of a collection, object, or objects. It uses the IN and WITHIN operators to range through the collection. +<<<<<<< HEAD +*Syntax* image:n1ql-language-reference/images/ANY_SOME_EVERY_expr.png[] +======= *Syntax* image:n1ql-language-reference/ANY_SOME_EVERY_expr.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- EVERY var1 ( IN | WITHIN ) expr1 @@ -408,7 +420,11 @@ It can be used in a `SELECT`, `INSERT`, `UPDATE`, or `DELETE` statement. *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/EXISTS_expr.png[,50%] +======= image::n1ql-language-reference/EXISTS_expr.png[,50%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- search_expr EXISTS target_expr @@ -452,7 +468,11 @@ This results in the 626 cities that contain both an airport and a landmark. The `FIRST` operator enables you to map and filter the elements or attributes of a collection, object, or objects. It evaluates to a single element based on the operand expression that satisfies the `WHEN` clause, if provided. +<<<<<<< HEAD +*Syntax* image:n1ql-language-reference/images/ARRAY_FIRST_OBJECT_expr.png[] +======= *Syntax* image:n1ql-language-reference/ARRAY_FIRST_OBJECT_expr.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- FIRST var1 FOR var1 ( IN | WITHIN ) expr1 @@ -501,7 +521,11 @@ The `IN` operator specifies the search depth to include only the current level o *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/IN_expr.png[,50%] +======= image::n1ql-language-reference/IN_expr.png[,50%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- search_expr [ NOT ] IN target_expr @@ -565,7 +589,11 @@ The `WITHIN` operator specifies the search depth to include the current level of *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/WITHIN_expr.png[,50%] +======= image::n1ql-language-reference/WITHIN_expr.png[,50%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- search_expr [ NOT ] WITHIN target_expr diff --git a/modules/n1ql/pages/n1ql-language-reference/curl.adoc b/modules/n1ql/pages/n1ql-language-reference/curl.adoc index 38c99ffec9..7914629445 100644 --- a/modules/n1ql/pages/n1ql-language-reference/curl.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/curl.adoc @@ -200,7 +200,11 @@ To enable access based on the whitelist, a Full Administrator must create the fi *1. From the Query Workbench* +<<<<<<< HEAD +In the Query Workbench, navigate to the *Settings > Advanced Query Settings* section as shown below: image:n1ql-language-reference/images/CURL_Whitelist.png[,70%] +======= In the Query Workbench, navigate to the *Settings > Advanced Query Settings* section as shown below: image:n1ql-language-reference/CURL_Whitelist.png[,70%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 After expanding the Advanced Query Settings section, you can choose the Function Access: @@ -209,9 +213,15 @@ After expanding the Advanced Query Settings section, you can choose the Function Under the *Allowed CURL URLs* and *Disallowed CURL URLs* headings, enter your allowed or disallowed URL in the appropriate textbox and press the *Enter* key or click anywhere else on this screen to enter your URL. +<<<<<<< HEAD +Click image:n1ql-language-reference/images/CURL_Add_button.png[,30%] to add another URL to the list. + +Click image:n1ql-language-reference/images/CURL_Remove_button.png[,30%] to remove a URL from the list. +======= Click image:n1ql-language-reference/CURL_Add_button.png[,30%] to add another URL to the list. Click image:n1ql-language-reference/CURL_Remove_button.png[,30%] to remove a URL from the list. +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 *2. From CBQ* diff --git a/modules/n1ql/pages/n1ql-language-reference/from.adoc b/modules/n1ql/pages/n1ql-language-reference/from.adoc index d8f0223e5f..0f17ed0cd8 100644 --- a/modules/n1ql/pages/n1ql-language-reference/from.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/from.adoc @@ -22,7 +22,11 @@ For more details about user roles, see xref:security:security-authorization.adoc == Syntax +<<<<<<< HEAD +image::n1ql-language-reference/images/from-term.png[] +======= image::n1ql-language-reference/from-term.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- FROM from-keyspace [ [ AS ] alias1 ] [ USE KEYS use-clause ] @@ -41,11 +45,25 @@ a| :: +<<<<<<< HEAD +. +. +. +*AS alias* + +:: + +. +. +. +<> +======= {empty} . . . *AS alias* :: {empty} . . . <> +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 a| xref:n1ql-language-reference/identifiers.adoc[Identifier] that represents the keyspace for the query, such as `pass:c[FROM `travel-sample`]` @@ -70,21 +88,42 @@ a| :: +<<<<<<< HEAD +. +. +. +*JOIN join-clause* +======= {empty} . . . *JOIN join-clause* +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 :: :: ;; +<<<<<<< HEAD +. +. +. +*NEST nest-clause* +======= {empty} . . . *NEST nest-clause* +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 :: :: ;; +<<<<<<< HEAD +. +. +. +*UNNEST unnest-clause* +======= {empty} . . . *UNNEST unnest-clause* +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 a| A N1QL expression that defines the input object(s) for the query, which can be either a <>, xref:n1ql-language-reference/index.adoc[generic expression], or xref:n1ql-language-reference/subqueries.adoc[subquery] along with one or more JOIN, NEST, or UNNEST clause. @@ -285,7 +324,11 @@ Only documents having those document keys will be included as inputs to a query. *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/use-keys-clause.png[] +======= image::n1ql-language-reference/use-keys-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- USE [ PRIMARY ] KEYS expr @@ -498,7 +541,12 @@ The following table lists the JOIN types currently supported. |=== | Join Type | Remarks | Example +<<<<<<< HEAD +| *[INNER] JOIN \... +ON* +======= | *[INNER] JOIN \... ON* +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 .2+| INNER JOIN and LEFT OUTER JOIN can be mixed in any number and/or order. | `SELECT *` @@ -510,7 +558,12 @@ The following table lists the JOIN types currently supported. `WHERE a.country = "France"` +<<<<<<< HEAD +| *LEFT [OUTER] JOIN \... +ON* +======= | *LEFT [OUTER] JOIN \... ON* +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | `SELECT *` `pass:c[FROM `travel-sample` r]` @@ -521,7 +574,12 @@ The following table lists the JOIN types currently supported. `WHERE r.sourceairport = "SFO"` +<<<<<<< HEAD +| *RIGHT [OUTER] JOIN \... +ON* +======= | *RIGHT [OUTER] JOIN \... ON* +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | RIGHT OUTER JOIN can only be the first join specified in a FROM clause. | `SELECT *` @@ -536,7 +594,11 @@ The following table lists the JOIN types currently supported. *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/FROM_ansi-join_RR-clause_5.5.png[,70%] +======= image::n1ql-language-reference/FROM_ansi-join_RR-clause_5.5.png[,70%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- lhs-expr [join-type] JOIN rhs-expr ON join-clause @@ -733,7 +795,11 @@ Results: ] ---- +<<<<<<< HEAD +Visual Explain Plan: image:n1ql-language-reference/images/FROM_AnsiJoin-Ex4-BeerVisual1.png[] +======= Visual Explain Plan: image:n1ql-language-reference/FROM_AnsiJoin-Ex4-BeerVisual1.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 If you add `name` as the second index key to the `beer_brewery` index: @@ -742,9 +808,16 @@ CREATE INDEX beer_brewery_name ON `beer-sample` (brewery_id, name) WHERE type = "beer" ---- +<<<<<<< HEAD +\... +then you will get covering index scan, as shown in the Visual Explain Plan: + +image::n1ql-language-reference/images/FROM_AnsiJoin-Ex4-BeerVisual2.png[] +======= \... then you will get covering index scan, as shown in the Visual Explain Plan: image::n1ql-language-reference/FROM_AnsiJoin-Ex4-BeerVisual2.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 *Limitations* @@ -1100,7 +1173,11 @@ Couchbase Server version 4.1 and earlier supported only lookup joins. *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/FROM_lookup-join-clause.png[,70%] +======= image::n1ql-language-reference/FROM_lookup-join-clause.png[,70%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- [ join-type ] JOIN from-path [ [ AS ] alias ] ON KEYS on-keys-clause @@ -1409,7 +1486,11 @@ This is because Index JOINs' `ON KEY` expression must produce a scalar value; wh *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/FROM_index-join-clause.png[,80%] +======= image::n1ql-language-reference/FROM_index-join-clause.png[,80%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- [ join-type ] JOIN from-path [ [ AS ] alias ] ON KEY FOR on-key-for-clause @@ -1436,7 +1517,12 @@ lhs-expression-key::: String or expression representing the attribute in rhs-exp FOR lhs-expression;; Keyspace reference for the left-hand side of the index join. +<<<<<<< HEAD +*Index JOIN Example 1:*`+ON KEY ... +FOR+`. +======= *Index JOIN Example 1:*`+ON KEY ... FOR+`. +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The following example counts the number of distinct "AA" airline routes for each airport after creating the following index (if not already created). @@ -1471,7 +1557,11 @@ Unnests can be chained. *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/FROM_unnest-clause_4.0_RR.png[,80%] +======= image::n1ql-language-reference/FROM_unnest-clause_4.0_RR.png[,80%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- [ join-type ] UNNEST path [ [ AS ] alias ] @@ -1656,7 +1746,11 @@ The `ON` clause can contain any expression, and thus it opens up many more nest *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/FROM_ansi-nest_RR-clause_5.5.png[,80%] +======= image::n1ql-language-reference/FROM_ansi-nest_RR-clause_5.5.png[,80%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `lhs-expr` `[``nest-type``] NEST` `rhs-expr` `ON` `nest-clause` @@ -1741,7 +1835,11 @@ But instead of producing a cross-product of the left and right inputs, a single *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/FROM_lookup-nest_4.0_RR.png[,80%] +======= image::n1ql-language-reference/FROM_lookup-nest_4.0_RR.png[,80%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- [ join-type ] NEST from-path [ [ AS ] alias ] on-keys-clause @@ -2002,7 +2100,11 @@ This is because Index NESTs' `ON KEY` expression must produce a scalar value; wh *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/FROM_index-nest_5.1_rr.png[] +======= image::n1ql-language-reference/FROM_index-nest_5.1_rr.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- [ nest-type ] NEST from-path [ [ AS ] alias ] ON KEY on-key-clause FOR for-clause @@ -2030,7 +2132,12 @@ lhs-expression-key;; String or expression representing the attribute in `rhs-exp `FOR` lhs-expression:: Keyspace reference for the left-hand side of the index nest. +<<<<<<< HEAD +*Index NEST Example 1:* ON KEY \... +FOR. +======= *Index NEST Example 1:* ON KEY \... FOR. +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 This example nests the airline routes for each airline after creating the following index. (Note that the index will not match if it contains a WHERE clause) diff --git a/modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc b/modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc index 5c8c3b8295..c29316fefc 100644 --- a/modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/groupby-aggregate-performance.adoc @@ -52,12 +52,20 @@ GROUP BY type; Before Couchbase version 5.5, this query engine fetched relevant data from the indexer and group the data within the query engine and then aggregate. This simple query takes about 250 ms. +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_Ex0_QP_before55.png[] +======= image::n1ql-language-reference/GBAP_Ex0_QP_before55.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Now, in Couchbase version 5.5, this query use the same `def_type` index, but executes in under 70 ms. In the explain below, you can see fewer steps and the lack of the grouping step after the index scan because the index scan step does the grouping and aggregation as well. +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_Ex0_QP_after55.png[] +======= image::n1ql-language-reference/GBAP_Ex0_QP_after55.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 As the data and query complexity grows, the performance benefit (both latency and throughput) will grow as well. @@ -111,11 +119,19 @@ For details, see the <> section. Here’s is how this query executes when the indexer executes the GROUP BY and aggregation. The query engine does not fetch any data from the data service (KV service), as shown below: +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_55execution.png[,700] + +For your reference, this is how the same query executed before 5.5. + +image::n1ql-language-reference/images/GBAP_pre55execution.png[,700] +======= image::n1ql-language-reference/GBAP_55execution.png[,700] For your reference, this is how the same query executed before 5.5. image::n1ql-language-reference/GBAP_pre55execution.png[,700] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == Examples for Indexer GROUP BY and Aggregation @@ -170,7 +186,11 @@ HAVING SUM(geo.lon) > 1000; Here's the executed query plan showing that index scan handled grouping and aggregation: +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_ExB_Plan.png[,70%] +======= image::n1ql-language-reference/GBAP_ExB_Plan.png[,70%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 *Positive query examples with GROUP BY on non-leading index keys* @@ -192,7 +212,11 @@ The following is a bottom-up rendering of the execution plan for easier viewing. In this case, the indexer sends partial group aggregation, which the query merges to create the final group and aggregation. In this scenario (when the grouping is on non-leading keys), any query with aggregation and DISTINCT modifier cannot be accelerated by the indexer, such as `COUNT(DISTINCT id)`. +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_ExC_Plan.png[,50%] +======= image::n1ql-language-reference/GBAP_ExC_Plan.png[,50%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 *Positive query examples on array indexes with GROUP BY on leading index keys* @@ -215,7 +239,11 @@ In this case, the predicates are on the leading keys up to and including the arr Therefore, indexer can efficiently do the grouping as seen by the optimal plan below. It’s important to note the array index key is created with a `DISTINCT` modifier (not the `ALL` modifier) to get this optimization and that the `SATISFIES` clause in the `ANY` predicate must be that of equality (that is, `v = “%a%”`). +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_ExD_Plan.png[,70%] +======= image::n1ql-language-reference/GBAP_ExD_Plan.png[,70%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 *Example D2:* On the other hand, if there’s a predicate missing on `geo.lon`--which is prior to the array key--while using the same `idx_d` index as above, then the grouping is done by the old method: @@ -229,7 +257,11 @@ GROUP BY geo.lat, geo.lon HAVING SUM(id) > 100; ---- +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_ExD2_Plan.png[] +======= image::n1ql-language-reference/GBAP_ExD2_Plan.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 *Example E:* Consider the index and query: @@ -247,7 +279,11 @@ GROUP BY un, t.geo.lat; In this case, the `UNNEST` operation can use the index because the leading `ALL` array key is the array being unwound. Note, the unwound operation repeats the parent document (`travel-sample`) and the `t.geo.lat` reference would have duplicates compared to the original `travel-sample` documents. +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_ExE_Plan.png[,50%] +======= image::n1ql-language-reference/GBAP_ExE_Plan.png[,50%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == Query Qualification and Pushdown @@ -521,7 +557,11 @@ ORDER BY Min_Latitude; Explain Plan: +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_Ex2A_EP.png[] +======= image::n1ql-language-reference/GBAP_Ex2A_EP.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- { @@ -766,7 +806,11 @@ GROUP BY ROUND(distance*stops); Query Plan: +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_Ex4A_VP.png[,50%] +======= image::n1ql-language-reference/GBAP_Ex4A_VP.png[,50%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- ... @@ -1355,7 +1399,11 @@ ORDER BY SumAbs_Latitude DESC; The Example 10 Explain Plan shows that Aggregates are executed by the indexer and is detailed in the <>: +<<<<<<< HEAD +image::n1ql-language-reference/images/GBAP_Ex10_VP.png[,70%] +======= image::n1ql-language-reference/GBAP_Ex10_VP.png[,70%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- { @@ -1988,16 +2036,40 @@ This object is present in the plan only when the indexer handles the grouping an The absence of this item means there is no Aggregate function. | `aggregates` +<<<<<<< HEAD +| `+... +aggregate+` +| Aggregate operation. +| `COUNT` + +| `+... +depends+` +======= | `+... aggregate+` | Aggregate operation. | `COUNT` | `+... depends+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | List of index key positions the GROUP BY expression depends on, starting with 0. | `0` (because it's the 1st item) +<<<<<<< HEAD +| `+... +expr+` +| Group expression or an aggregate expression. +| `pass:c["cover ((`travel-sample`.`type`))"]` + +| `+... +id+` +| Unique ID given internally and will be used in `index_projection` +| `2` + +| `+... +keypos+` +======= | `+... expr+` | Group expression or an aggregate expression. | `pass:c["cover ((`travel-sample`.`type`))"]` @@ -2007,6 +2079,7 @@ The absence of this item means there is no Aggregate function. | `2` | `+... keypos+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 a| Key Position to use the Index expr or the query expr. @@ -2027,12 +2100,31 @@ Key Position to use the Index expr or the query expr. The absence of this item means there is no GROUP BY clause. | `group` +<<<<<<< HEAD +| `+... +depends+` +======= | `+... depends+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | Index key position of a single GROUP BY expression | `0` (because it's the 1st GROUP BY key) +<<<<<<< HEAD +| `+... +expr+` +| Single GROUP BY expression. +| `pass:c["cover ((`travel-sample`.`type`))"]` + +| `+... +id+` +| Unique ID given internally and will be used in `index_projection` +| `0` + +| `+... +keypos+` +======= | `+... expr+` | Single GROUP BY expression. | `pass:c["cover ((`travel-sample`.`type`))"]` @@ -2042,6 +2134,7 @@ The absence of this item means there is no GROUP BY clause. | `0` | `+... keypos+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 a| Key Position to use the Index expr or the query expr. @@ -2151,26 +2244,51 @@ GROUP BY Query Plan The absence of this item means there is no Aggregate function. | `aggregates` +<<<<<<< HEAD +| `+... +aggregate+` +| Aggregate operation. +| `MAX` + +| `+... +depends+` +======= | `+... aggregate+` | Aggregate operation. | `MAX` | `+... depends+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | List of index key positions the GROUP BY expression depends on, starting with 0. | `2` (because it's the 3rd item) +<<<<<<< HEAD +| `+... +expr+` +======= | `+... expr+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | Group expression or an aggregate expression. | `pass:c[round(cover (((`travel-sample`. `geo`).`lat`)))]` +<<<<<<< HEAD +| `+... +id+` +| Unique ID given internally and will be used in `index_projection` +| `4` + +| `+... +keypos+` +======= | `+... id+` | Unique ID given internally and will be used in `index_projection` | `4` | `+... keypos+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 a| Key Position to use the Index expr or the query expr. @@ -2189,12 +2307,31 @@ Key Position to use the Index expr or the query expr. The absence of this item means there is no GROUP BY clause. | `group` +<<<<<<< HEAD +| `+... +depends+` +======= | `+... depends+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | Index key position of a single GROUP BY expression, starting with 0. | `0` (because it's the 1st GROUP BY key) +<<<<<<< HEAD +| `+... +expr+` +| Single GROUP BY expression. +| `pass:c[`travel-sample`.`country`]` + +| `+... +id+` +| Unique ID given internally and will be used in `index_projection.` +| `0` + +| `+... +keypos+` +======= | `+... expr+` | Single GROUP BY expression. | `pass:c[`travel-sample`.`country`]` @@ -2204,6 +2341,7 @@ The absence of this item means there is no GROUP BY clause. | `0` | `+... keypos+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 a| Key Position to use the Index expr or the query expr. @@ -2227,16 +2365,40 @@ The Query Plan sections of an Aggregate pushdown are slightly different than tho The absence of this item means there is no Aggregate function. | `aggregates` +<<<<<<< HEAD +| `+... +aggregate+` +| Aggregate operation. +| `SUM` + +| `+... +depends+` +======= | `+... aggregate+` | Aggregate operation. | `SUM` | `+... depends+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | List of index key positions the GROUP BY expression depends on, starting with 0. | `2` (because it's the 3rd item) +<<<<<<< HEAD +| `+... +expr+` +| Group expression or an aggregate expression. +| `pass:c["abs(round(cover (((`travel-sample`.`geo`).`lat`))))"]` + +| `+... +id+` +| Unique ID given internally and will be used in `index_projection` +| `4` + +| `+... +keypos+` +======= | `+... expr+` | Group expression or an aggregate expression. | `pass:c["abs(round(cover (((`travel-sample`.`geo`).`lat`))))"]` @@ -2246,6 +2408,7 @@ The absence of this item means there is no Aggregate function. | `4` | `+... keypos+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 a| Key Position to use the Index expr or the query expr. @@ -2264,12 +2427,31 @@ Key Position to use the Index expr or the query expr. The absence of this item means there is no GROUP BY clause. | `group` +<<<<<<< HEAD +| `+... +depends+` +======= | `+... depends+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | Index key position of a single GROUP BY expression, starting with 0. | `0` (because it's the 1st GROUP BY key) +<<<<<<< HEAD +| `+... +expr+` +| Single GROUP BY expression. +| `pass:c["cover ((`travel-sample`.`state`))"]` + +| `+... +id+` +| Unique ID given internally and will be used in `index_projection.` +| `0` + +| `+... +keypos+` +======= | `+... expr+` | Single GROUP BY expression. | `pass:c["cover ((`travel-sample`.`state`))"]` @@ -2279,6 +2461,7 @@ The absence of this item means there is no GROUP BY clause. | `0` | `+... keypos+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 a| Key Position to use the Index expr or the query expr. @@ -2288,12 +2471,31 @@ Key Position to use the Index expr or the query expr. (because it matches the 1st key in the index expression) +<<<<<<< HEAD +| `+... +depends+` +======= | `+... depends+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | Index key position of a single GROUP BY expression, starting with 0. | `0` (because it's the 1st GROUP BY key) +<<<<<<< HEAD +| `+... +expr+` +| Single GROUP BY expression. +| `pass:c["cover ((`travel-sample`.`state`))"]` + +| `+... +id+` +| Unique ID given internally and will be used in `index_projection.` +| `1` + +| `+... +keypos+` +======= | `+... expr+` | Single GROUP BY expression. | `pass:c["cover ((`travel-sample`.`state`))"]` @@ -2303,6 +2505,7 @@ Key Position to use the Index expr or the query expr. | `1` | `+... keypos+` +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 a| Key Position to use the Index expr or the query expr. diff --git a/modules/n1ql/pages/n1ql-language-reference/groupby.adoc b/modules/n1ql/pages/n1ql-language-reference/groupby.adoc index 6dd8977c25..6b009cee56 100644 --- a/modules/n1ql/pages/n1ql-language-reference/groupby.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/groupby.adoc @@ -12,7 +12,11 @@ This `GROUP BY` clause follows the `WHERE` clause and precedes the optional `LET == Syntax +<<<<<<< HEAD +image::n1ql-language-reference/images/group-by-clause.png[] +======= image::n1ql-language-reference/group-by-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- GROUP BY expr [, expr2 ]* @@ -28,14 +32,22 @@ expr:: [At least one is required] String or expression representing the xref:n1q `LETTING` letting-clause:: [Optional] Stores the result of a sub-expression in order to use it in subsequent clauses. +<<<<<<< HEAD +image:n1ql-language-reference/images/letting-clause.png[] +======= image:n1ql-language-reference/letting-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 alias;; String or expression representing the name of the clause to be referred to. expr;; String or expression representing the value of the `LETTING` [.var]`alias` variable. `HAVING` having-clause:: [Optional] To return items where xref:n1ql-language-reference/aggregatefun.adoc[aggregate] values meet the specified conditions. +<<<<<<< HEAD +image:n1ql-language-reference/images/having-clause.png[] +======= image:n1ql-language-reference/having-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 cond;; String or expression representing the clause of aggregate values. == Limitations diff --git a/modules/n1ql/pages/n1ql-language-reference/hints.adoc b/modules/n1ql/pages/n1ql-language-reference/hints.adoc index dd38e294ce..b574b452f8 100644 --- a/modules/n1ql/pages/n1ql-language-reference/hints.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/hints.adoc @@ -21,7 +21,11 @@ For more details about user roles, see xref:security:security-authorization.adoc USE INDEX ( index-ref [ , index-ref2 ]* ) [ USING ( VIEW | GSI ) ] ---- +<<<<<<< HEAD +image::n1ql-language-reference/images/use-index-clause.png[] +======= image::n1ql-language-reference/use-index-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == Arguments diff --git a/modules/n1ql/pages/n1ql-language-reference/index-partitioning.adoc b/modules/n1ql/pages/n1ql-language-reference/index-partitioning.adoc index dabccc28d2..406b64a642 100644 --- a/modules/n1ql/pages/n1ql-language-reference/index-partitioning.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/index-partitioning.adoc @@ -20,7 +20,11 @@ Benefits of a partitioned index include: *Syntax* +<<<<<<< HEAD +image::n1ql-language-reference/images/create-partitioned-index-syntax.png[,600] +======= image::n1ql-language-reference/create-partitioned-index-syntax.png[,600] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- CREATE INDEX idx_name ON bucket_name ( field_name [ , field_name2 ] * ) @@ -99,7 +103,13 @@ If the partition keys have changed, then the corresponding document should be de Each term in the partition keys can be any JSON data type: number, string, boolean, array, object, or NULL. If a term in the partition keys is missing in the document, the term will have a N1QL MISSING value. +<<<<<<< HEAD +Partition keys do not support N1QL array expressions (for e.g.,`ARRAY` \... +`FOR` \... +`IN`). +======= Partition keys do not support N1QL array expressions (for e.g.,`ARRAY` \... `FOR` \... `IN`). +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The following table lists some examples of partition keys. diff --git a/modules/n1ql/pages/n1ql-language-reference/insert.adoc b/modules/n1ql/pages/n1ql-language-reference/insert.adoc index 423536a0f1..25a8d3cf54 100644 --- a/modules/n1ql/pages/n1ql-language-reference/insert.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/insert.adoc @@ -126,77 +126,137 @@ SELECT "foo" || meta().id, bar FROM `travel-sample` WHERE type = "hotel" `insert::= INSERT INTO keyspace-ref ( insert-values | insert-select ) [ returning-clause ]` .Railroad Diagram: insert +<<<<<<< HEAD +image::n1ql-language-reference/images/insert.png[] +======= image::n1ql-language-reference/insert.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `keyspace-ref::= [ namespace : ] keyspace [ [ AS ] alias ]` .Railroad Diagram: keyspace-ref +<<<<<<< HEAD +image::n1ql-language-reference/images/keyspace-ref.png[] +======= image::n1ql-language-reference/keyspace-ref.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `namespace::= identifier` .Railroad Diagram: namespace +<<<<<<< HEAD +image::n1ql-language-reference/images/namespace.png[] +======= image::n1ql-language-reference/namespace.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `keyspace::= identifier` .Railroad Diagram: keyspace +<<<<<<< HEAD +image::n1ql-language-reference/images/keyspace.png[] +======= image::n1ql-language-reference/keyspace.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `insert-values::= [ "(" [ PRIMARY ] KEY , VALUE ")" ] values-clause` .Railroad Diagram: insert-values +<<<<<<< HEAD +image::n1ql-language-reference/images/insert-values.png[] +======= image::n1ql-language-reference/insert-values.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `values-clause::= VALUES "(" expr , expr ")" [, [VALUES] "(" expr , expr ")" ]*` .Railroad Diagram: values-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/values-clause.png[] +======= image::n1ql-language-reference/values-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `insert-select::= "(" [ PRIMARY ] KEY expr [ , VALUE expr ] ")" select` .Railroad Diagram: insert-select +<<<<<<< HEAD +image::n1ql-language-reference/images/insert-select.png[] +======= image::n1ql-language-reference/insert-select.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `returning-clause::= RETURNING result-expr [ , result-expr ]* ] | ( RAW | ELEMENT | VALUE ) expr` .Railroad Diagram: returning-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/returning-clause.png[] +======= image::n1ql-language-reference/returning-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `result-expr::= ( [ path.]"*" | expr [ [ AS ] alias ] )` .Railroad Diagram: result-expr +<<<<<<< HEAD +image::n1ql-language-reference/images/result-expr.png[] +======= image::n1ql-language-reference/result-expr.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `path::= identifier ( ("[" expr "]" )*[.path] ) | ( [ ("[" expr "]" )*].path )` .Railroad Diagram: path +<<<<<<< HEAD +image::n1ql-language-reference/images/path.png[] +======= image::n1ql-language-reference/path.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `alias::= identifier` .Railroad Diagram: alias +<<<<<<< HEAD +image::n1ql-language-reference/images/alias.png[] +======= image::n1ql-language-reference/alias.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `expr:= ( literal | identifier | nested-expr | case-expr | logical-term | comparison-term | arithmetic-term | concatenation-term | function-call | subquery-expr | collection-expr | construction-expr | "(" expr")" )` .Railroad Diagram: expr +<<<<<<< HEAD +image::n1ql-language-reference/images/expr.png[] +======= image::n1ql-language-reference/expr.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `identifier::= unescaped-identifier | escaped-identifier` .Railroad Diagram: identifier +<<<<<<< HEAD +image::n1ql-language-reference/images/identifier.png[] +======= image::n1ql-language-reference/identifier.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `unescaped-identifier::= [a-zA-Z_] ( [0-9a-zA-Z_$] )*` .Railroad Diagram: unescaped-identifier +<<<<<<< HEAD +image::n1ql-language-reference/images/unescaped-identifier.png[] +======= image::n1ql-language-reference/unescaped-identifier.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 `pass:c[escaped-identifier::= `JSON-string`]` .Railroad Diagram: escaped-identifier +<<<<<<< HEAD +image::n1ql-language-reference/images/escaped-identifier.png[] +======= image::n1ql-language-reference/escaped-identifier.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#insert-semantics] == Semantics/Description @@ -1318,7 +1378,12 @@ In case of `INSERT` without a `RETURNING` clause, the value is `0`. You can use the query monitoring API to gather diagnostic information. For example, if you are performing a bulk insert using a `SELECT` statement, you can use the query monitoring API to get the number of documents being inserted. Check [.api]`system:active_requests` catalog for more information on monitoring active queries. +<<<<<<< HEAD +The REST API for bucket statistics is available at . +CLI tools like `cbstats` provide detailed stats about the cluster. +======= The REST API for bucket statistics is available at . CLI tools like `cbstats` provide detailed stats about the cluster. +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The same information can also be obtained using cbq shell or REST API. For more information, see xref:tools:query-monitoring.adoc[Query Monitoring]. diff --git a/modules/n1ql/pages/n1ql-language-reference/let.adoc b/modules/n1ql/pages/n1ql-language-reference/let.adoc index 424aad721f..8426ab0e95 100644 --- a/modules/n1ql/pages/n1ql-language-reference/let.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/let.adoc @@ -38,7 +38,11 @@ For more details about user roles, see xref:security:security-authorization.adoc == Syntax +<<<<<<< HEAD +image::n1ql-language-reference/images/let-clause.png[] +======= image::n1ql-language-reference/let-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- LET (alias = expr) [, (alias2 = expr2)]* diff --git a/modules/n1ql/pages/n1ql-language-reference/limit.adoc b/modules/n1ql/pages/n1ql-language-reference/limit.adoc index 247eee6b30..b22f411f27 100644 --- a/modules/n1ql/pages/n1ql-language-reference/limit.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/limit.adoc @@ -22,7 +22,11 @@ It indicates that the actual number of mutations will be less than or equal to t LIMIT expr ---- +<<<<<<< HEAD +image::n1ql-language-reference/images/limit-clause.png[] +======= image::n1ql-language-reference/limit-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == Arguments diff --git a/modules/n1ql/pages/n1ql-language-reference/merge.adoc b/modules/n1ql/pages/n1ql-language-reference/merge.adoc index 1066b1c5a0..bfa7594b3c 100644 --- a/modules/n1ql/pages/n1ql-language-reference/merge.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/merge.adoc @@ -12,7 +12,11 @@ MERGE INTO keyspace-ref USING merge-source ON key-clause merge-actions [limit-cl ---- .Railroad Diagram: merge +<<<<<<< HEAD +image::n1ql-language-reference/images/merge.png[] +======= image::n1ql-language-reference/merge.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 _merge-source:_ @@ -22,7 +26,11 @@ _merge-source:_ .Railroad Diagram: merge-source [#merge-source] +<<<<<<< HEAD +image::n1ql-language-reference/images/merge-source.png[] +======= image::n1ql-language-reference/merge-source.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 _keys-clause:_ @@ -32,7 +40,11 @@ _keys-clause:_ .Railroad Diagram: key-clause [#key-clause] +<<<<<<< HEAD +image::n1ql-language-reference/images/key-clause.png[] +======= image::n1ql-language-reference/key-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 _merge-actions:_ @@ -42,7 +54,11 @@ _merge-actions:_ .Railroad Diagram: merge-actions [#merge-action] +<<<<<<< HEAD +image::n1ql-language-reference/images/merge-actions.png[] +======= image::n1ql-language-reference/merge-actions.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 _merge-update:_ @@ -52,7 +68,11 @@ WHEN MATCHED THEN UPDATE [set-clause] [unset-clause] [where-clause] .Railroad Diagram: merge-update [#merge-update] +<<<<<<< HEAD +image::n1ql-language-reference/images/merge-update.png[] +======= image::n1ql-language-reference/merge-update.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 _merge-delete:_ @@ -62,7 +82,11 @@ WHEN MATCHED THEN DELETE [where-clause] .Railroad Diagram: merge-delete [#merge-delete] +<<<<<<< HEAD +image::n1ql-language-reference/images/merge-delete.png[] +======= image::n1ql-language-reference/merge-delete.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 _merge-insert:_ @@ -72,7 +96,11 @@ WHEN NOT MATCHED THEN INSERT expression [where-clause] .Railroad Diagram: merge-insert [#merge-insert] +<<<<<<< HEAD +image::n1ql-language-reference/images/merge-insert.png[] +======= image::n1ql-language-reference/merge-insert.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 *RBAC Privileges* diff --git a/modules/n1ql/pages/n1ql-language-reference/offset.adoc b/modules/n1ql/pages/n1ql-language-reference/offset.adoc index b26ab365ae..5819b25329 100644 --- a/modules/n1ql/pages/n1ql-language-reference/offset.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/offset.adoc @@ -19,7 +19,11 @@ If a `LIMIT` clause is also present, the `OFFSET` is applied prior to the `LIMIT OFFSET expr ---- +<<<<<<< HEAD +image::n1ql-language-reference/images/offset-clause.png[] +======= image::n1ql-language-reference/offset-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == Arguments diff --git a/modules/n1ql/pages/n1ql-language-reference/operators.adoc b/modules/n1ql/pages/n1ql-language-reference/operators.adoc index 9cbee7cb79..47775620e4 100644 --- a/modules/n1ql/pages/n1ql-language-reference/operators.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/operators.adoc @@ -33,7 +33,12 @@ An operator at a higher level is evaluated before an operator at a lower level. | CASE | 2 +<<<<<<< HEAD +| . +(period) +======= | . (period) +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 | 3 | [ ] (left and right bracket) diff --git a/modules/n1ql/pages/n1ql-language-reference/orderby.adoc b/modules/n1ql/pages/n1ql-language-reference/orderby.adoc index 38598daeeb..cb8724866f 100644 --- a/modules/n1ql/pages/n1ql-language-reference/orderby.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/orderby.adoc @@ -39,7 +39,11 @@ SELECT select_clause ORDER BYexpr [ASC|DESC] [, expr2 [ASC|DESC] ]* ---- +<<<<<<< HEAD +image::n1ql-language-reference/images/order-by-clause.png[,50%] +======= image::n1ql-language-reference/order-by-clause.png[,50%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == Arguments diff --git a/modules/n1ql/pages/n1ql-language-reference/select-syntax.adoc b/modules/n1ql/pages/n1ql-language-reference/select-syntax.adoc index bffe057ff5..d5da826f7e 100644 --- a/modules/n1ql/pages/n1ql-language-reference/select-syntax.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/select-syntax.adoc @@ -5,31 +5,51 @@ `select::= select-term [ set-op [ ALL ] ] [ order-by-clause | limit-clause | offset-clause ]` .Railroad Diagram: select +<<<<<<< HEAD +image::n1ql-language-reference/images/select.png[] +======= image::n1ql-language-reference/select.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#select-term] `select-term::= subselect | "(" select ")"` .Railroad Diagram: select-term +<<<<<<< HEAD +image::n1ql-language-reference/images/select-term.png[] +======= image::n1ql-language-reference/select-term.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#subselect] `subselect::= select-from | from-select` .Railroad Diagram: subselect +<<<<<<< HEAD +image::n1ql-language-reference/images/subselect.png[] +======= image::n1ql-language-reference/subselect.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#select-from] `select-from::= select-clause [ from-clause | let-clause | where-clause | group-by-clause ]` .Railroad Diagram: select-from +<<<<<<< HEAD +image::n1ql-language-reference/images/select-from.png[] +======= image::n1ql-language-reference/select-from.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#from-select] `from-select::= from-clause [ let-clause ] [ where-clause ] [ group-by-clause ] select-clause` .Railroad Diagram: from-select +<<<<<<< HEAD +image::n1ql-language-reference/images/from-select.png[] +======= image::n1ql-language-reference/from-select.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == SELECT Clause @@ -37,7 +57,11 @@ image::n1ql-language-reference/from-select.png[] `select-clause::= SELECT [ ALL | DISTINCT ] ( result-expr [ , result-expr ]* | ( RAW | ELEMENT | VALUE ) expr [ [AS] alias ] )` .Railroad Diagram: select-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/select-clause.png[] +======= image::n1ql-language-reference/select-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == FROM Clause @@ -45,19 +69,31 @@ image::n1ql-language-reference/select-clause.png[] `from-clause::= FROM from-term` .Railroad Diagram: from-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/from-clause.png[] +======= image::n1ql-language-reference/from-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#from-term] `from-term::= from-keyspace [ [ AS ] alias ] [ use-clause ] | "(" select ")" [ AS ] alias | expr [ [ AS ] alias] | from-term ( join-clause | nest-clause | unnest-clause )` .Railroad Diagram: from-term +<<<<<<< HEAD +image::n1ql-language-reference/images/from-term.png[] +======= image::n1ql-language-reference/from-term.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#from-keyspace] `from-keyspace::= [ namespace : ] keyspace` .Railroad Diagram: from-keyspace +<<<<<<< HEAD +image::n1ql-language-reference/images/from-keyspace.png[] +======= image::n1ql-language-reference/from-keyspace.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == JOIN Clause @@ -65,31 +101,51 @@ image::n1ql-language-reference/from-keyspace.png[] `join-clause::= [ join-type ] JOIN from-keyspace [ [ AS ] alias ] join-predicate` .Railroad Diagram: join-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/join-clause.png[] +======= image::n1ql-language-reference/join-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#join-type] `join-type::= INNER | LEFT [ OUTER ]` .Railroad Diagram: join-type +<<<<<<< HEAD +image::n1ql-language-reference/images/join-type.png[] +======= image::n1ql-language-reference/join-type.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#join-predicate] `join-predicate::= lookup-join-predicate | index-join-predicate` .Railroad Diagram: join-predicate +<<<<<<< HEAD +image::n1ql-language-reference/images/join-predicate.png[] +======= image::n1ql-language-reference/join-predicate.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#lookup-join-predicate] `lookup-join-predicate::= ON [ PRIMARY ] KEYS expr` .Railroad Diagram: lookup-join-predicate +<<<<<<< HEAD +image::n1ql-language-reference/images/lookup-join-predicate.png[] +======= image::n1ql-language-reference/lookup-join-predicate.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#index-join-predicate] `index-join-predicate::= ON [ PRIMARY ] KEY expr FOR alias` .Railroad Diagram: index-join-predicate +<<<<<<< HEAD +image::n1ql-language-reference/images/index-join-predicate.png[] +======= image::n1ql-language-reference/index-join-predicate.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == NEST Clause @@ -97,7 +153,11 @@ image::n1ql-language-reference/index-join-predicate.png[] `nest-clause::= [ join-type ] NEST from-keyspace [ [ AS ] alias ] join-predicate` .Railroad Diagram: nest-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/nest-clause.png[] +======= image::n1ql-language-reference/nest-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == UNNEST Clause @@ -105,7 +165,11 @@ image::n1ql-language-reference/nest-clause.png[] `unnest-clause::= [ join-type ] ( UNNEST | FLATTEN ) expr [ [ AS ] alias ]` .Railroad Diagram: unnest-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/unnest-clause.png[] +======= image::n1ql-language-reference/unnest-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == USE Clause @@ -113,37 +177,61 @@ image::n1ql-language-reference/unnest-clause.png[] `use-clause::= use-keys-clause | use-index-clause` .Railroad Diagram: use-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/use-clause.png[] +======= image::n1ql-language-reference/use-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#use-keys-clause] `use-keys-clause::= USE [ PRIMARY ] KEYS expr` .Railroad Diagram: use-keys-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/use-keys-clause.png[] +======= image::n1ql-language-reference/use-keys-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#use-index-clause] `use-index-clause::= USE INDEX "(" index-ref [ "," index-ref ]* ")"` .Railroad Diagram: use-index-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/use-index-clause.png[] +======= image::n1ql-language-reference/use-index-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#index-ref] `index-ref::= index-name [ index-using ]` .Railroad Diagram: index-ref +<<<<<<< HEAD +image::n1ql-language-reference/images/index-ref.png[] +======= image::n1ql-language-reference/index-ref.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#index-name] `index-name::= identifier` .Railroad Diagram: index-name +<<<<<<< HEAD +image::n1ql-language-reference/images/index-name.png[] +======= image::n1ql-language-reference/index-name.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#index-using] `index-using::= USING ( VIEW | GSI )` .Railroad Diagram: index-using +<<<<<<< HEAD +image::n1ql-language-reference/images/index-using.png[] +======= image::n1ql-language-reference/index-using.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == LET Clause @@ -151,7 +239,11 @@ image::n1ql-language-reference/index-using.png[] `let-clause::= LET alias "=" expr [ "," alias = expr ]*` .Railroad Diagram: let-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/let-clause.png[] +======= image::n1ql-language-reference/let-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == WHERE Clause @@ -159,13 +251,21 @@ image::n1ql-language-reference/let-clause.png[] `where-clause::= WHERE cond` .Railroad Diagram: where-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/where-clause.png[] +======= image::n1ql-language-reference/where-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#cond] `cond::= expr` .Railroad Diagram: cond +<<<<<<< HEAD +image::n1ql-language-reference/images/cond.png[] +======= image::n1ql-language-reference/cond.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == GROUP BY Clause @@ -173,25 +273,41 @@ image::n1ql-language-reference/cond.png[] `group-by-clause::= GROUP BY expr [ "," expr ]* [ letting-clause ] [ having-clause ] | letting-clause` .Railroad Diagram: group-by-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/group-by-clause.png[] +======= image::n1ql-language-reference/group-by-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#letting-clause] `letting-clause::= LETTING alias "=" expr [ "," alias = expr ]*` .Railroad Diagram: letting-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/letting-clause.png[] +======= image::n1ql-language-reference/letting-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#having-clause] `having-clause::= HAVING cond` .Railroad Diagram: having-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/having-clause.png[] +======= image::n1ql-language-reference/having-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#set-op] `set-op::= UNION | INTERSECT | EXCEPT` .Railroad Diagram: set-op +<<<<<<< HEAD +image::n1ql-language-reference/images/set-op.png[] +======= image::n1ql-language-reference/set-op.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == ORDER BY Clause @@ -199,13 +315,21 @@ image::n1ql-language-reference/set-op.png[] `order-by-clause::= ORDER BY ordering-term [ "," ordering-term ]*` .Railroad Diagram: order-by-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/order-by-clause.png[] +======= image::n1ql-language-reference/order-by-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#ordering-term] `ordering-term::= expr [ ASC | DESC ]` .Railroad Diagram: ordering-term +<<<<<<< HEAD +image::n1ql-language-reference/images/ordering-term.png[] +======= image::n1ql-language-reference/ordering-term.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == LIMIT Clause @@ -213,10 +337,18 @@ image::n1ql-language-reference/ordering-term.png[] `limit-clause::= LIMIT expr` .Railroad Diagram: limit-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/limit-clause.png[] +======= image::n1ql-language-reference/limit-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#offset-clause] `offset-clause::= OFFSET expr` .Railroad Diagram: offset-clause +<<<<<<< HEAD +image::n1ql-language-reference/images/offset-clause.png[] +======= image::n1ql-language-reference/offset-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 diff --git a/modules/n1ql/pages/n1ql-language-reference/selectclause.adoc b/modules/n1ql/pages/n1ql-language-reference/selectclause.adoc index 24576637a1..774668c3d8 100644 --- a/modules/n1ql/pages/n1ql-language-reference/selectclause.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/selectclause.adoc @@ -42,6 +42,21 @@ SELECT [ALL|DISTINCT] ( result-expr [ , result-expr2 ]* *Railroad Diagrams for SELECT clause:* +<<<<<<< HEAD +image::n1ql-language-reference/images/select-clause.png[] + +result-expr: + +image::n1ql-language-reference/images/select-clause_RR_result-expr.png[,50%] + +path: + +image::n1ql-language-reference/images/select-clause_RR_path.png[,50%] + +alias: + +image::n1ql-language-reference/images/select-clause_RR_alias.png[,50%] +======= image::n1ql-language-reference/select-clause.png[] result-expr: @@ -55,6 +70,7 @@ image::n1ql-language-reference/select-clause_RR_path.png[,50%] alias: image::n1ql-language-reference/select-clause_RR_alias.png[,50%] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 [#sec_Arguments] == Arguments @@ -161,7 +177,11 @@ SELECT RAW reduces the amount of data returned by eliminating the field attribut | `SELECT RAW {"a":1, "b":2};` |=== + +<<<<<<< HEAD +image::n1ql-language-reference/images/select-clause_ex1.png[] +======= image::n1ql-language-reference/select-clause_ex1.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 + There are times in which this extra layer might not be desirable since it requires extra output parsing. So the RAW qualifier specifies that the expression that follows not to be qualified, as shown in the next example. @@ -193,7 +213,11 @@ So the RAW qualifier specifies that the expression that follows not to be qualif `ORDER BY city LIMIT 5;` |=== + +<<<<<<< HEAD +image::n1ql-language-reference/images/select-clause_ex2.png[] +======= image::n1ql-language-reference/select-clause_ex2.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 keyspace_name1, keyspace_name2, \..., keyspace_nameX:: [Optional; if the keyspace is unspecified in the SELECT clause, it will be taken from the xref:n1ql-language-reference/from.adoc[FROM clause]] + diff --git a/modules/n1ql/pages/n1ql-language-reference/selectintro.adoc b/modules/n1ql/pages/n1ql-language-reference/selectintro.adoc index 2b500707b4..9482fd6b98 100644 --- a/modules/n1ql/pages/n1ql-language-reference/selectintro.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/selectintro.adoc @@ -121,7 +121,11 @@ The SELECT statement queries a keyspace and returns a JSON array that contains z The following diagram shows the query execution workflow at a high level and illustrates the interaction with the query, index, and data services. .Query Execution Workflow +<<<<<<< HEAD +image::n1ql-language-reference/images/query_execution.png[,570] +======= image::n1ql-language-reference/query_execution.png[,570] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The SELECT statement is executed as a sequence of steps. Each step in the process produces result objects that are then used as inputs in the next step until all steps in the process are complete. @@ -131,7 +135,11 @@ For example, sort phase can be skipped when there is no ORDER BY clause in the q The following diagram shows the possible elements and operations during query execution. .Query Execution Phases +<<<<<<< HEAD +image::n1ql-language-reference/images/query_service.svg[,670] +======= image::n1ql-language-reference/query_service.svg[,670] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Some phases are done serially while others are done in parallel, as specified by their parent operator. @@ -257,7 +265,11 @@ Before we delve into examples, let's take a look at the data model of the travel For more details about the data model, see xref:java-sdk::common/sample-application.adoc#story-h2-3[Sample Application]. + .Data model of travel-sample keyspace +<<<<<<< HEAD +image::travel-app/images/travel-app-data-model.png[,570] +======= image::travel-app/travel-app-data-model.png[,570] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 + The first example (*Example 1*) uses a JOIN clause to find the distinct airline details which have routes that start from SFO. This example JOINS the document of type "route" with documents of type "airline" using the KEY "airlineid". diff --git a/modules/n1ql/pages/n1ql-language-reference/where.adoc b/modules/n1ql/pages/n1ql-language-reference/where.adoc index 7fe23b5b69..039cc9e662 100644 --- a/modules/n1ql/pages/n1ql-language-reference/where.adoc +++ b/modules/n1ql/pages/n1ql-language-reference/where.adoc @@ -23,7 +23,11 @@ LIMIT 4; WHERE cond [ bool_type cond2 ]* ---- +<<<<<<< HEAD +image::n1ql-language-reference/images/where-clause.png[] +======= image::n1ql-language-reference/where-clause.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 == Arguments diff --git a/modules/performance/assets/images/n1ql/n1ql-language-reference/images/IndexKeyOrder.png b/modules/performance/assets/images/n1ql/n1ql-language-reference/images/IndexKeyOrder.png new file mode 100644 index 0000000000..19d2343757 Binary files /dev/null and b/modules/performance/assets/images/n1ql/n1ql-language-reference/images/IndexKeyOrder.png differ diff --git a/modules/performance/assets/images/n1ql/n1ql-language-reference/images/query_execution.png b/modules/performance/assets/images/n1ql/n1ql-language-reference/images/query_execution.png new file mode 100644 index 0000000000..74cccda0bf Binary files /dev/null and b/modules/performance/assets/images/n1ql/n1ql-language-reference/images/query_execution.png differ diff --git a/modules/performance/assets/images/n1ql/n1ql-language-reference/images/query_service.png b/modules/performance/assets/images/n1ql/n1ql-language-reference/images/query_service.png new file mode 100644 index 0000000000..71ed41c771 Binary files /dev/null and b/modules/performance/assets/images/n1ql/n1ql-language-reference/images/query_service.png differ diff --git a/modules/performance/pages/index-scans.adoc b/modules/performance/pages/index-scans.adoc index fcb33556a0..7396ccd981 100644 --- a/modules/performance/pages/index-scans.adoc +++ b/modules/performance/pages/index-scans.adoc @@ -17,7 +17,11 @@ Because Couchbase is a modular clustered database, you scale out data, index, an == Query Execution: Inside View +<<<<<<< HEAD +image::n1ql/n1ql-language-reference/images/query_execution.png[] +======= image::n1ql/n1ql-language-reference/query_execution.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 This figure shows all the possible phases a SELECT query goes through to return the results. Not all queries need to go through every phase, some go through many of these phases multiple times. @@ -26,7 +30,11 @@ For example, the Sort phase can be skipped when there is no ORDER BY clause in t *Inside a Query Node* [#inside_a_query_node] +<<<<<<< HEAD +image::n1ql/n1ql-language-reference/images/query_service.png[] +======= image::n1ql/n1ql-language-reference/query_service.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 http://blog.couchbase.com/sql-for-documents-n1ql-brief-introduction-to-query-planning[This brief introduction to query planning^] has details of query planner. When the Index path is chosen, query engine requests the scan by providing the range of values to return. diff --git a/modules/performance/pages/index_pushdowns.adoc b/modules/performance/pages/index_pushdowns.adoc index 414821907f..90eceace74 100644 --- a/modules/performance/pages/index_pushdowns.adoc +++ b/modules/performance/pages/index_pushdowns.adoc @@ -169,7 +169,11 @@ For example, consider the following index: CREATE INDEX `idx_age_name` ON users(age, name); ---- +<<<<<<< HEAD +image::n1ql/n1ql-language-reference/images/IndexKeyOrder.png[,570] +======= image::n1ql/n1ql-language-reference/IndexKeyOrder.png[,570] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Various age and name values are stored in the index in a tree like structure (represented by the triangle in the above picture) with all the index key values linearly sorted as ordered pairs. For instance, diff --git a/modules/rest-api/pages/rest-cluster-email-notifications.adoc b/modules/rest-api/pages/rest-cluster-email-notifications.adoc index eaad57be95..01e2ffd95d 100644 --- a/modules/rest-api/pages/rest-cluster-email-notifications.adoc +++ b/modules/rest-api/pages/rest-cluster-email-notifications.adoc @@ -5,6 +5,8 @@ Alert settings specify whether email alerts are sent and the events that trigger emails. This is a global setting for all clusters. Authentication is required to read this value. +<<<<<<< HEAD +======= [#rest-cluster-alerts-get] == Getting Alert Settings @@ -243,3 +245,4 @@ Possible response code include: 400 Bad Request: Unknown macro: {"error"} 401 Unauthorized This endpoint isn't available yet. ---- +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 diff --git a/modules/rest-api/pages/rest-cluster-rebalance.adoc b/modules/rest-api/pages/rest-cluster-rebalance.adoc index 54fa5f2d32..e93e7ec772 100644 --- a/modules/rest-api/pages/rest-cluster-rebalance.adoc +++ b/modules/rest-api/pages/rest-cluster-rebalance.adoc @@ -3,6 +3,8 @@ [abstract] Nodes are rebalanced with the `POST /controller/rebalance` HTTP method and URI. +<<<<<<< HEAD +======= [#rest-cluster-rebalance-description] == Description @@ -250,3 +252,4 @@ Curl request example: curl -X POST -u Administrator:password 'http://10.5.2.54:8091/internalSettings' \ -d 'rebalanceMovesBeforeCompaction=256' ---- +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 diff --git a/modules/rest-api/pages/rest-logs-get.adoc b/modules/rest-api/pages/rest-logs-get.adoc index 62a3a2e1d9..7a6aca773e 100644 --- a/modules/rest-api/pages/rest-logs-get.adoc +++ b/modules/rest-api/pages/rest-logs-get.adoc @@ -3,6 +3,8 @@ [abstract] Log information is retrieved via the `/diag` and `/sasl_logs` REST endpoints. +<<<<<<< HEAD +======= [#rest-logs-get-diag] == Getting log and server info @@ -140,3 +142,4 @@ logs_node (ssl_proxy): {shutdown,infinity}, {child_type,supervisor}] ---- +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 diff --git a/modules/rest-api/pages/rest-xdcr-statistics.adoc b/modules/rest-api/pages/rest-xdcr-statistics.adoc index 041ef144d2..a6c2a06ad7 100644 --- a/modules/rest-api/pages/rest-xdcr-statistics.adoc +++ b/modules/rest-api/pages/rest-xdcr-statistics.adoc @@ -3,6 +3,8 @@ [abstract] Requests for XDCR statistics about a destination cluster are performed on the source cluster. +<<<<<<< HEAD +======= [#rest-xdcr-stats-desc] == Description @@ -350,3 +352,4 @@ The value for this attribute is the last sampling of write operations on an XDCR ................ } ---- +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 diff --git a/modules/security/assets/images/admin/picts/security-ldap.png b/modules/security/assets/images/admin/picts/security-ldap.png new file mode 100644 index 0000000000..c6a235f859 Binary files /dev/null and b/modules/security/assets/images/admin/picts/security-ldap.png differ diff --git a/modules/security/assets/images/introduction/images/no.png b/modules/security/assets/images/introduction/images/no.png new file mode 100644 index 0000000000..c8b49d660b Binary files /dev/null and b/modules/security/assets/images/introduction/images/no.png differ diff --git a/modules/security/assets/images/introduction/images/yes.png b/modules/security/assets/images/introduction/images/yes.png new file mode 100644 index 0000000000..f0773b35a5 Binary files /dev/null and b/modules/security/assets/images/introduction/images/yes.png differ diff --git a/modules/security/pages/security-ldap-new.adoc b/modules/security/pages/security-ldap-new.adoc index 9f3ffa7d4f..bbc53a5e6c 100644 --- a/modules/security/pages/security-ldap-new.adoc +++ b/modules/security/pages/security-ldap-new.adoc @@ -30,7 +30,11 @@ The activities of each administrator can be identified, tracked, and comprehensi The LDAP authentication-architecture used by Couchbase Server is as follows: +<<<<<<< HEAD +image::admin/picts/security-ldap.png[,750,align=left] +======= image::admin/security-ldap.png[,750,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 As the illustration shows, the administrator enters a username and password at the login prompt provided by Couchbase Web Console. This is checked against a local _admin password file_. diff --git a/modules/security/pages/security-roles.adoc b/modules/security/pages/security-roles.adoc index 125b67cb5e..b5b25dccba 100644 --- a/modules/security/pages/security-roles.adoc +++ b/modules/security/pages/security-roles.adoc @@ -59,6 +59,30 @@ The role allows access to Couchbase Web Console, but does not permit the writing ^h| *Manage* ^| Cluster (except Passwords) +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| UI (except Passwords) +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| Security (except Passwords) +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket Data +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] @@ -81,6 +105,7 @@ The role allows access to Couchbase Web Console, but does not permit the writing ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Security Admin @@ -102,6 +127,30 @@ The role supports access to Couchbase Web Console, but does not support the read ^h| *Manage* ^| Cluster +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| UI (except Security) +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Security (including UI) +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| Bucket Data +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -124,6 +173,7 @@ The role supports access to Couchbase Web Console, but does not support the read ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Read-Only Admin @@ -146,6 +196,30 @@ This role is also available in Couchbase Server _Community Edition_. ^h| *Manage* ^| Cluster +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| UI (except Passwords) +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Security (except Passwords) +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket Data +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -168,6 +242,7 @@ This role is also available in Couchbase Server _Community Edition_. ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == XDCR Admin @@ -188,6 +263,36 @@ The role allows access to Couchbase Web Console. ^h| *Manage* ^| XDCR for Cluster and Bucket +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| Bucket Data +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket Settings +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| UI (XDCR) +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| UI (Other) +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] @@ -216,6 +321,7 @@ The role allows access to Couchbase Web Console. ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Query Curl Access @@ -242,6 +348,24 @@ In versions of Couchbase Server prior to 5.5, this role was referred to as *Quer ^h| *Manage* ^| Bucket : N1QL, curl +<<<<<<< HEAD +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] + +^| UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/yes.png[] @@ -258,6 +382,7 @@ In versions of Couchbase Server prior to 5.5, this role was referred to as *Quer ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Query System Catalog @@ -280,6 +405,34 @@ The role allows access to Couchbase Web Console, but does not permit the reading ^h| *List* ^| Bucket : N1QL, INDEX +<<<<<<< HEAD +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] + +^| Bucket : N1QL, Meta +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -306,6 +459,7 @@ The role allows access to Couchbase Web Console, but does not permit the reading ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Analytics Reader @@ -327,6 +481,24 @@ The role allows access to Couchbase Web Console, and permits the reading of data ^h| *Manage* ^| Bucket : Analytics +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket : UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -343,6 +515,7 @@ The role allows access to Couchbase Web Console, and permits the reading of data ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Bucket Admin @@ -363,6 +536,36 @@ The role allows access to Couchbase Web Console, but does not permit the reading ^h| *Manage* ^| Cluster +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket (including XDCR) +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| Bucket Data +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| Other UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -391,6 +594,7 @@ The role allows access to Couchbase Web Console, but does not permit the reading ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Views Admin @@ -411,6 +615,36 @@ The role allows access to Couchbase Web Console. ^h| *Manage* ^| Bucket Data (Views) +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| Bucket Data (Other) +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket Settings +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| UI (Views) +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| UI (Other) +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] @@ -439,6 +673,7 @@ The role allows access to Couchbase Web Console. ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Search Admin @@ -461,6 +696,48 @@ In versions of Couchbase Server prior to 5.5, this role was referred to as *FTS ^h| *Manage* ^| Bucket Data (Search) +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| Bucket Data (Other) +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket Settings +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| UI (Search) +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| UI (Other) +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Services and Curl +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] @@ -501,6 +778,7 @@ In versions of Couchbase Server prior to 5.5, this role was referred to as *FTS ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Application Access @@ -533,6 +811,48 @@ Note that in versions of Couchbase Server prior to 5.5, this role was referred t ^h| *Flush* ^| Bucket Data +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] + +^| Bucket Views +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] + +^| N1QL: Index +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] + +^| N1QL: Other +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] @@ -573,6 +893,7 @@ Note that in versions of Couchbase Server prior to 5.5, this role was referred t ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Data Reader @@ -594,6 +915,30 @@ The role does not allow access to Couchbase Web Console: it is intended to suppo ^h| *Manage* ^| Bucket Docs +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket : Meta +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket : Xattr +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -616,6 +961,7 @@ The role does not allow access to Couchbase Web Console: it is intended to suppo ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Data Writer @@ -636,6 +982,24 @@ The role does not allow access to Couchbase Web Console: it is intended to suppo ^h| *Manage* ^| Bucket : Docs +<<<<<<< HEAD +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket : Xattr +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/no.png[] ^| image:introduction/yes.png[] ^| image:introduction/no.png[] @@ -652,6 +1016,7 @@ The role does not allow access to Couchbase Web Console: it is intended to suppo ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Data DCP Reader @@ -673,6 +1038,48 @@ The role does allow the reading of data. ^h| *Manage* ^| Bucket: : Docs +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket: : Meta +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket: : DCP +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket: : Sxattr +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket: : Xattr +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Admin: Memcached: Idle +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -713,6 +1120,7 @@ The role does allow the reading of data. ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Data Backup @@ -734,6 +1142,42 @@ The role does not allow access to Couchbase Web Console: it is intended to suppo ^h| *Manage* ^| Bucket: : Data +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket: : Views +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket: : FTS +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] + +^| Bucket: : Stats +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket: : Settings +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket: : Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] ^| image:introduction/no.png[] @@ -768,6 +1212,7 @@ The role does not allow access to Couchbase Web Console: it is intended to suppo ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Data Monitor @@ -791,6 +1236,18 @@ In versions of Couchbase Server prior to 5.5, this role was referred to as *Data ^h| *Manage* ^| Bucket : Stats +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -801,6 +1258,7 @@ In versions of Couchbase Server prior to 5.5, this role was referred to as *Data ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == XDCR Inbound @@ -823,6 +1281,30 @@ In versions of Couchbase Server prior to 5.5, this role was referred to as *Repl ^h| *Manage* ^| Bucket : Settings +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket : Meta +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket : Stats +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -845,6 +1327,7 @@ In versions of Couchbase Server prior to 5.5, this role was referred to as *Repl ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Analytics Manager @@ -866,6 +1349,30 @@ This role allows access to Couchbase Web Console. ^h| *Manage* ^| Bucket : Analytics +<<<<<<< HEAD +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] + +^| Bucket : UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket : Stats +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -888,6 +1395,7 @@ This role allows access to Couchbase Web Console. ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Views Reader @@ -908,6 +1416,24 @@ This role does not allow access to Couchbase Web Console, and is intended to sup ^h| *Manage* ^| Bucket : Docs +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Bucket : Views +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -924,6 +1450,7 @@ This role does not allow access to Couchbase Web Console, and is intended to sup ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Search Reader @@ -946,6 +1473,30 @@ In versions of Couchbase Server prior to 5.5, this role was referred to as *FTS ^h| *Manage* ^| Bucket : FTS +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Settings: FTS +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] @@ -968,6 +1519,7 @@ In versions of Couchbase Server prior to 5.5, this role was referred to as *FTS ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Query Select @@ -988,6 +1540,24 @@ This role allows access to Couchbase Web Console, but does not support the readi ^h| *Manage* ^| Bucket : N1QL, SELECT +<<<<<<< HEAD +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] + +^| UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/yes.png[] @@ -1004,6 +1574,7 @@ This role allows access to Couchbase Web Console, but does not support the readi ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Query Update @@ -1024,6 +1595,24 @@ The role supports access to Couchbase Web Console, but does not allow the readin ^h| *Manage* ^| Bucket : N1QL, UPDATE +<<<<<<< HEAD +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] + +^| UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/yes.png[] @@ -1040,6 +1629,7 @@ The role supports access to Couchbase Web Console, but does not allow the readin ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Query Insert @@ -1060,6 +1650,24 @@ The role supports access to Couchbase Web Console, but does not allow the readin ^h| *Manage* ^| Bucket : N1QL, INSERT +<<<<<<< HEAD +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] + +^| UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/yes.png[] @@ -1076,6 +1684,7 @@ The role supports access to Couchbase Web Console, but does not allow the readin ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Query Delete @@ -1096,6 +1705,24 @@ The role supports access to Couchbase Web Console, but does not allow the readin ^h| *Manage* ^| Bucket : N1QL, DELETE +<<<<<<< HEAD +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] + +^| UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/yes.png[] @@ -1112,6 +1739,7 @@ The role supports access to Couchbase Web Console, but does not allow the readin ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == Query Manage Index @@ -1132,6 +1760,24 @@ The role allows access to Couchbase Web Console, but does not permit the reading ^h| *Manage* ^| Bucket : N1QL, INDEX +<<<<<<< HEAD +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] +^| image:introduction/images/yes.png[] + +^| UI +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] + +^| Pools +^| image:introduction/images/yes.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +^| image:introduction/images/no.png[] +======= ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] ^| image:introduction/yes.png[] @@ -1148,6 +1794,7 @@ The role allows access to Couchbase Web Console, but does not permit the reading ^| image:introduction/no.png[] ^| image:introduction/no.png[] ^| image:introduction/no.png[] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 |=== == System Keyspaces (Tables) diff --git a/modules/security/pages/security-x509certsintro.adoc b/modules/security/pages/security-x509certsintro.adoc index aa471ddd81..19df4b43ef 100644 --- a/modules/security/pages/security-x509certsintro.adoc +++ b/modules/security/pages/security-x509certsintro.adoc @@ -49,7 +49,12 @@ image::pict/ca_n_tier.png[,570,align=left] In a multi-tier hierarchy, the root CA issues certificates to the intermediate CAs, which in turn generate _intermediate certificates_: these are used to sign client certificates, such as a cluster certificate: * Trusted root CA > Intermediate CA > Cluster certificate +<<<<<<< HEAD +* Trusted root CA > Intermediate CA 1 > Intermediate CA 2\.... +> Intermediate CA _n_ > Cluster certificate +======= * Trusted root CA > Intermediate CA 1 > Intermediate CA 2\.... > Intermediate CA _n_ > Cluster certificate +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 + When you need to regenerate the intermediate certificate, ensure that the chain can be verified up to the root CA. diff --git a/modules/settings/assets/images/admin/picts/auto-compact-defaultNewUI.png b/modules/settings/assets/images/admin/picts/auto-compact-defaultNewUI.png new file mode 100644 index 0000000000..cf42cc8473 Binary files /dev/null and b/modules/settings/assets/images/admin/picts/auto-compact-defaultNewUI.png differ diff --git a/modules/settings/assets/images/admin/picts/database-fragmentationNewUI.png b/modules/settings/assets/images/admin/picts/database-fragmentationNewUI.png new file mode 100644 index 0000000000..2de2c1bddd Binary files /dev/null and b/modules/settings/assets/images/admin/picts/database-fragmentationNewUI.png differ diff --git a/modules/settings/assets/images/admin/picts/ephemeralBucketsReprovisioningInterface.png b/modules/settings/assets/images/admin/picts/ephemeralBucketsReprovisioningInterface.png new file mode 100644 index 0000000000..0ffd0d75de Binary files /dev/null and b/modules/settings/assets/images/admin/picts/ephemeralBucketsReprovisioningInterface.png differ diff --git a/modules/settings/assets/images/admin/picts/settings-alerts.png b/modules/settings/assets/images/admin/picts/settings-alerts.png new file mode 100644 index 0000000000..c350526297 Binary files /dev/null and b/modules/settings/assets/images/admin/picts/settings-alerts.png differ diff --git a/modules/settings/assets/images/admin/picts/settings-autofailover.png b/modules/settings/assets/images/admin/picts/settings-autofailover.png new file mode 100644 index 0000000000..6e3e4efade Binary files /dev/null and b/modules/settings/assets/images/admin/picts/settings-autofailover.png differ diff --git a/modules/settings/assets/images/admin/picts/settings-notifications.png b/modules/settings/assets/images/admin/picts/settings-notifications.png new file mode 100644 index 0000000000..2e62ce4337 Binary files /dev/null and b/modules/settings/assets/images/admin/picts/settings-notifications.png differ diff --git a/modules/settings/assets/images/admin/picts/settings-samples.png b/modules/settings/assets/images/admin/picts/settings-samples.png new file mode 100644 index 0000000000..12aae244fb Binary files /dev/null and b/modules/settings/assets/images/admin/picts/settings-samples.png differ diff --git a/modules/settings/assets/images/clustersetup/picts/addBucketButton.png b/modules/settings/assets/images/clustersetup/picts/addBucketButton.png new file mode 100644 index 0000000000..9fb53588d3 Binary files /dev/null and b/modules/settings/assets/images/clustersetup/picts/addBucketButton.png differ diff --git a/modules/settings/pages/change-failover-settings.adoc b/modules/settings/pages/change-failover-settings.adoc index c7ff52bdf7..797c7ebf86 100644 --- a/modules/settings/pages/change-failover-settings.adoc +++ b/modules/settings/pages/change-failover-settings.adoc @@ -11,7 +11,11 @@ When enabled, auto-failover handles all services except the _Index Service_. The *Node Availability* panel is as follows: +<<<<<<< HEAD +image::admin/picts/settings-autofailover.png[,720,align=left] +======= image::admin/settings-autofailover.png[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The following three checkboxes are provided: @@ -30,7 +34,11 @@ For more information on auto-failover, see xref:clustersetup:automatic-failover. The *Node Availability* screen contains the following, additional option, which is is available for Ephemeral Buckets: [#ephemeralBucketsReprovisioningInterface] +<<<<<<< HEAD +image::admin/picts/ephemeralBucketsReprovisioningInterface.png[,520,align=left] +======= image::admin/ephemeralBucketsReprovisioningInterface.png[,520,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Checking this checkbox ensures that if a node containing _active_ Ephemeral Buckets becomes unavailable, its replicas on other nodes are promoted to active status as appropriate, to avoid data-loss. Note, however, that this may leave the cluster in an unbalanced state, requiring a rebalance. diff --git a/modules/settings/pages/configure-alerts.adoc b/modules/settings/pages/configure-alerts.adoc index 82a6cccdda..338db8d3ef 100644 --- a/modules/settings/pages/configure-alerts.adoc +++ b/modules/settings/pages/configure-alerts.adoc @@ -15,7 +15,11 @@ You can define the settings using Couchbase Web Console, or using the xref:rest- The *Email Alerts* screen appears as follows: +<<<<<<< HEAD +image::admin/picts/settings-alerts.png[,720,align=left] +======= image::admin/settings-alerts.png[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 To set up email alerts using Couchbase Web Console, first, select the [.ui]*Enable email alerts* check box, to enable the email-alerts configuration. Then, enter appropriate data into the fields listed below. diff --git a/modules/settings/pages/configure-compact-settings.adoc b/modules/settings/pages/configure-compact-settings.adoc index 92e20b6eae..01dbd641bb 100644 --- a/modules/settings/pages/configure-compact-settings.adoc +++ b/modules/settings/pages/configure-compact-settings.adoc @@ -15,7 +15,11 @@ To access the Auto-Compaction settings: Left-click on the btn:[Add Bucket] button: + [#add-bucket-button] +<<<<<<< HEAD +image::clustersetup/picts/addBucketButton.png[,120,align=left] +======= image::clustersetup/addBucketButton.png[,120,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 + When the [.ui]*Add Data Bucket* dialog appears, add appropriate data into the initial fields; then left-click on the [.ui]*Advanced bucket settings* tab: + @@ -53,7 +57,11 @@ This brings up the [.ui]*Auto-Compaction* screen. The [.ui]*Auto-Compaction* view of the [.ui]*Settings* screen appears as follows. [#auto_compact_defaultNewUI] +<<<<<<< HEAD +image::admin/picts/auto-compact-defaultNewUI.png[,820,align=left] +======= image::admin/auto-compact-defaultNewUI.png[,820,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 All settings on this screen are also provided on the dialogs whereby you establish custom-settings for an individual new or existing bucket. @@ -65,7 +73,11 @@ The settings are described below. The [.ui]*Database Fragmentation* panel appears as follows: [#database_fragmentationNewUI] +<<<<<<< HEAD +image::admin/picts/database-fragmentationNewUI.png[,360,align=left] +======= image::admin/database-fragmentationNewUI.png[,360,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Compaction is triggered when database-fragmentation reaches the point specified by means of this interface. You can specify the fragmentation-level as a percentage (the upper field, selected by checking the adjacent checkbox); or as a number of megabytes (the lower). diff --git a/modules/settings/pages/install-sample-buckets.adoc b/modules/settings/pages/install-sample-buckets.adoc index 677514a0c8..9184d8ebca 100644 --- a/modules/settings/pages/install-sample-buckets.adoc +++ b/modules/settings/pages/install-sample-buckets.adoc @@ -7,7 +7,11 @@ Only Full Administrators and Cluster Administrators can install sample buckets. The *Sample Buckets* screen appears as follows: +<<<<<<< HEAD +image::admin/picts/settings-samples.png[,720,align=left] +======= image::admin/settings-samples.png[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 To install sample buckets: diff --git a/modules/settings/pages/update-notificatioin.adoc b/modules/settings/pages/update-notificatioin.adoc index ab0ce5964f..0be3cf6e99 100644 --- a/modules/settings/pages/update-notificatioin.adoc +++ b/modules/settings/pages/update-notificatioin.adoc @@ -6,7 +6,11 @@ The [.ui]*Software Updates* page allows notifications to be provided as to wheth During installation, the [.ui]*Update Notification* option can be optionally enabled. After installation, Full Administrators and Cluster Administrators can enable or disable the setting from [.ui]*Couchbase Web Console* > [.ui]*Settings* > [.ui]*Software Updates* tab. +<<<<<<< HEAD +image::admin/picts/settings-notifications.png[,600,align=left] +======= image::admin/settings-notifications.png[,600,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 To enable or disable the update notifications option, check or uncheck the [.ui]*Enable software update notifications* checkbox. diff --git a/modules/tools/pages/cbq-shell.adoc b/modules/tools/pages/cbq-shell.adoc index 739132e811..8157218292 100644 --- a/modules/tools/pages/cbq-shell.adoc +++ b/modules/tools/pages/cbq-shell.adoc @@ -69,7 +69,12 @@ cbq> select * ---- However, if a comment exists within a statement, it is considered as part of the N1QL command. +<<<<<<< HEAD +If the cbq shell encounters a block comment (enclosed between /* \... +*/) within a statement, it sends the block comment to the query service. +======= If the cbq shell encounters a block comment (enclosed between /* \... */) within a statement, it sends the block comment to the query service. +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 ---- cbq> select * from `travel-sample` /* This statement includes a block comment */ LIMIT 1; diff --git a/modules/troubleshooting/pages/troubleshooting-common-errors.adoc b/modules/troubleshooting/pages/troubleshooting-common-errors.adoc index b7e018da6c..e688b3a84d 100644 --- a/modules/troubleshooting/pages/troubleshooting-common-errors.adoc +++ b/modules/troubleshooting/pages/troubleshooting-common-errors.adoc @@ -148,8 +148,12 @@ Then looking at the design document, you see it could never work, as values are } ---- + +<<<<<<< HEAD +One important question to answer is, why do you see the errors when querying with `stale=false` but do not see them when querying with `stale=update_after` (default) or `stale=ok`? Consider these points: +======= One important question to answer is, why do you see the errors when querying with `stale=false` but do not see them when querying with `stale=update_after` (default) or `stale=ok`? Consider these points: +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 * `stale=false` means: trigger an index update/build, and wait until it that update/build finishes, then start streaming the view results. For this example, index build/update failed, so the client gets an error, describing why it failed, from all nodes where it failed. diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/compressionDiagram.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/compressionDiagram.png new file mode 100644 index 0000000000..638682f725 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/compressionDiagram.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence1.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence1.png new file mode 100644 index 0000000000..a066074b25 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence1.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence2.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence2.png new file mode 100644 index 0000000000..babfbdee15 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence2.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence3.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence3.png new file mode 100644 index 0000000000..7513a3f25d Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence3.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence4.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence4.png new file mode 100644 index 0000000000..01d4ec9d42 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/createDocSequence4.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/tunableMemory.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/tunableMemory.png new file mode 100644 index 0000000000..7869c030a8 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/tunableMemory.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence1.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence1.png new file mode 100644 index 0000000000..2c70f12d80 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence1.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence2.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence2.png new file mode 100644 index 0000000000..351149cd64 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence2.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence3.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence3.png new file mode 100644 index 0000000000..b7ea88ca03 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence3.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence4.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence4.png new file mode 100644 index 0000000000..04c70fbe4e Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence4.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence5.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence5.png new file mode 100644 index 0000000000..c6ed7363be Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence5.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence6.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence6.png new file mode 100644 index 0000000000..1c172fbe60 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/updateDocSequence6.png differ diff --git a/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/vbucketToNodeMapping.png b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/vbucketToNodeMapping.png new file mode 100644 index 0000000000..acb8802855 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/buckets-memory-and-storage/images/vbucketToNodeMapping.png differ diff --git a/modules/understanding-couchbase/assets/images/clusters-and-availability/images/clusterManagerArchitecture2.png b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/clusterManagerArchitecture2.png new file mode 100644 index 0000000000..420fc3c522 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/clusterManagerArchitecture2.png differ diff --git a/modules/understanding-couchbase/assets/images/clusters-and-availability/images/groups-two-equal.png b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/groups-two-equal.png new file mode 100644 index 0000000000..c62ad16037 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/groups-two-equal.png differ diff --git a/modules/understanding-couchbase/assets/images/clusters-and-availability/images/groups-two-failover-one-node.png b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/groups-two-failover-one-node.png new file mode 100644 index 0000000000..3ef6d2c8bb Binary files /dev/null and b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/groups-two-failover-one-node.png differ diff --git a/modules/understanding-couchbase/assets/images/clusters-and-availability/images/groups-two-unequal.png b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/groups-two-unequal.png new file mode 100644 index 0000000000..5fe4450664 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/groups-two-unequal.png differ diff --git a/modules/understanding-couchbase/assets/images/clusters-and-availability/images/nsServerArchitecture2.png b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/nsServerArchitecture2.png new file mode 100644 index 0000000000..7b14afab0b Binary files /dev/null and b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/nsServerArchitecture2.png differ diff --git a/modules/understanding-couchbase/assets/images/clusters-and-availability/images/vBucketReplication.png b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/vBucketReplication.png new file mode 100644 index 0000000000..9cc1a10c82 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/clusters-and-availability/images/vBucketReplication.png differ diff --git a/modules/understanding-couchbase/assets/images/data/images/item-maximum-sizes.png b/modules/understanding-couchbase/assets/images/data/images/item-maximum-sizes.png new file mode 100644 index 0000000000..c7b8e69e4c Binary files /dev/null and b/modules/understanding-couchbase/assets/images/data/images/item-maximum-sizes.png differ diff --git a/modules/understanding-couchbase/assets/images/data/images/jsonDataModel.png b/modules/understanding-couchbase/assets/images/data/images/jsonDataModel.png new file mode 100644 index 0000000000..cbdd4e287b Binary files /dev/null and b/modules/understanding-couchbase/assets/images/data/images/jsonDataModel.png differ diff --git a/modules/understanding-couchbase/assets/images/data/images/relationalDataModel.png b/modules/understanding-couchbase/assets/images/data/images/relationalDataModel.png new file mode 100644 index 0000000000..befe356d7a Binary files /dev/null and b/modules/understanding-couchbase/assets/images/data/images/relationalDataModel.png differ diff --git a/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/cbClusterWithServicesDevelopment.png b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/cbClusterWithServicesDevelopment.png new file mode 100644 index 0000000000..bf7e521125 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/cbClusterWithServicesDevelopment.png differ diff --git a/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/cbClusterWithServicesProduction.png b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/cbClusterWithServicesProduction.png new file mode 100644 index 0000000000..32125bc234 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/cbClusterWithServicesProduction.png differ diff --git a/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/dataServiceArchitecture.png b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/dataServiceArchitecture.png new file mode 100644 index 0000000000..aaba4254b4 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/dataServiceArchitecture.png differ diff --git a/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/indexServiceArchitecture.png b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/indexServiceArchitecture.png new file mode 100644 index 0000000000..68fda445c1 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/indexServiceArchitecture.png differ diff --git a/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/querySequence.png b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/querySequence.png new file mode 100644 index 0000000000..6cdcd0269c Binary files /dev/null and b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/querySequence.png differ diff --git a/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/queryServiceArchitecture.png b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/queryServiceArchitecture.png new file mode 100644 index 0000000000..771766d517 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/services-and-indexes/services/images/queryServiceArchitecture.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/custom-reduce.png b/modules/understanding-couchbase/assets/images/views/images/custom-reduce.png new file mode 100644 index 0000000000..355d40b690 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/custom-reduce.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/custom-rereduce.png b/modules/understanding-couchbase/assets/images/views/images/custom-rereduce.png new file mode 100644 index 0000000000..a1e973151f Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/custom-rereduce.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/stream-based-views.png b/modules/understanding-couchbase/assets/images/views/images/stream-based-views.png new file mode 100644 index 0000000000..e34ce4ce1c Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/stream-based-views.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/view-building.png b/modules/understanding-couchbase/assets/images/views/images/view-building.png new file mode 100644 index 0000000000..cddb438284 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/view-building.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/view-types-datastore.png b/modules/understanding-couchbase/assets/images/views/images/view-types-datastore.png new file mode 100644 index 0000000000..417afdd54f Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/view-types-datastore.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/view-types-workflow.png b/modules/understanding-couchbase/assets/images/views/images/view-types-workflow.png new file mode 100644 index 0000000000..0323a02881 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/view-types-workflow.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/views-basic-overview-missing.png b/modules/understanding-couchbase/assets/images/views/images/views-basic-overview-missing.png new file mode 100644 index 0000000000..1a6424071f Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/views-basic-overview-missing.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/views-basic-overview.png b/modules/understanding-couchbase/assets/images/views/images/views-basic-overview.png new file mode 100644 index 0000000000..e40786ffbf Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/views-basic-overview.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/views-grouping.png b/modules/understanding-couchbase/assets/images/views/images/views-grouping.png new file mode 100644 index 0000000000..586f61aa48 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/views-grouping.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/views-query-flow.png b/modules/understanding-couchbase/assets/images/views/images/views-query-flow.png new file mode 100644 index 0000000000..66a6dcdc77 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/views-query-flow.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/views-stale-sequence-stale.png b/modules/understanding-couchbase/assets/images/views/images/views-stale-sequence-stale.png new file mode 100644 index 0000000000..53b8314a6e Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/views-stale-sequence-stale.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/views-stale-sequence-updateafter.png b/modules/understanding-couchbase/assets/images/views/images/views-stale-sequence-updateafter.png new file mode 100644 index 0000000000..235f053dd4 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/views-stale-sequence-updateafter.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/views-stale-sequence-updatebefore.png b/modules/understanding-couchbase/assets/images/views/images/views-stale-sequence-updatebefore.png new file mode 100644 index 0000000000..787c4c855b Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/views-stale-sequence-updatebefore.png differ diff --git a/modules/understanding-couchbase/assets/images/views/images/views_replica.png b/modules/understanding-couchbase/assets/images/views/images/views_replica.png new file mode 100644 index 0000000000..478447add8 Binary files /dev/null and b/modules/understanding-couchbase/assets/images/views/images/views_replica.png differ diff --git a/modules/understanding-couchbase/pages/buckets-memory-and-storage/compression.adoc b/modules/understanding-couchbase/pages/buckets-memory-and-storage/compression.adoc index efda2b2591..feb542b87e 100644 --- a/modules/understanding-couchbase/pages/buckets-memory-and-storage/compression.adoc +++ b/modules/understanding-couchbase/pages/buckets-memory-and-storage/compression.adoc @@ -19,7 +19,11 @@ Compression applies to both binary and JSON items. == Where Compression is Used [#compression-diagram] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/compressionDiagram.png[,600,align=left] +======= image::buckets-memory-and-storage/compressionDiagram.png[,600,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Clients based on the Couchbase SDK (*1*), nodes within a cluster that participate in intra-cluster replication (*4*), internal Couchbase Services (*5*), external DCP clients (*6*), and remote clusters that participate in Cross Data-Center Replication (*7*) communicate their ability to send and receive compressed items by using the `HELO` command, with a flag that confirms support of the _Snappy Compression_ data type. diff --git a/modules/understanding-couchbase/pages/buckets-memory-and-storage/memory-and-storage.adoc b/modules/understanding-couchbase/pages/buckets-memory-and-storage/memory-and-storage.adoc index 156f7ff6ab..af6f8f7df3 100644 --- a/modules/understanding-couchbase/pages/buckets-memory-and-storage/memory-and-storage.adoc +++ b/modules/understanding-couchbase/pages/buckets-memory-and-storage/memory-and-storage.adoc @@ -28,25 +28,41 @@ It is assumed that the bucket has at least one replica on the cluster. . The application creates a new document. + [#create-doc-sequence-1] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/createDocSequence1.png[,460,align=left] +======= image::buckets-memory-and-storage/createDocSequence1.png[,460,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . The application saves the document on Couchbase Server. The document is received in memory. + [#create-doc-sequence-2] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/createDocSequence2.png[,460,align=left] +======= image::buckets-memory-and-storage/createDocSequence2.png[,460,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . Couchbase Server places a compressed copy of the document onto the _Disk Queue_ so that the document can be written to the disk; and a further copy onto the _Replication Queue_, so that the document can be written to the replica bucket. (The copy placed on the Replication Queue may or may not be compressed, depending on the _compression mode_ configured for the bucket.) + [#create-doc-sequence-3] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/createDocSequence3.png[,460,align=left] +======= image::buckets-memory-and-storage/createDocSequence3.png[,460,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . Once written, the new document resides both in the memory and on the disk of the node. It will also reside in the memory and on the disk of whichever other nodes maintain the replicas of its buckets. + [#create-doc-sequence-4] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/createDocSequence4.png[,460,align=left] +======= image::buckets-memory-and-storage/createDocSequence4.png[,460,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 + On each node containing the bucket or a replica, the document remains in memory; unless it is _ejected_ at some point, after which it remains on disk. @@ -60,31 +76,55 @@ This is demonstrated by the following sequence. . The application provides an update to an existing document. + [#update-doc-sequence-1] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/updateDocSequence1.png[,460,align=left] +======= image::buckets-memory-and-storage/updateDocSequence1.png[,460,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . Since the document is not currently in memory, Couchbase Server seeks it on disk, where is resides in compressed form. + [#update-doc-sequence-2] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/updateDocSequence2.png[,460,align=left] +======= image::buckets-memory-and-storage/updateDocSequence2.png[,460,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . The compressed document is retrieved, brought into memory, and decompressed. + [#update-doc-sequence-3] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/updateDocSequence3.png[,460,align=left] +======= image::buckets-memory-and-storage/updateDocSequence3.png[,460,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . The application's updates are applied to the uncompressed document. + [#update-doc-sequence-4] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/updateDocSequence4.png[,460,align=left] +======= image::buckets-memory-and-storage/updateDocSequence4.png[,460,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . The updated document is placed (in either compressed or uncompressed form, as appropriate) on the replication queue, so that replicas can be updated. The updated document is also re-compressed, and written to disk locally. + [#update-doc-sequence-5] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/updateDocSequence5.png[,460,align=left] +======= image::buckets-memory-and-storage/updateDocSequence5.png[,460,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 . The updated document is now retained locally on disk and in memory. The document remains in memory unless it is ejected at some point, after which it continues to reside on disk. + [#update-doc-sequence-6] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/updateDocSequence6.png[,460,align=left] +======= image::buckets-memory-and-storage/updateDocSequence6.png[,460,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 diff --git a/modules/understanding-couchbase/pages/buckets-memory-and-storage/memory.adoc b/modules/understanding-couchbase/pages/buckets-memory-and-storage/memory.adoc index ffd469d8a3..b6fa0f8b4d 100644 --- a/modules/understanding-couchbase/pages/buckets-memory-and-storage/memory.adoc +++ b/modules/understanding-couchbase/pages/buckets-memory-and-storage/memory.adoc @@ -87,7 +87,11 @@ If an item has not been recently used, it is a candidate for ejection. The relationship of `mem_low_wat` and `mem_high_wat` to the bucket's overall memory quota is illustrated as follows: [#tunable_memory] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/tunableMemory.png[,416] +======= image::buckets-memory-and-storage/tunableMemory.png[,416] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The default setting for `mem_low_wat` is 75%. The default setting for `mem_high_wat` is 85%. diff --git a/modules/understanding-couchbase/pages/buckets-memory-and-storage/vbuckets.adoc b/modules/understanding-couchbase/pages/buckets-memory-and-storage/vbuckets.adoc index f56f8a5977..528a3d47ae 100644 --- a/modules/understanding-couchbase/pages/buckets-memory-and-storage/vbuckets.adoc +++ b/modules/understanding-couchbase/pages/buckets-memory-and-storage/vbuckets.adoc @@ -27,7 +27,11 @@ vBuckets are mapped to individual nodes by the Cluster Manager: the mapping is c The relationships between a bucket, its keys (and their associated values), the hashing algorithm, vBuckets, server-mappings, and servers, is illustrated below: [#vbucket_to_node_mapping] +<<<<<<< HEAD +image::buckets-memory-and-storage/images/vbucketToNodeMapping.png[,820,align=left] +======= image::buckets-memory-and-storage/vbucketToNodeMapping.png[,820,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Thus, an authorized client attempting to access data performs a hash operation on the appropriate key, and thereby calculates the number of the vBucket that owns the key. The client then examines the vBucket map to determine the server-node on which the vBucket resides; and finally performs its operation directly on that server-node. diff --git a/modules/understanding-couchbase/pages/clusters-and-availability/cluster-manager.adoc b/modules/understanding-couchbase/pages/clusters-and-availability/cluster-manager.adoc index c348a1942e..a14a542061 100644 --- a/modules/understanding-couchbase/pages/clusters-and-availability/cluster-manager.adoc +++ b/modules/understanding-couchbase/pages/clusters-and-availability/cluster-manager.adoc @@ -9,7 +9,11 @@ The Couchbase _Cluster Manager_ runs on all the nodes of a cluster, maintaining The architecture of the Cluster Manager is as follows: [#cluster_manager_architecture] +<<<<<<< HEAD +image::clusters-and-availability/images/clusterManagerArchitecture2.png[,600] +======= image::clusters-and-availability/clusterManagerArchitecture2.png[,600] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 As shown, the Cluster Manager consists of two processes. The first, the _babysitter_, is responsible for maintaining a variety of Couchbase Server-processes, which indeed include the second Cluster Manager process, _ns-server_. @@ -37,7 +41,11 @@ See xref:views/views-intro.adoc[Views], for more information. The principal Cluster-Manager process is _ns-server_, whose architecture is as follows: [#ns_server_architecture] +<<<<<<< HEAD +image::clusters-and-availability/images/nsServerArchitecture2.png[,600] +======= image::clusters-and-availability/nsServerArchitecture2.png[,600] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The modules are: diff --git a/modules/understanding-couchbase/pages/clusters-and-availability/groups.adoc b/modules/understanding-couchbase/pages/clusters-and-availability/groups.adoc index f1a0f67d96..e05eb82805 100644 --- a/modules/understanding-couchbase/pages/clusters-and-availability/groups.adoc +++ b/modules/understanding-couchbase/pages/clusters-and-availability/groups.adoc @@ -40,7 +40,11 @@ For information on the standard (non-Group-based) distribution of replica vBucke The following illustration shows how vBuckets are distributed across two groups; each group containing four of its cluster's eight nodes. [#groups_two_equal] +<<<<<<< HEAD +image::clusters-and-availability/images/groups-two-equal.png[,720,align=left] +======= image::clusters-and-availability/groups-two-equal.png[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Note that Group 2 contains all the replica vBuckets that correspond to active vBuckets on Group 1; while conversely, Group 1 contains all the replica vBuckets that correspond to active vBuckets on Group 2. @@ -50,7 +54,11 @@ Note that Group 2 contains all the replica vBuckets that correspond to active vB The following illustration shows how vBuckets are distributed across two groups: Group 1 contains four nodes, while Group 2 contains five. [#groups_two_unequal] +<<<<<<< HEAD +image::clusters-and-availability/images/groups-two-unequal.png[,720,align=left] +======= image::clusters-and-availability/groups-two-unequal.png[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Group 1 contains all the replica vBuckets that correspond to active vBuckets on Group 2. However, since the groups contain unequal number of nodes, Group 2 not only contains all the replica vBuckets that correspond to active vBuckets on Group 1, but also contains all the replica vBuckets for its own additional node, Server 9 — the replicas for Server 9 being distributed across the other Group 2 nodes; which are Servers 5, 6, 7, and 8. @@ -66,7 +74,11 @@ This keeps all data available, but results in some data being no longer protecte This is shown by the following illustration, in which Server 2, in Group 1, has gone offline, and a rebalance and failover have occurred. [#groups_two_failover_one_node] +<<<<<<< HEAD +image::clusters-and-availability/images/groups-two-failover-one-node.png[,720,align=left] +======= image::clusters-and-availability/groups-two-failover-one-node.png[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 With the active vBuckets on Server 2 no longer accessible, the replica vBuckets for Server 2 have been promoted to active status, on the servers of Group 2. The data originally active on Server 2 is thereby kept available. diff --git a/modules/understanding-couchbase/pages/clusters-and-availability/replication-architecture.adoc b/modules/understanding-couchbase/pages/clusters-and-availability/replication-architecture.adoc index 229e70e093..c8d6902002 100644 --- a/modules/understanding-couchbase/pages/clusters-and-availability/replication-architecture.adoc +++ b/modules/understanding-couchbase/pages/clusters-and-availability/replication-architecture.adoc @@ -22,7 +22,11 @@ To ensure maximum availability of data in case of node-failures, the _Master Ser This is shown by the following illustration: [#vbucket_replication] +<<<<<<< HEAD +image::clusters-and-availability/images/vBucketReplication.png[,780,align=left] +======= image::clusters-and-availability/vBucketReplication.png[,780,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The illustration shows active and replica vBuckets that correspond to a single, user-defined bucket, for which a single replication-instance has been specified. The first nine active vBuckets are shown, along with their nine corresponding, replica vBuckets; distributed across three server-nodes. diff --git a/modules/understanding-couchbase/pages/data/data.adoc b/modules/understanding-couchbase/pages/data/data.adoc index f8367493fa..306bac4234 100644 --- a/modules/understanding-couchbase/pages/data/data.adoc +++ b/modules/understanding-couchbase/pages/data/data.adoc @@ -143,4 +143,8 @@ See xref:data/extended-attributes-fundamentals.adoc[Extended Attributes] for mor The following diagram indicates the respective maximum sizes of the components of a Couchbase Server data-item. [#item-maximum-sizes] +<<<<<<< HEAD +image::data/images/item-maximum-sizes.png[,520,align=left] +======= image::data/item-maximum-sizes.png[,520,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 diff --git a/modules/understanding-couchbase/pages/data/document-data-model.adoc b/modules/understanding-couchbase/pages/data/document-data-model.adoc index 928c105e75..7585703527 100644 --- a/modules/understanding-couchbase/pages/data/document-data-model.adoc +++ b/modules/understanding-couchbase/pages/data/document-data-model.adoc @@ -24,12 +24,20 @@ To support an online flight-booking application, allowing users to search for fl The result may be as follows: [#relational_data_model] +<<<<<<< HEAD +image::data/images/relationalDataModel.png[,450] +======= image::data/relationalDataModel.png[,450] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 By contrast, the document model likely requires only a single document, which embeds an array of schedules for all flights between each of two airports: [#json_data_model] +<<<<<<< HEAD +image::data/images/jsonDataModel.png[,150] +======= image::data/jsonDataModel.png[,150] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Thus, in the document model, each document can be highly self-contained. This supports the rapid fulfillment of application-requests, and has important implications for both _scalability_ and _latency_: one document can be replicated, or atomically changed, without other documents needing to be accessed; eradicating the need for complex inter-node coordination, and minimizing contention. diff --git a/modules/understanding-couchbase/pages/services-and-indexes/services/data-service.adoc b/modules/understanding-couchbase/pages/services-and-indexes/services/data-service.adoc index b4bb7f768c..36eb8a01e9 100644 --- a/modules/understanding-couchbase/pages/services-and-indexes/services/data-service.adoc +++ b/modules/understanding-couchbase/pages/services-and-indexes/services/data-service.adoc @@ -12,7 +12,11 @@ The Data Service must run on at least one node of every cluster. The architecture of the Data Service is illustrated as follows: [#data_service_architecture] +<<<<<<< HEAD +image::services-and-indexes/services/images/dataServiceArchitecture.png[,780,align=left] +======= image::services-and-indexes/services/dataServiceArchitecture.png[,780,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The principal components are: diff --git a/modules/understanding-couchbase/pages/services-and-indexes/services/index-service.adoc b/modules/understanding-couchbase/pages/services-and-indexes/services/index-service.adoc index 3517c62111..649a0e6858 100644 --- a/modules/understanding-couchbase/pages/services-and-indexes/services/index-service.adoc +++ b/modules/understanding-couchbase/pages/services-and-indexes/services/index-service.adoc @@ -8,7 +8,11 @@ The _Index Service_ supports the creation of _primary_ and _secondary_ indexes o Components essential for the _Index Service_ reside not only on each node to which the Index Service is assigned, but also on each node to which the _Data Service_ is assigned, as shown by the following illustration: [#index_service_architecture] +<<<<<<< HEAD +image::services-and-indexes/services/images/indexServiceArchitecture.png[,700,align=left] +======= image::services-and-indexes/services/indexServiceArchitecture.png[,700,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The illustration depicts the following: diff --git a/modules/understanding-couchbase/pages/services-and-indexes/services/query-service.adoc b/modules/understanding-couchbase/pages/services-and-indexes/services/query-service.adoc index 0517ac4fe2..0e9681ae77 100644 --- a/modules/understanding-couchbase/pages/services-and-indexes/services/query-service.adoc +++ b/modules/understanding-couchbase/pages/services-and-indexes/services/query-service.adoc @@ -9,7 +9,11 @@ The Query Service depends on both the _Index Service_ and the _Data Service_. The architecture of the _Query Service_ is shown by the following illustration: [#query_service_architecture] +<<<<<<< HEAD +image::services-and-indexes/services/images/queryServiceArchitecture.png[,700,align=left] +======= image::services-and-indexes/services/queryServiceArchitecture.png[,700,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The principal components are: @@ -26,7 +30,11 @@ Other data stores are also included, such as the store for the local filesystem. The sequence whereby queries are executed is shown below: [#query_sequence] +<<<<<<< HEAD +image::services-and-indexes/services/images/querySequence.png[,820,align=left] +======= image::services-and-indexes/services/querySequence.png[,820,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The client's N1QL query is shown entering the Query Service at the left-hand side. The Query Processor performs its *Parse* routine, to validate the submitted statement, then creates the execution *Plan*. diff --git a/modules/understanding-couchbase/pages/services-and-indexes/services/services.adoc b/modules/understanding-couchbase/pages/services-and-indexes/services/services.adoc index c6cca803e3..08b8e6a2dc 100644 --- a/modules/understanding-couchbase/pages/services-and-indexes/services/services.adoc +++ b/modules/understanding-couchbase/pages/services-and-indexes/services/services.adoc @@ -35,13 +35,21 @@ Alternatively, if a cluster is to be used for development purposes only, it may For example, the following illustration shows how four services — Data, Index, Query, and Search — might be allocated evenly across the five nodes of a _development_ cluster: [#cb_cluster_with_services_development] +<<<<<<< HEAD +image::services-and-indexes/services/images/cbClusterWithServicesDevelopment.png[,720,align=left] +======= image::services-and-indexes/services/cbClusterWithServicesDevelopment.png[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 This configuration might provide perfectly acceptable performance for each of the four services, in the context of development and testing. However, if a large amount of data needed, in production, to be intensively indexed, and addressed by means of Query and Search, the following configuration would be more efficient: [#cb_cluster_with_services_production] +<<<<<<< HEAD +image::services-and-indexes/services/images/cbClusterWithServicesProduction.png[,720,align=left] +======= image::services-and-indexes/services/cbClusterWithServicesProduction.png[,720,align=left] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 In this revised configuration, the Data Service is the only service to run on two of the nodes; the Index Service the only service on two futher nodes; and the Query and Search Services share the fifth and final node. diff --git a/modules/understanding-couchbase/pages/views/views-basics.adoc b/modules/understanding-couchbase/pages/views/views-basics.adoc index 79a6cda963..761563c8c4 100644 --- a/modules/understanding-couchbase/pages/views/views-basics.adoc +++ b/modules/understanding-couchbase/pages/views/views-basics.adoc @@ -26,4 +26,8 @@ Creating a new view on an existing large data set may take a long time to build The following diagram shows a brief overview of this process: +<<<<<<< HEAD +image::views/images/views-basic-overview.png[,600] +======= image::views/views-basic-overview.png[,600] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 diff --git a/modules/understanding-couchbase/pages/views/views-operation.adoc b/modules/understanding-couchbase/pages/views/views-operation.adoc index 76c09951f6..a0a8a751f3 100644 --- a/modules/understanding-couchbase/pages/views/views-operation.adoc +++ b/modules/understanding-couchbase/pages/views/views-operation.adoc @@ -103,7 +103,11 @@ By default, each node in a cluster will have a copy of each design document and If you make any changes to a views function, Couchbase Server will replicate this change to all nodes in the cluster. The sever will generate indexes from views within a single design document and store the indexes in a single file on each node in the cluster: +<<<<<<< HEAD +image::views/images/views_replica.png[,720] +======= image::views/views_replica.png[,720] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Couchbase Server can optionally create replica indexes on nodes that contain replicated data; this is to prepare your cluster for a failover scenario. The server does not replicate index information from another node. @@ -174,7 +178,11 @@ Three values for `stale` are supported: The index is not updated. If an index exists for the given view, then the information in the current index is used as the basis for the query and the results are returned accordingly. +<<<<<<< HEAD +image::views/images/views-stale-sequence-stale.png[,360] +======= image::views/views-stale-sequence-stale.png[,360] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 This setting results in the fastest response times to a given query since the existing index is used without being updated. However, this might return incomplete information if changes have been made to the database, and these documents would otherwise be included in the given view. @@ -184,14 +192,22 @@ However, this might return incomplete information if changes have been made to t The index is updated before you execute the query, making sure that any documents updated and persisted to disk are included in the view. The client will wait until the index has been updated before the query has executed and, therefore, the response will be delayed until the updated index is available. +<<<<<<< HEAD +image::views/images/views-stale-sequence-updatebefore.png[,600] +======= image::views/views-stale-sequence-updatebefore.png[,600] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 * *stale=update_after* This is the default setting if no `stale` parameter is specified. The existing index is used as the basis of the query, but the index is marked for updating once the results have been returned to the client. +<<<<<<< HEAD +image::views/images/views-stale-sequence-updateafter.png[,600] +======= image::views/views-stale-sequence-updateafter.png[,600] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The indexing engine is an asynchronous process; this means querying an index may produce results you may not expect. For example, if you update a document, and then immediately run a query on that document you may not get the new information in the emitted view data. diff --git a/modules/understanding-couchbase/pages/views/views-production.adoc b/modules/understanding-couchbase/pages/views/views-production.adoc index 54a5f00226..c8751012fe 100644 --- a/modules/understanding-couchbase/pages/views/views-production.adoc +++ b/modules/understanding-couchbase/pages/views/views-production.adoc @@ -29,7 +29,11 @@ Views can be updated by the REST API, but updating a production design document The support for the two different view types means that there is a typical work flow for view development, as shown in the figure below: +<<<<<<< HEAD +image::views/images/view-types-workflow.png[,480] +======= image::views/view-types-workflow.png[,480] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The above diagram features the following steps: diff --git a/modules/understanding-couchbase/pages/views/views-querying.adoc b/modules/understanding-couchbase/pages/views/views-querying.adoc index 55f07a6765..f0bee8f8a7 100644 --- a/modules/understanding-couchbase/pages/views/views-querying.adoc +++ b/modules/understanding-couchbase/pages/views/views-querying.adoc @@ -24,7 +24,11 @@ all documents are potentially output according to the view definition. View results and the parameters operate and interact in a specific order. The interaction directly affects how queries are written and data is selected. +<<<<<<< HEAD +image::views/images/views-query-flow.png[,480] +======= image::views/views-query-flow.png[,480] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The core arguments and selection systems are the same through both the REST API interface, and the client libraries. The setting of these values differs between different client libraries, but the argument names and expected and supported values are the same across all environments. @@ -436,7 +440,11 @@ If you have specified an array as your compound key within your view, then you c When grouping is enabled, the view output is grouped according to the key array, and you can specify the level within the defined array that the information is grouped by. You do this by specifying the index within the array by which you want the output grouped using the `group_level` parameter. +<<<<<<< HEAD +image::views/images/views-grouping.png[,480] +======= image::views/views-grouping.png[,480] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The `group_level` parameter specifies the array index (starting at 1) at which you want the grouping occur, and generate a unique value based on this value that is used to identify all the items in the view output that include this unique value: diff --git a/modules/understanding-couchbase/pages/views/views-store-data.adoc b/modules/understanding-couchbase/pages/views/views-store-data.adoc index ae2db6b784..6e74d086f3 100644 --- a/modules/understanding-couchbase/pages/views/views-store-data.adoc +++ b/modules/understanding-couchbase/pages/views/views-store-data.adoc @@ -9,7 +9,11 @@ The formatting of the data in this form enables the individual fields of the dat Information is stored into your Couchbase database the data stored is parsed, if the information can be identified as valid JSON then the information is tagged and identified in the database as valid JSON. If the information cannot be parsed as valid JSON then it is stored as a verbatim binary copy of the submitted data. +<<<<<<< HEAD +image::views/images/view-types-datastore.png[,600] +======= image::views/view-types-datastore.png[,600] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 When retrieving the stored data, the format of the information depends on whether the data was tagged as valid JSON or not: diff --git a/modules/understanding-couchbase/pages/views/views-writing-custom-reduce.adoc b/modules/understanding-couchbase/pages/views/views-writing-custom-reduce.adoc index b4c03a6d66..b172a84aba 100644 --- a/modules/understanding-couchbase/pages/views/views-writing-custom-reduce.adoc +++ b/modules/understanding-couchbase/pages/views/views-writing-custom-reduce.adoc @@ -8,7 +8,11 @@ In the primary form, a `reduce()` function must convert the data supplied to it The core structure of the reduce function execution is shown the figure below. +<<<<<<< HEAD +image::views/images/custom-reduce.png[,480] +======= image::views/custom-reduce.png[,480] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 The base format of the `reduce()` function is as follows: diff --git a/modules/understanding-couchbase/pages/views/views-writing-map.adoc b/modules/understanding-couchbase/pages/views/views-writing-map.adoc index d90eb5bd31..4581c52a83 100644 --- a/modules/understanding-couchbase/pages/views/views-writing-map.adoc +++ b/modules/understanding-couchbase/pages/views/views-writing-map.adoc @@ -29,7 +29,11 @@ All client libraries provide a method for submitting a query into the view syste The following diagram shows the name, salary and city fields of the stored JSON documents translated into a table (an array of fields) in the generated view content. +<<<<<<< HEAD +image::views/images/views-basic-overview.png[,480] +======= image::views/views-basic-overview.png[,480] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 In this example, a map function is taking the Name, City, and Salary fields from the JSON documents stored in the Couchbase bucket and mapping them to a table of these fields. The map function which produces this output might look like this: @@ -100,7 +104,11 @@ If you elect to output fields in from the source JSON objects that do not exist, For example, in the view below, some of the source records do contain all of the fields in the specified view. The result in the view result is just the `null` entry for that field in the value output. +<<<<<<< HEAD +image::views/images/views-basic-overview-missing.png[,480] +======= image::views/views-basic-overview-missing.png[,480] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 You should check that the field or data source exists during the map processing before emitting the data. diff --git a/modules/understanding-couchbase/pages/views/views-writing-reduce.adoc b/modules/understanding-couchbase/pages/views/views-writing-reduce.adoc index 00458f19a3..0869fde3ae 100644 --- a/modules/understanding-couchbase/pages/views/views-writing-reduce.adoc +++ b/modules/understanding-couchbase/pages/views/views-writing-reduce.adoc @@ -27,7 +27,11 @@ A document ID is not automatically included because the document ID cannot be de The following diagram shows an example of the view creation process: +<<<<<<< HEAD +image::views/images/view-building.png[,480] +======= image::views/view-building.png[,480] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 Because of the separation of the two elements, the two functions can be considered individually. diff --git a/modules/understanding-couchbase/pages/views/views-writing-rereduce.adoc b/modules/understanding-couchbase/pages/views/views-writing-rereduce.adoc index d848d7fc63..b620cefc87 100644 --- a/modules/understanding-couchbase/pages/views/views-writing-rereduce.adoc +++ b/modules/understanding-couchbase/pages/views/views-writing-rereduce.adoc @@ -16,7 +16,11 @@ f(keys, values) = f(keys, [ f(keys, values) ]) The following diagram shows previous reductions included within the array of information that are re-supplied to the reduce function as an element of the array of values supplied to the reduce function. +<<<<<<< HEAD +image::views/images/custom-rereduce.png[,600] +======= image::views/custom-rereduce.png[,600] +>>>>>>> 410e17157f915875034f4610572bd61e46bf52c6 That is, the input of a reduce function can be not only the raw data from the map phase, but also the output of a previous reduce phase. This is called `rereduce`, and can be identified by the third argument to the `reduce()`.