.. Licensed under the Apache License, Version 2.0 (the "License"); you may not .. use this file except in compliance with the License. You may obtain a copy of .. the License at .. .. http://www.apache.org/licenses/LICENSE-2.0 .. .. Unless required by applicable law or agreed to in writing, software .. distributed under the License is distributed on an "AS IS" BASIS, WITHOUT .. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the .. License for the specific language governing permissions and limitations under .. the License. .. _api/partioned-dbs: ===================== Partitioned Databases ===================== Partitioned databases allow for data colocation in a cluster, which provides significant performance improvements for queries constrained to a single partition. See the guide for :ref:`getting started with partitioned databases ` ``/{db}/_partition/{partition_id}`` =================================== .. http:get:: /{db}/_partition/{partition_id} :synopsis: Returns document and size info for the given partition This endpoint returns information describing the provided partition. It includes document and deleted document counts along with external and active data sizes. :code 200: Request completed successfully **Request**: .. code-block:: http GET /db/_partition/sensor-260 HTTP/1.1 Accept: application/json Host: localhost:5984 **Response**: .. code-block:: http HTTP/1.1 200 OK Cache-Control: must-revalidate Content-Length: 119 Content-Type: application/json Date: Thu, 24 Jan 2019 17:19:59 GMT Server: CouchDB/2.3.0-a1e11cea9 (Erlang OTP/21) { "db_name": "my_new_db", "doc_count": 1, "doc_del_count": 0, "partition": "sensor-260", "sizes": { "active": 244, "external": 347 } } ``/{db}/_partition/{partition_id}/_all_docs`` ============================================= .. http:get:: /{db}/_partition/{partition_id}/_all_docs :synopsis: Return all docs in the specified partition :param db: Database name :param partition_id: Partition name This endpoint is a convenience endpoint for automatically setting bounds on the provided partition range. Similar results can be had by using the global ``/db/_all_docs`` endpoint with appropriately configured values for ``start_key`` and ``end_key``. Refer to the :ref:`view endpoint ` documentation for a complete description of the available query parameters and the format of the returned data. **Request**: .. code-block:: http GET /db/_partition/sensor-260/_all_docs HTTP/1.1 Accept: application/json Host: localhost:5984 **Response**: .. code-block:: http HTTP/1.1 200 OK Cache-Control: must-revalidate Content-Type: application/json Date: Sat, 10 Aug 2013 16:22:56 GMT ETag: "1W2DJUZFZSZD9K78UFA3GZWB4" Server: CouchDB (Erlang/OTP) Transfer-Encoding: chunked { "offset": 0, "rows": [ { "id": "sensor-260:sensor-reading-ca33c748-2d2c-4ed1-8abf-1bca4d9d03cf", "key": "sensor-260:sensor-reading-ca33c748-2d2c-4ed1-8abf-1bca4d9d03cf", "value": { "rev": "1-05ed6f7abf84250e213fcb847387f6f5" } } ], "total_rows": 1 } .. _api/partitioned/views: ``/{db}/_partition/{partition_id}/_design/{ddoc}/_view/{view}`` =============================================================== .. http:get:: /{db}/_partition/{partition_id}/_design/{ddoc}/_view/{view} :synopsis: Execute a partitioned query :param db: Database name :param partition_id: Partition name :param ddoc: Design document id :param view: View name This endpoint is responsible for executing a partitioned query. The returned view result will only contain rows with the specified partition name. Refer to the :ref:`view endpoint ` documentation for a complete description of the available query parameters and the format of the returned data. .. code-block:: http GET /db/_partition/sensor-260/_design/sensor-readings/_view/by_sensor HTTP/1.1 Accept: application/json Host: localhost:5984 **Response**: .. code-block:: http HTTP/1.1 200 OK Cache-Control: must-revalidate Content-Type: application/json Date: Wed, 21 Aug 2013 09:12:06 GMT ETag: "2FOLSBSW4O6WB798XU4AQYA9B" Server: CouchDB (Erlang/OTP) Transfer-Encoding: chunked { "offset": 0, "rows": [ { "id": "sensor-260:sensor-reading-ca33c748-2d2c-4ed1-8abf-1bca4d9d03cf", "key": [ "sensor-260", "0" ], "value": null }, { "id": "sensor-260:sensor-reading-ca33c748-2d2c-4ed1-8abf-1bca4d9d03cf", "key": [ "sensor-260", "1" ], "value": null }, { "id": "sensor-260:sensor-reading-ca33c748-2d2c-4ed1-8abf-1bca4d9d03cf", "key": [ "sensor-260", "2" ], "value": null }, { "id": "sensor-260:sensor-reading-ca33c748-2d2c-4ed1-8abf-1bca4d9d03cf", "key": [ "sensor-260", "3" ], "value": null } ], "total_rows": 4 } .. _api/partitioned/find: ``/{db}/_partition/{partition_id}/_find`` ========================================= .. http:post:: /{db}/_partition/{partition_id}/_find :synopsis: Query the partition specified by ``partition_id`` :param db: Database name :param partition id: Name of the partition to query This endpoint is responsible for finding a partition query by its ID. The returned view result will only contain rows with the specified partition id. Refer to the :ref:`find endpoint ` documentation for a complete description of the available parameters and the format of the returned data. .. _api/partitioned/explain: ``/{db}/_partition/{partition_id}/_explain`` ============================================ .. http:post:: /{db}/_partition/{partition_id}/_explain :synopsis: Find index that is used with a query :param db: Database name :partition id: Name of the partition to query This endpoint shows which index is being used by the query. Refer to the :ref:`explain endpoint ` documentation for a complete description of the available parameters and the format of the returned data.