Facebook открыла исходники распределённой реляционной СУБД для работы с петабайтами

Компания Facebook открыла исходные коды Presto — новой распределённой системы управления базами данных, которая, с одной стороны, полностью поддерживает стандартный язык запросов SQL, а с другой — позволяет строить кластеры, состоящие из сотен узлов, и обрабатывать на них петабайты данных.

В дата-центрах Facebook хранится более 300 петабайт информации.
В дата-центрах Facebook хранится более 300 петабайт информации.

Это уже не первая попытка Facebook совместить удобство реляционных СУБД и масштабируемость, свойственную MapReduce и NoSQL-решениям. Несколько лет назад инженеры компании разработали систему хранения данных Hive. В отличие от Presto, её основой служила платформа Hadoop (открытая реализация концепции MapReduce). Кроме того, Hive не понимала SQL. Система использовала похожий, но не совпадающий язык запросов.

Создатели Presto пришли к выводу, что отказ от MapReduce значительно ускорит обработку запросов. И, судя по всему, не зря: их разработка на порядок превосходит Hive по эффективности загрузки процессора и времени задержки. 

В посте Мартина Траверсо, участвовавшего в работе над Presto, кратко обрисовывается архитектура Presto:

«Клиент отправляет SQL координатору Presto. Координатор разбирает запрос, анализирует его, а затем планирует исполнение запроса. Диспетчер соединяет конвейер исполнения, даёт поручения узлам, которые расположены ближе всего к данным, и следит за продвижением обработки. Клиент извлекает данные из внешней ступени, которая, в свою очередь, заимствует их с ещё более низких уровней».

На схеме этапы этого пути показаны в виде зелёных прямоугольников. Parser производит разбор, planner планирует, а scheduler — делит работу между серверами.

1467246_10151935581722200_1107575290_n

Presto реализована на Java. Более того, система способна компилировать в байт-код Java даже сами запросы SQL, причём делать это так, чтобы по возможности избежать проблем с выделением памяти и сборкой мусора. На этом превращения запроса на заканчиваются: виртуальная машина, исполняющая байт-код, «на лету» компилирует его в машинный код. В результате он выполняется ещё быстрее.

Разработка Presto началась около года назад. В начале 2013 года первые версии этой системы стали внедрять в Facebook. Весной соцсеть начала полномасштабный переход на Presto. Теперь она работает на нескольких гигантских кластерах (количество узлов в одном из них может достигать тысячи), ежедневно исполняя более 30 тысяч запросов к петабайту информации.

Исходные коды Presto опубликованы на сервисе Github: вот её репозиторий. Как в случае Hive, для новой системы в Facebook выбрали свободную лицензию Apache.




Коды для вставки в блог\форум

blog comments powered by Disqus


Вспомним другие новости из этого раздела?


Internet и сети

←+Ctrl+→

Интересные новости
На Южно-Украинской АЭС майнили криптовалюту, - СБУНа Южно-Украинской АЭС майнили криптовалюту, - СБУ
Facebook покажет пользователям, какие сайты передают данные об их поведенииFacebook покажет пользователям, какие сайты передают данные об их поведении
Googlebot получил поддержку Chrome 76Googlebot получил поддержку Chrome 76
Amazon прекратит уничтожать непроданные товары. Их отдадут нуждающимся
YouTube планирует прекратить показ таргетированной рекламы в детских видеоYouTube планирует прекратить показ таргетированной рекламы в детских видео
Блок рекламы


Похожие новости

Facebook покажет пользователям, какие сайты передают данные об их поведенииFacebook покажет пользователям, какие сайты передают данные об их поведении
Facebook наймет журналистов для работы над своим новостным разделомFacebook наймет журналистов для работы над своим новостным разделом
Глава FTC: разделить Facebook будет непростоГлава FTC: разделить Facebook будет непросто
Facebook отключает функцию чатов в группахFacebook отключает функцию чатов в группах
Facebook расширил фактчекинг на InstagramFacebook расширил фактчекинг на Instagram
Facebook вводит только два уровня конфиденциальности для группFacebook вводит только два уровня конфиденциальности для групп
Facebook нанимал людей для прослушивания аудиосообщений пользователей
Facebook работает над упрочением монолитности компанииFacebook работает над упрочением монолитности компании
Facebook будет платить СМИ по $3 млн в год за публикации в своей соцсетиFacebook будет платить СМИ по $3 млн в год за публикации в своей соцсети
Facebook работает над интеграцией Instagram Direct и MessengerFacebook работает над интеграцией Instagram Direct и Messenger
Последние новости

Подгружаем последние новости