«Появление версии 7.2 – это большой шаг вперед, который позволит MySQL Cluster упрочить свое положение на рынке веб-технологий», – отметил Томас Улин, вице-президент Oracle, курирующий развитие MySQL.
Помогут в этом две новые особенности продукта. Во-первых, поддержка интерфейса Memcached; данный API позволяет приложениям получать доступ к данным напрямую, а не через механизм SQL. Кроме того, реализован более быстрый способ выполнения сложных запросов и запросов, которые предусматривают операции объединения нескольких таблиц.
«Благодаря двум новым возможностям MySQL Cluster способен создать наилучшие условия для работы с СУБД как стандарта SQL, так и NoSQL, – пояснил Улин. – Он вполне может соперничать по скорости с быстрыми ключевыми операциями NoSQL, одновременно поддерживая сложные запросы к обычным базам данных SQL».
Программное обеспечение MySQL Cluster представляет собой вариант СУБД MySQL с открытым кодом, специальным образом настроенный для работы с несколькими серверами. В случае отказа какого-то сервера или узла кластер сохраняет все данные и продолжает работать так, словно ничего не произошло. Архитектура MySQL Cluster не предусматривает разделения ресурсов – в кластере нет совместно используемой памяти или дискового пространства. Благодаря такому решению достигается очень высокая масштабируемость систем, которые могут включать фактически неограниченное число серверов или узлов.
MySQL Cluster традиционно широко применяется в телекоммуникационной отрасли. «Встретить мобильные сети, в которых развернуто программное обеспечение MySQL Cluster, можно на любом континенте, – подчеркнул Улин. – Телекоммуникационные компании привлекает простота масштабирования и возможность аннулирования данных, независимо от того, как давно они были записаны на диск. Не последнюю роль играет и то, что MySQL Cluster может работать на обычных недорогих серверах».
«В новой версии мы оснастили MySQL Cluster новыми функциями, благодаря которым это программное обеспечение хорошо подходит для работы с крупномасштабными веб-приложениями, – отметил Улин. – Мы много раз наблюдали за слиянием телекоммуникационных и веб-систем. Сегодня веб-приложениям присущи потребности, характерные ранее для телекоммуникационной отрасли: малое время задержки, высокий уровень готовности и масштабируемости. Новый продукт в полной мере отвечает этим требованиям. Программное обеспечение хорошо подходит для решения задач, связанных с работой веб-сервисов, — например, управления пользовательскими профилями, управления сеансами, сетевых игр и оперативной обработки транзакций».
MySQL Cluster 7.2 – первая версия MySQL, предоставляющая доступ к данным через API Memcached. Технология Memcached, используемая сегодня многими крупными поставщиками веб-сервисов (в том числе и Facebook), формирует хэш-таблицу элементов базы данных, обращение к которым осуществляется чаще всего. Они хранятся в рабочей памяти сервера для обеспечения быстрого доступа к ним посредством функций API.
«Технология Memcached зарекомендовала себя как весьма полезная вещь, – отметил Курт Монаш из компании Monash Research. – Продажи СУБД Couchbase NoSQL, построенной на основе Memcached, идут весьма неплохо. СУБД MySQL всегда отличалась хорошей производительностью, даже когда данные хранились в виде пар ключ-значение. Есть все основания рассчитывать, что использование интерфейса Memcached будет способствовать еще большему увеличению быстродействия».
MySQL Cluster обеспечивает вполне сравнимый по скорости доступ и с помощью NDB, API сетевых баз данных. Однако этот API представляет собой проприетарную разработку Oracle. Использование Memcached поможет администраторам, которые уже знакомы с этой технологией, без особого труда освоить MySQL Cluster.
В программном обеспечении появилась функция адаптивной локализации запросов, позволяющая сократить время, которое требуется для выполнения сложной выборки. «Сложные объединения всегда считались ахиллесовой пятой СУБД, использующих SQL, – признал Улин. – Для таких запросов характерна выборка из нескольких таблиц, представляющая собой операцию, которая требует интенсивных вычислений, особенно на больших наборах данных».
В предыдущих версиях продукт MySQL Cluster должен был обрабатывать сложные запросы, собирая данные на сервере и выполняя объединенные операции.
«Для того чтобы получить всего несколько строк результирующей информации, приходилось перелопачивать на сервере MySQL 2 Гбайт данных», – пояснил Улин.
При адаптивной локализации запросов наибольший объем вычислений осуществляется на серверах, где хранятся данные. Перекрестное индексирование, как правило, выполняется на отдельных узлах, и лишь потом нагрузка переносится на сервер, отвечающий за выполнение запроса. При таком подходе скорость получения результатов может в 70 раз превышать ту производительность, которую мы имели в предыдущих версиях MySQL Cluster.
«Новый функционал действительно расширяет возможности кластеризации MySQL», – подчеркнул Улин.
Программное обеспечение поддерживает и целый ряд других новых возможностей. Одна из них заключается в распределении отдельных узлов данных между несколькими ЦОД. Программное обеспечение позволяет администраторам разделять таблицы привилегий пользователей между несколькими узлами, благодаря чему исключается необходимость определения прав доступа пользователей на каждом сервере.
Помимо модернизации MySQL Cluster компания сертифицировала программное обеспечение, подтвердив его совместимость со средой виртуальных машин Oracle. Кроме того, корпорация Oracle обновила автономный пакет автономного администрирования MySQL Cluster Manager до версии 1.1.4.
Программное обеспечение MySQL Cluster можно бесплатно загрузить с сайта разработчика. Oracle предлагает также платные услуги технической поддержки MySQL Cluster Carrier Grade Edition Subscription, стоимость которых составляет от 10 тыс. долл. в год за серверы, содержащие от одного до четырех процессоров.