Авторы Facebook выпустили скрипт для MySQL на базе openarkkit
Марк Каллагэн (Mark Callaghan), работающий в социальной сети Facebook над оптимизациями в области баз данных, представил релиз кода инструмента Online Schema Change (OSC) для MySQL.OSC написан на языке PHP и предназначен для проведения изменений в схеме базы данных, управляемой MySQL, в режиме реального времени. Основная проблема с этой процедурой заключается в том, что обычное использование выражений ALTER TABLE может выполняться очень длительное время для больших таблиц.Предлагалось такое решение проблемы: изменения в схеме БД сначала производятся на slave-сервере, после чего он объявляется новым master-сервером. Но тогда необходимо, чтобы slave-сервер располагался вблизи master...Далее автор пишет: «В MySQL 5.0 появилась поддержка триггеров, и некоторые системы репликации построены с использованием триггеров для отслеживания момента изменения строк. Почему бы не использовать триггеры для нашей задачи? В наборе инструментов openarkkit эту проблему именно так и решает oak-online-alter-table. Мы опубликовали свою версию утилиты для проведения онлайн-изменений схемы (OnlineSchemaChange.php aka OSC)», — после чего приводит большую техническую выдержку, описывающую принципы работы OSC.Исходный код от Facebook, в котором используются и наработки упомянутого openarkkit, доступен на bazaar.launchpad.net/~mysqlatfacebook.© nixp