Новая быстрая библиотека хранения ключей и значений


Google выпустила быструю и легкую библиотеку баз данных ключей и значений, которая поддерживает упорядоченные данные. База данных LevelDB становится доступной с открытым исходным кодом под лицензией в стиле BSD.

Согласно сообщению в блоге Google с открытым исходным кодом, LevelDB-это библиотека C++, которая подходит для использования в таких контекстах, как веб-браузер для хранения кэша недавно посещенных веб-страниц, или операционная система для хранения списка установленных пакетов и зависимостей пакетов, или приложение для хранения настроек пользовательских предпочтений. LevelDB также используется в будущих версиях браузера Chrome, который включает в себя реализацию API HTML5 IndexedDB, построенного поверх LevelDB. База данных LevelDB уже портирована на различные системы на базе Unix, Mac OS X, Windows и Android.

Команда Google говорит, что LevelDB отличается от аналогичных систем, таких как SQLite и Kyoto Cabinet, оптимизацией для пакетных обновлений, которые изменяют множество ключей, разбросанных по большому пространству ключей, и указывает, что это важное требование для эффективного обновления инвертированного индекса, который не помещается в память.

Ключи и значения в базе данных LevelDB представляют собой произвольные массивы байтов, а значения данных хранятся по ключу. Основными операциями,которые вы можете использовать, являются Put(ключ, значение), Get(ключ) и Delete(ключ). Вы можете внести несколько изменений в один атомарный пакет и создать временный снимок, чтобы получить согласованное представление данных. По данным поддерживается прямая и обратная итерация, и данные автоматически сжимаются с помощью библиотеки сжатия Snappy.

Внешняя активность (операции с файловой системой и т. Д.) ретранслируется через виртуальный интерфейс, Поэтому пользователи могут настраивать взаимодействия с операционной системой, а вызывающие абоненты могут предоставить пользовательскую функцию сравнения для переопределения порядка сортировки.

Вы не должны думать о LevelDB как о базе данных в том смысле, в каком будет использоваться база данных SQL. У него нет реляционной модели данных, он не поддерживает SQL-запросы и не поддерживает индексы. Только один процесс (возможно, многопоточный) может одновременно обращаться к определенной базе данных, и в библиотеку не встроена поддержка клиент-сервер. Приложение, которое нуждается в такой поддержке, должно будет обернуть свой собственный сервер вокруг библиотеки.

База данных LevelDB доступна в коде Google: http://code.google.com/p/leveldb


Добавить комментарий