RSS Etsy Engineering | Code as Craft
Подписаться
Миграция шардинга базы данных Etsy на Vitess
Архитектура базы данных Etsy с 2010 года опиралась на шардированные кластеры MySQL, управляемые собственной ORM. Эта система, состоящая из тысяч шардов, сталкивалась с проблемами ручного масштабирования и единой точкой отказа в индексной базе данных. Индексная база данных хранила отображения шардов, что мешало ORM эффективно маршрутизировать запросы и вызывало потенциальные сбои на сайте. Чтобы решить эти проблемы, Etsy внедрила Vitess, инструмент масштабирования баз данных с открытым исходным кодом, в 2018 году. Они реализовали пользовательские vindexes в Vitess для репликации существующей логики шардирования, избегая полной миграции данных. Это включало создание vindexes поиска SQLite и гибридных vindexes для постепенного перехода. Миграция на Vitess выполнялась поэтапно, таблица за таблицей, чтобы минимизировать риски и проверить несовместимость запросов. Проблемы с транзакциями баз данных потребовали одновременной миграции связанных таблиц, подчеркивая взаимозависимости. Возможности Vitess по перекрестным запросам к шард значительно улучшили производительность, хотя разбросанные запросы тщательно управлялись. В конечном итоге, миграция на Vitess устранила единую точку отказа и упростила доступ к данным для разработчиков, одновременно обеспечив почти незаметное улучшение производительности для пользователей. Переход также значительно улучшил ручное масштабирование и включил новые функции Vitess.