У самой популярной сегодня Open Source СУБД MySQL, перешедшей под контроль Oracle после покупки ею компании Sun Microsystems в 2010 г., есть отдельная кластерная версия MySQL Cluster для задач, требующих повышенной отказоустойчивости и линейной горизонтальной масштабируемости. Разработка ее началась в 2004 г. спустя десять лет после появления стандартной MySQL, то есть еще до того, как фирма MySQL была куплена Sun. Развитие ее продолжилось и под крылом Oracle, которая недавно представила очередную версию MySQL Cluster 7.4. По словам вице-президента Oracle по разработке MySQL Томаса Улина, в ней не появилось каких-либо принципиально новых функций, но все существующие заметно усовершенствованы.

В частности, максимальное число узлов кластера осталось тем же, но в самых больших конфигурациях удалось существенно (до 50%) увеличить производительность. К возможности выполнять сложные операции соединения (join) добавилась функция их распараллеливания между узлами кластера с последующей консолидацией результатов, что заметно улучшило масштабируемость. В подобных задачах особую важность приобретает скорость сканирования таблиц, которая в данной версии тоже была повышена.

Улучшены также средства управления и администрирования. Так, присутствовавшая ранее возможность прозрачного добавления нового узла в кластер потребовала функций контроля распределения данных между узлами (в MySQL Cluster принята модель без разделения системных ресурсов). Поскольку отдельные таблицы БД могут храниться in-memory и распределяться по оперативной памяти разных узлов кластера, операции удаления в них должны сопровождаться перераспределением данных по узлам и высвобождением ресурсов ОЗУ для последующего использования. Эти функции появились в версии 7.4.

MySQL Cluster спроектирована таким образом, что в ней отсутствует возможность отказа при выходе из строя одного из узлов. В частности, с этой целью завершение транзакции фиксируется только после синхронной репликации всех изменений на разные узлы кластера. Наряду с этим поддерживается и асинхронная репликация, которая в MySQL Cluster называется географической и применяется для обеспечения катастрофоустойчивости путем резервирования кластеров в географически удаленных дата-центрах. В версии 7.4 подобная репликация получила дальнейшее развитие, что, по словам Томаса Улина, позволило сузить временные окна для оперативной технической поддержки. Это особенно важно для компаний с бизнесом, географически распределенным по множеству часовых поясов (телекоммуникационных операторов, онлайновых ритейлеров).

Версия для печати