четверг, 5 декабря 2013 г.

Facebook открывает исходные коды встраиваемого хранилища данных

Продолжая делиться разработанным внутри компании ПО, Facebook выпустила открытое встраиваемое хранилище данных RocksDB, разработанное для ускорения доставки контента своим 1,2 млрд. пользователей.


Компания опубликовала код базы данных на Github в надежде, что он будет интересен другим разработчикам и они смогу его усовершенствовать. Благодаря акценту Facebook на масштабируемости, RocksDB представляет интерес для других интернет-сервисов и предприятий, разрабатывающих приложения с интенсивным обменом информацией.

RocksDB присоединяется к другому “освобождённому” ПО, выпущенному Facebook. В этом году компания опубликовала исходный код виртуальной машины HipHop PHP, движка запросов Presto, программы интеллектуального кэширования Flashcache и Corona , планировщика задач для Hadoop, Все продукты изначально были разработаны для внутреннего использования.

RocksDB — не является SQL совместимой или документ-ориентированной базой данных. Она не способна выполнять индексирование и парсить SQL-запросы. По сути это постоянное хранилище пар ключ-значение, разработанное для быстрой доставки контента пользователям, как сообщается в посте инженера команды разработки баз данных Facebook Дхруба Бортакура.

RocksDB написана на C++ как библиотека и её можно встроить в другие приложения, особенно требующие доступа к крупным наборам данных с очень малой задержкой - например, приложение для обнаружения спама или поисковые движки.

По сути, разработка является ветвью LevelDB, простого не-SQL хранилища данных для прочтения, записи и удаления данных. Однако, Facebook обнаружила, что LevelDB плохо справляется с наборами данных, которые не помещаются в рабочую память сервера, поэтому инженеры решили внести соответствующие изменения.

Кроме того, Facebook сделала возможным работу LevelDB на нескольких процессорных ядрах сервера. Благодаря этому, она поддерживает невероятно быстрый ввод/вывод: тесты Facebook показали, что хранилище данных в 10 раз быстрее выполняет операции случайной записи и на 30% быстрее — случайно чтение по сравнению с LevelDB.

Источник

Комментариев нет:

Отправить комментарий