Продолжая делиться разработанным внутри компании ПО, 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.
Источник
Комментариев нет:
Отправить комментарий