Twitter открыл код своих улучшений к MySQL
10 апреля 2012 года
Twitter опубликовал код своих дополнений и улучшений к MySQL, развиваемых в рамках ветки Twitter MySQL 5.5. В настоящее время СУБД MySQL продолжает использоваться в качестве основного хранилища данных в Twitter, например, в MySQL хранятся непосредственно твитты, пользовательские данные, информация о сроках, связях и интересах. В процессе роста сервиса и повышения требований к масштабируемости, разработчикам из компании Twitter пришлось внести ряд изменений и улучшений в MySQL, которые поддерживались в рамках внутреннего форка данной СУБД. Отныне все наработки, связанные с данным форком, открыты и доступны для интеграции в сторонние проекты и основную кодовую базу MySQL. Созданный в Twitter код открыт под лицензией BSD (MySQL распространяется под лицензией GPL).
Из возможностей, добавленных компанией Twitter, можно отметить:
- Дополнительные переменные для оценки состояния СУБД и внутренних параметров InnoDB. Переменные позволяют организовать расширенный и более эффективный мониторинг работы СУБД, более точно оценить поведение в условиях реальной нагрузки. Например, представлена информация об открытии и закрытии файлов, числе выявленных deadlock, идентификаторов последовательностей бинарного лога;
- Оптимизация распределения памяти при работе на больших системах на базе архитектуры NUMA: полное выделение памяти для буферов InnoDB производится на этапе запуска; более быстрая обработка ситуации нехватки памяти; обеспечение предсказуемой производительности в любое время, даже в условиях дефицита свободной памяти;
- Сокращение излишней работы за счёт расширения средств управления таймаутами на стороне сервера. В частности, реализована возможность принудительного прекращения выполнения запросов, которые выполняются дольше указанного таймаута;
- Поддержка быстрого и надёжного экспорта и загрузки содержимого пула буферов InnoDB, что позволяет обеспечить моментальный разогрев базы после перезапуска и свести к минимуму негативные эффекты при необходимости остановки сервисов;
- Оптимизация MySQL для SSD-накопителей, в том числе реализация нового метода сброса буферов и сокращение числа операций записи в процессе работы.
Кроме того, на предстоящей конференции Percona Live MySQL, которая состоится 12 апреля, Twitter планирует представить открытый фреймворк Gizzard, предназначенный для организации шардинга данных поверх неоднородного распределённого кластера серверов MySQL. Фреймворк позволяет автоматизировать процессы распределения набора данных по серверам на основе определенного ключа (партицирование) и обеспечить необходимый уровень резервирования за счёт репликации одного набора данных на несколько серверов. Система также поддерживает методы разрешения конфликтов и средства восстановления в случае сбоя в работе отдельных узлов.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.