Как Uber переписала шардирование Schemaless на Go без простоя
Подробный технический разбор миграции хранилища. Материал ценен схемой перехода между реализациями: новая сначала пропускала запросы к старой, затем команда переносила по одной операции.
Карта материала:
1. чтение выполняли обе реализации, после чего ответы сравнивали;
2. долю проверки меняли настройкой, поскольку она удваивала запросы к узлам хранения;
3. запись проверяли интеграционными тестами и тестовым трафиком: один запрос мог успешно выполниться лишь раз.
После миграции медианная задержка всех запросов уменьшилась на 85%, 99-й перцентиль на 70%, загрузка процессора более чем на 85%.
В разборе Uber Engineering стоит изучить совместимость и переключение долей трафика. Для критичного сервиса заранее разделите проверки чтения и записи.
Post #3034
74
