Uber оптимизировал управление своими OpenSearch-кластерами, обеспечив 100% назначенных шардов даже во время сбоев в физических зонах. Это решение особенно актуально для разработчиков, занимающихся высоконагруженными системами.
Проблема ассиметрии зон
Физические зоны обычно имеют разное количество узлов. Это приводит к сбоям в логике распределения шардов OpenSearch, оставляя кластеры в желтом состоянии с неподписанными шардом. Для решения проблемы Uber предложила систему изолированных групп (IG), которая гарантирует равное количество узлов в каждой группе, позволяя избежать потери данных.
Как работает система изолированных групп
Система IG обеспечивает изоляцию между физическими зонами и логикой расположения шардов OpenSearch. Благодаря этому, даже при сбое в зоне, потеря производительности составляет не более 33%. Каждый индекс имеет минимум 2 реплики (всего 3 копии шардов), что создаёт дополнительную устойчивость при потере одной группы.
Кроме того, Uber использует 5 управляющих узлов для поддержки кворума, что позволяет кластеру оставаться работоспособным даже при потере двух узлов. Такой подход минимизирует риск потери данных и обеспечивает стабильную работу системы.
Практическое значение для разработчиков
Для команд, работающих с OpenSearch или Elasticsearch, новая система IG от Uber — это возможность значительно повысить надёжность своих кластеров. Подход можно внедрить без необходимости модификации движка поиска, что делает его доступным для широкого круга разработчиков. На российском рынке это решение может стать оптимальным выбором для компаний, работающих в среде высокой нагрузкой.
Следующий шаг для Uber — продолжить мониторинг работы IG и расширение этого подхода на другие компоненты своей инфраструктуры.