Инженерные команды Facebook, Google, LinkedIn и Twitter начали работу над проектом WebScaleSQL, представляющим собой версию СУБД MySQL, ориентированную на работу с большими массивами данных в интернет-среде. Об этом рассказал в блоге Facebook инженер по программному обеспечению MySQL Стефан Грин. “Получив опыт создания надежных платформ для работы 1,23 млрд. человек в Facebook, мы научились работать с расширяемыми и экстра-большими инфраструктурами”, — написал он.
Эти компании начали работать над WebScaleSQL несколько месяцев назад, взяв за основу MySQL 5.6. Над проектом работают те же разработчики, которые принимают участие в развитии MySQL. Основатели проекта рассчитывают, что к ним подключатся сторонние разработчики. К сегодняшнему дню участники WebScaleSQL создали систему совместного написания кода, позволяющую проверять код и сообщать об ошибках в нем.
Переход к совместной разработке позволит избавиться от выполнения дублирования работы в каждой из компаний-участников проекта, упростит процесс разработки новых возможностей и увеличит эффективность тестирования. Вместо параллельного развития близкой по своей сути функциональности в рамках WebScaleSQL будет поддерживаться наиболее эффективный вариант. Кроме того, ожидается увеличение качества и надёжности кода, так как больше людей будут заниматься аудитом изменений.
“Наша цель при запуске WebScaleSQL — обеспечить более тесное сотрудничество между членами сообщества MySQL, ориентированными на высокую нагрузку, чтобы они могли сосредоточиться на тех аспектах, которые наиболее важны именно для них. Если разработчик хочет внести изменение в код, он вносит соответствующее предложение в систему. Затем его коллега из другой компании знакомится с этим предложением и добавляет свои комментарии. Если оба соглашаются с итоговой версией изменений, новый код распространяется среди всех участников”, — пишет Грин.
У всех этих компаний есть общая черта: им приходится обслуживать сайты с беспрецедентно высокой посещаемостью. К примеру, социальная сеть Facebook насчитывает более миллиарда активных пользователей, и этот показатель продолжает расти. Два года назад, когда у неё было лишь 800 млн. пользователей — около 65% сегодняшнего уровня, — серверы MySQL, используемые Facebook, исполняли 60 млн. запросов в секунду.
В ближайшем будущем партнеры намерены проработать улучшенное функционирование буфера обмена СУБД, оптимизировать работу с определенными типами данных, поддерживать политики NUMA, а также систему тестирования на экстра-больших массивах данных. Из ещё не добавленных в WebScaleSQL возможностей, над которыми ведётся работа, отмечены вариант MySQL-клиента, работающий в асинхронном режиме, что позволяет в процессе запроса MySQL не дожидаться завершения установки соединения, отправки и приёма данных; поддержка дополнительной статистики для таблиц и сжатию данных; доработка используемой в Facebook реализации системы сжатия хранимых данных и др.