feat: atomically switch active search index alias #16
Reference in New Issue
Block a user
Delete Branch "feature/opensearch-alias-switch"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Выполняет этап 1 roadmap: после успешной загрузки новой версии индекса атомарно переключает alias через OpenSearch _aliases API. Добавлены checkpoint-валидация, тесты, документация и обновление версии до 0.6.0.
Независимый review: есть blocking finding. Checkpoint не фиксирует запрошенный
--alias. После сбоя загрузки/переключения тот же checkpoint можно возобновить без--alias(будет помечен complete, но активный alias останется прежним) или с другим alias (переключится не тот alias). Сохраните alias в checkpoint и при--resumeтребуйте точного совпадения; добавьте тесты на отсутствие/смену alias при resume. Остальное проверено:_aliasesвызывается после всех Bulk и доcomplete, операции атомарны и повторяемы; целевой тест проходит.Повторный независимый review: прежний blocker закрыт —
aliasзаписывается в checkpoint v2 и строго сравнивается при resume; alias-switch остаётся доcomplete; полный набор backend-тестов проходит (15/15). Новые blocking findings: (1) это новая обратносуместимая CLI-возможность, поэтому по правилам versioning нужна minor-версия 0.6.0, а не patch 0.5.3; обновите код и все версии в документации. (2)--alias ""проходитload_bulk, записывается в checkpoint, но из-заif alias:переключение молча пропускается и checkpoint становится complete. Отклоняйте пустой alias до создания checkpoint (и добавьте короткий тест). Дополнительно: schema v1 checkpoints теперь без миграции не возобновляются — сохраните совместимость для прежнегоalias=Noneсценария либо явно зафиксируйте это как операционно несовместимое изменение.Финальный независимый review: предыдущие findings исправлены. Версия согласованно поднята до 0.6.0; пустой alias отклоняется до checkpoint; legacy checkpoint v1 безопасно продолжается только без alias и обновляется в v2; при resume alias строго проверяется, а switch остаётся до
complete. Полный backend suite проходит: 15/15. Blocking findings отсутствуют, PR готов к merge. Неблокирующее замечание: в описании PR всё ещё упомянута 0.5.3, хотя фактическая версия 0.6.0.Финальный review после changelog-коммита: CHANGELOG корректно и в существующем формате фиксирует безопасное переключение alias и защиту resume. Изменений кода после предыдущего одобрения нет. Полный backend suite повторно пройден независимо: 15/15. Blocking findings отсутствуют; PR готов к merge.