Facebook открыл код инструмента для ускорения смены схемы данных в MySQL
Алгоритм OSC сводится к выполнению полного копирования данных во временную таблицу; изменению схемы временной таблицы без блокирования работы основной таблицы; синхронизации из основной таблицы всех данных, изменившихся с момента копирования (используются триггеры); замене базовой таблицы на подготовленную временную таблицу с новой структурой. Интересно, что по словам представителя Facebook ранее изменение схемы на тысячах серверов проекта, с учетом постепенного проведения операции на небольшом числе машин во время минимальной активности, занимало до 6 месяцев, в то время как OSC позволил выполнить операцию на всех серверах разом и произвести изменение схемы за пол дня, без остановки работы сервиса.
Технология основана на коде утилиты oak-online-alter-table из набора openark kit. В Facebook утилита переписана на PHP, расширена поддержкой проверки внешних ключей, более тонким контролем возможных нештатных ситуаций, оптимизирована для более быстрого сканирования таблиц и диапазонов первичных ключей.
Источник: http://www.opennet.ru/opennews/art.shtml?num=28046
|
0 | Tweet | Нравится |
|