AOSC — это open-source плагин от Atlassian для OpenSearch, который автоматизирует онлайн-миграцию индекса внутри одного кластера. Он позволяет перенести live-индекс в новый индекс с другими маппингом, настройками, количеством шардов или изменённой структурой документов. При этом исходный индекс большую часть времени продолжает принимать записи.
AOSC решает ключевую проблему с
_reindex, который копирует только текущее состояние данных и сам по себе не умеет докопировать новые записи и учитывать удаленные документы, появившиеся во время миграции. _split и _shrink тоже имеют ограничения, которые не позволяют перенести данные онлайн.Миграция в AOSC проходит по нескольким фазам: проверка источника/цели/алиасов, подготовка целевого индекса, заливка существующих документов, повтор новых операций и удалений, финальная проверка количества документов и переключение alias на новый индекс.
Во время заливки документов AOSC использует retention lease, чтобы история операций не была удалена, а затем воспроизводит изменения, которые произошли в источнике во время копирования. Это позволяет целевому индексу постепенно догнать live-индекс перед переключением.
Обратите внимание, полностью бесшовной миграция не является. Продолжительность окна зависит от размера индекса, нагрузки, числа шардов и скорости валидации.
Ну, и основное ограничение, AOSC работает только внутри одного OpenSearch-кластера и требует, чтобы приложение работало через alias, а не обращалось напрямую по имени индекса.
Статья в блоге OpenSearch
Репо на Гитхабе
@elasticsearch_ru
