Facebook открыл код инструмента для ускорения смены схемы данных в MySQL

Материал из Викиновостей, свободного источника новостей

22 сентября 2010 года

Разработчики социальной сети Facebook сообщили об открытии утилиты OSC (Online Schema Change), позволяющей обеспечить возможность изменения на лету схемы представления данных в MySQL. По заявлению разработчиков использование классической операции "ALTER TABLE" для изменения структуры реплицированной на многие серверы базы выполняется слишком долго, поэтому для ускорения в OSC задействованы триггеры MySQL 5.0 для выполнения операций ALTER TABLE в неблокирующем режиме.

Алгоритм OSC сводится к выполнению полного копирования данных во временную таблицу; изменению схемы временной таблицы без блокирования работы основной таблицы; синхронизации из основной таблицы всех данных, изменившихся с момента копирования (используются триггеры); замене базовой таблицы на подготовленную временную таблицу с новой структурой. Интересно, что по словам представителя Facebook ранее изменение схемы на тысячах серверов проекта, с учетом постепенного проведения операции на небольшом числе машин во время минимальной активности, занимало до 6 месяцев, в то время как OSC позволил выполнить операцию на всех серверах разом и произвести изменение схемы за пол дня, без остановки работы сервиса.

Технология основана на коде утилиты oak-online-alter-table (Архивная копия от 15 ноября 2010 на Wayback Machine) из набора openark kit. В Facebook утилита переписана на PHP, расширена поддержкой проверки внешних ключей, более тонким контролем возможных нештатных ситуаций, оптимизирована для более быстрого сканирования таблиц и диапазонов первичных ключей.

Источники[править]

Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Facebook открыл код инструмента для ускорения смены схемы данных в MySQL», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.