Facebook представил WebScaleSQL, высоко масштабируемый вариант MySQL
27 марта 2014 года
Facebook анонсировал проект WebScaleSQL, в рамках которого подготовлена редакция MySQL 5.6 для использования в крупных web-проектах. WebScaleSQL является совместной разработкой компаний Facebook, Google, LinkedIn и Twitter, инженеры которых договорились объединить свои усилия в области оптимизации производительности и масштабируемости MySQL. При этом, WebScaleSQL не является форком MySQL, а представляет собой надстройку над основной кодовой базой Community-версии штатного MySQL от компании Oracle. Все наработки WebScaleSQL распространяются под лицензией GPLv2.
В качестве причины создания отдельного варианта MySQL, вместо развития таких проектов, как MariaDB, Percona Server и Drizzle, называется наличие в MySQL 5.6 пригодных для промышленного использования возможностей, достаточных для развития в качестве отправной точки. Тем не менее, по мере развития экосистемы, будет приниматься во внимание возможность задействования альтернативных решений. В WebScaleSQL воедино собраны внутренние патчи, применяемые в Facebook, Google, LinkedIn и Twitter, поэтому в качестве отправной точки для слияния разработок стало использование основной кодовой базы MySQL.
Переход к совместной разработке позволит избавиться от выполнения дублирования работы в каждой из компаний-участников проекта, упростит процесс разработки новых возможностей и увеличит эффективность тестирования. Вместо параллельного развития близкой по своей сути функциональности, в рамках WebScaleSQL будет поддерживаться наиболее эффективный вариант. Кроме того, так как больше людей будут заниматься аудитом изменений, ожидается увеличение качества и надёжности кода.
Из дополнительных возможностей WebScaleSQL отмечается:
- Автоматизированный фреймворк для проверки всех изменений с использованием встроенной системы тестирования MySQL;
- Новый набор для автоматизированного стресс-тестирования и оценки производительности;
- Серия изменений к оригинальному тестовому набору и структурам MySQL, направленных на обеспечение внесения безопасных изменений, которые раньше приводили к сбоям выполнения тестов или конфликтам;
- Серия улучшения для повышения производительности, включая улучшение механизма чистки пула буферов, дополнительные оптимизации некоторых типов запросов и поддержку политики чередования для NUMA;
- Новые возможности для упрощения применения в высоко масштабируемых системах. Например, режим super_read_only и возможность определения таймаутов на уровне долей секунды.
Из ещё не добавленных в WebScaleSQL возможностей, над которыми ведётся работа, отмечены:
- Вариант MySQL-клиента, работающий в асинхронном режиме, что позволяет в процессе запроса MySQL не дожидаться завершения установки соединения, отправки и приёма данных;
- Поддержка дополнительной статистики для таблиц, пользователей и сжатию данных;
- Используемая в Facebook реализация системы сжатия хранимых данных;
- Логический механизм упреждающего чтения (Read-Ahead), позволяющий заметно увеличить производительность (до 10 раз) операций последовательного полного перебора данных в таблицах, например, в процессе выполнения резервного копирования.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.