Twitter открыл код своих улучшений к MySQL | ||
Программирование | ||
Twitter опубликовал код своих дополнений и улучшений к MySQL, развиваемых в рамках ветки Twitter MySQL 5.5. В настоящее время СУБД MySQL продолжает использоваться в качестве основного хранилища данных ... |
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. Фреймворк позволяет автоматизировать процессы распределения набора данных по серверам на основе определенного ключа (партицирование) и обеспечить необходимый уровень резервирования за счёт репликации одного набора данных на несколько серверов. Система также поддерживает методы разрешения конфликтов и средства восстановления в случае сбоя в работе отдельных узлов.