Блокировка#

Данный инструмент администрирования позволяют изменять поведение экземпляра Platform V Vector DB (далее - Vector DB) во время выполнения без необходимости ручного редактирования его конфигурации.

API блокировки позволяет пользователям ограничивать возможные операции над процессом. Важно отметить следующее:

  • Конфигурация не является постоянной, поэтому после перезапуска необходимо снова выполнить блокировку.

  • Блокировка применяется только к одному узлу. В случае распределенной установки необходимо вызвать блокировку для всех необходимых узлов.

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

Предусловия#

Пререквизиты:

  • Доступ к серверу: SSH или физический доступ.

  • Установленный продукт: сервер должен быть запущен (кроме операций с файлами данных).

  • Исходный код: скрипты находятся в /src/bin/ репозитория продукта.

  • Rust: установленный компилятор для сборки утилит.

Привилегии:

  • Файловая система: права на чтение/запись в storage_path.

  • API-ключ: обязателен ключ с правами admin для большинства операций.

  • Сетевой доступ: доступность API-порта (порт по умолчанию 6333).

Ключевые требования:

  • Эксклюзивный доступ к хранилищу.

  • Vector DB должен быть остановлен.

Последовательность выполнения#

  1. Отправка запроса блокировки:

    • Администратор выполняет POST-запрос /locks с параметрами:

    {
        "error_message": "write is forbidden",
        "write": true
    }
    
    • Флаг "write": true активирует блокировку операций записи.

  2. Распределенная система: если Vector DB работает в кластере (несколько узлов), блокировка должна быть явно применена к каждому узлу через аналогичный запрос.

  3. Повторное применение после перезапуска: блокировка не сохраняется между перезапусками сервиса. После рестарта Vector DB администратор должен повторно отправить запрос /locks.

Результат#

  • Для администратора: все попытки создания новых коллекций или добавления данных в существующие коллекции завершаются ошибкой с сообщением "write is forbidden". Удаление и обновление данных остаются доступными.

  • Для пользователей: при попытке записи данных (например, upsert) возвращается ошибка:

    {
    "error": "write is forbidden"
    }
    

    Операции поиска (search) и удаления (delete) продолжаются без ограничений.

Технические аспекты:

  • Блокировка действует до следующего перезапуска Vector DB.

  • В распределенной системе требуется синхронизация блокировки на всех узлах.