Spec-Zone.ru › CouchDB 3.5

/{db}/_shards

Добавлено в версии 2.0.

GET /{db}/_shards

Ответ будет содержать список шардов базы данных. Для каждого шарда будет указан его внутренний диапазон базы данных и узлы, на которых хранятся реплики этих шардов.

Параметры:
  • db – Имя базы данных

Заголовки запроса:
  • Accept –

    • application/json

    • text/plain

Заголовки ответа:
  • Content-Type –

    • application/json

    • text/plain; charset=utf-8

Объект JSON ответа:
  • shards (object) – Сопоставление диапазонов шардов с отдельными репликами шардов на каждом узле кластера

Коды состояния:
  • 200 OK – Запрос успешно выполнен

  • 400 Bad Request – Недопустимое имя базы данных

  • 401 Unauthorized – Требуется право на чтение

  • 403 Forbidden – Недостаточно прав / Слишком много запросов с недействительными учетными данными

  • 415 Unsupported Media Type – Недопустимое значение Content-Type

  • 500 Internal Server Error – Внутренняя ошибка сервера или превышено время ожидания

Запрос:

GET /db/_shards HTTP/1.1
Accept: */*
Host: localhost:5984

Ответ:

HTTP/1.1 200 OK
Cache-Control: must-revalidate
Content-Length: 621
Content-Type: application/json
Date: Fri, 18 Jan 2019 19:55:14 GMT
Server: CouchDB/2.4.0 (Erlang OTP/19)

{
  "shards": {
    "00000000-1fffffff": [
      "couchdb@node1.example.com",
      "couchdb@node2.example.com",
      "couchdb@node3.example.com"
    ],
    "20000000-3fffffff": [
      "couchdb@node1.example.com",
      "couchdb@node2.example.com",
      "couchdb@node3.example.com"
    ],
    "40000000-5fffffff": [
      "couchdb@node1.example.com",
      "couchdb@node2.example.com",
      "couchdb@node3.example.com"
    ],
    "60000000-7fffffff": [
      "couchdb@node1.example.com",
      "couchdb@node2.example.com",
      "couchdb@node3.example.com"
    ],
    "80000000-9fffffff": [
      "couchdb@node1.example.com",
      "couchdb@node2.example.com",
      "couchdb@node3.example.com"
    ],
    "a0000000-bfffffff": [
      "couchdb@node1.example.com",
      "couchdb@node2.example.com",
      "couchdb@node3.example.com"
    ],
    "c0000000-dfffffff": [
      "couchdb@node1.example.com",
      "couchdb@node2.example.com",
      "couchdb@node3.example.com"
    ],
    "e0000000-ffffffff": [
      "couchdb@node1.example.com",
      "couchdb@node2.example.com",
      "couchdb@node3.example.com"
    ]
  }
}

/{db}/_shards/{docid}

GET /{db}/_shards/{docid}

Возвращает информацию о конкретном шарде, в котором хранится указанный документ, а также информацию об узлах, на которых имеется реплика этого шарда.

Параметры:
  • db – Имя базы данных

  • docid – Идентификатор документа

Заголовки запроса:
  • Accept –

    • application/json

    • text/plain

Заголовки ответа:
  • Content-Type –

    • application/json

    • text/plain; charset=utf-8

Объект JSON ответа:
  • range (string) – Диапазон шарда, в котором хранится документ

  • nodes (array) – Список узлов, обслуживающих реплику шарда

Коды состояния:
  • 200 OK – Запрос успешно выполнен

  • 401 Unauthorized – Требуется право на чтение

  • 403 Forbidden – Недостаточно прав / Слишком много запросов с недействительными учетными данными

  • 404 Not Found – База данных или документ не найдены

  • 500 Internal Server Error – Внутренняя ошибка сервера или превышено время ожидания

Запрос:

GET /db/_shards/docid HTTP/1.1
Accept: */*
Host: localhost:5984

Ответ:

HTTP/1.1 200 OK
Cache-Control: must-revalidate
Content-Length: 94
Content-Type: application/json
Date: Fri, 18 Jan 2019 20:26:33 GMT
Server: CouchDB/2.3.0-9d4cb03c2 (Erlang OTP/19)

{
  "range": "e0000000-ffffffff",
  "nodes": [
    "node1@127.0.0.1",
    "node2@127.0.0.1",
    "node3@127.0.0.1"
  ]
}

/{db}/_sync_shards

Добавлено в версии 2.3.1.

POST /{db}/_sync_shards

Для указанной базы данных принудительно запускает внутреннюю синхронизацию шардов для всех реплик всех шардов базы данных.

Обычно это используется только при обслуживании кластера, например при перемещении шарда.

Параметры:
  • db – Имя базы данных

Заголовки запроса:
  • Accept –

    • application/json

    • text/plain

Заголовки ответа:
  • Content-Type –

    • application/json

    • text/plain; charset=utf-8

Объект JSON ответа:
  • ok (boolean) – Статус операции. Доступно в случае успеха

  • error (string) – Тип ошибки. Доступно, если код ответа — 4xx

  • reason (string) – Описание ошибки. Доступно, если код ответа — 4xx

Коды состояния:
  • 202 Accepted – Запрос принят

  • 400 Bad Request – Недопустимое имя базы данных

  • 401 Unauthorized – Требуются права администратора сервера CouchDB

  • 403 Forbidden – Недостаточно прав / Слишком много запросов с недействительными учетными данными

  • 404 Not Found – База данных не найдена

  • 500 Internal Server Error – Внутренняя ошибка сервера или тайм-аут

Запрос:

POST /db/_sync_shards HTTP/1.1
Host: localhost:5984
Accept: */*

Ответ:

HTTP/1.1 202 Accepted
Cache-Control: must-revalidate
Content-Length: 12
Content-Type: application/json
Date: Fri, 18 Jan 2019 20:19:23 GMT
Server: CouchDB/2.3.0-9d4cb03c2 (Erlang OTP/19)
X-Couch-Request-ID: 14f0b8d252
X-CouchDB-Body-Time: 0

{
    "ok": true
}

Примечание

Администраторам может потребоваться увеличить значение [mem3] sync_concurrency на время синхронизации шардов.

Copyright © 2025 The Apache Software Foundation — Licensed under the Apache License 2.0
https://docs.couchdb.org/en/3.5.1/api/database/shard.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API