RocksDBВ последние года наравне с традиционными реляционными хранилищами такими как MySQL, PostgreSQL, Oracle, MS SQL активно стали использоваться NoSQL решения - Mongo, Cassandra, и д.р. К отдельному классу NoSQL хранилищ стоит отнести встраиваемые хранилища. Характерными представителями это класса хранилищ являются LevelDB, RocksDB, SQLite, BerkeleyDB. Об одном из низ и пойдет сегодня наша речь. RocksDB – гибкое производительное встраиваемое NoSQL хранилище, разработанное в Facebook. Оно рассчитано на использование на быстрых носителях, таких как SSD диски. Кодовая база в качестве основы использует LevelDB, разработанную Google. Но в Rocks были проведены следующие доработки:
Ниже проведен сравнительный тест RocksDB с LevelDB. Тестовая конфигурация: контейнер Digital Ocean, 4ГБ RAM, 2 Cores, 60GB SSD диск. В качестве ключа использовалось 3 unsigned int в Big Endian представлении.
На данный момент RocksDB активно используется в следующих компаниях: Facebook, LinkedIn, Yahoo, CoackroachDB, DNANexus и др. Ключами и привязанными к ним значениями могут выступать произвольные байтовые массивы данных. Связки ключ/значение хранятся в отсортированном по ключу упорядоченном виде, метод сортировки задаётся через задаваемую пользователем функцию сравнения (comparator). Управление данными производится через базовые операторы Put, Write (запись в пакетном режиме) , Get, MultiGet, Delete и Scan, RangeScan (переход на удовлетворяющие определённым критериям соседние элементы отсортированного списка). В рамках одной атомарной операции в базу может быть внесено сразу несколько изменений (Write). Поддерживается создание снапшотов со срезом состояния БД в текущий момент времени. Для контроля за возможным повреждением данных для каждого блока сохраняется контрольная сумма. RocksDB – это встраиваемое решение. И для того что бы ее можно было использовать ее нужно либо встроить в свое приложение, либо обернуть в сервер. Официально поддерживается API на C++ и Java. Ниже приведен фрагмент кода на C++ для работы ним:
02.04.2017 |
популярные тэги
наука
интересно
новости
технологии
история
go
golang
программирование
it
искусственный интеллект
путешествия
природа
космос
ai
базы данных
медицина
science
анализ текстов
ии
text mining
робототехника
авто
музыка
роботы
интернет
нейронные сети
robots
space
вокруг света
postgresql
алгоритмы
гитара
животные
оружие
google
nosql
авиация
здоровье
техника
auto
|