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

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6001
ОС: gnu/linux

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

Сообщение rssbot »


Разработчики социальной сети Facebook сообщили об открытии утилиты OSC (Online Schema Change), позволяющей упростить изменения на лету схему представления данных в MySQL. По заявлению разработчиков использование классической операции "ALTER TABLE" для изменения структуры реплицированной на многие сервера базы выполняется слишком долго, поэтому для ускорения в OSC задействованы триггеры MySQL 5.0 для выполнения операций ALTER TABLE в неблокирующем режиме. Алгоритм OSC сводится к выполнению полного копирования данных во временную таблицу; изменению схемы временной таблицы без блокирования работы основной таблицы; синхронизации из основной таблицы всех данных, изменившихся с момента копирования; замене базовой таблицы на подготовленную временную таблицу с новой структурой. Интересно, что по словам представителя Facebook ранее изменение схемы на тысячах серверов проекта, у учетом постепенного проведения операции на небольшом числе машин во время минимальной активности, занимало до 6 месяцев, в то время как OSC позволил выполнить операцию на всех серверах разом и произвести изменение схемы за пол дня, без остановки работы сервиса. Технология основана на коде утилиты oak-online-alter-table из набора openark kit. Для работы в качестве web-сервиса утилита переписана на PHP и расширена поддержкой проверки внешних ключей и оптимизирована для более быстрого сканирования таблиц и диапазонов первичных ключей.


Источник: http://www.opennet.ru/opennews/art.shtml?num=28046


оригинал на opennet.ru
Спасибо сказали:
Аватара пользователя
Dmitry Shurupov
Сообщения: 336
Статус: Open Source geek
ОС: Ubuntu Linux

Re: [ON] Facebook открыл код инструмента для ускорения смены схемы данных в MySQL

Сообщение Dmitry Shurupov »

Марк Каллагэн (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.

оригинал на www.nixp.ru
По-моему, это еще один повод перейти на Убунту.
Спасибо сказали: