Отправка запроса клиентом на заданный инстанс

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

Информация о распределении бакетов будет приходить от Пикодата в сообщении с мета информацией.

Описание механизма

Механизм реализован в Picodata 26.1, поэтому для реализации необходимо обновление пикодаты #62 (closed)

В linked/child задачах есть привязка подзадач, необходимый для реализации механизма в Picopyn

В целом алгоритм вычисления следующий:

  • получить метаданные запроса от пикодата, необходимые для вычисления bucket id (начиная с пикодата 26.1)
  • закешировать мету запроса
  • для конкретных данных:
    • вычислить bucket id на основе мета по формуле
    • смаппить bucket_id -> replicaset master uuid (карта бакетов и топология)
    • выбрать из пула соединение по uuid узла (если таковое имеется или использовать стандартный механизм выбора соединения) и отправить на него запрос с данными

Ограничения

Edited by Asya Lomakina