TreeDb key/value noSQL database

  • View
    1.835

  • Download
    4

  • Category

    Travel

Preview:

DESCRIPTION

TreeDb is key/value noSQL database, based onе the TocyoCabinet and libevent. It is OpenSource product under LGPL.This database use the rb-Tree index for key storage. The feature of this solution is the use of composite keys, and ability of choice of regions keys by mask or pattern.

Citation preview

TreeDb – key/value хранилище для небольших проектов

Александр Календарев

Особенность хранилищаОснован на B+ Tree структуре данныхИмеет составные ключи Возможен доступ по маске

Похожие проектыTokyo TyrantMemcached MemcacheDbMembaseRedisTarantool

ЗависимостиTokyo Cabinet

http://fallabs.com

Libevent http://monkey.org/libevent

РеализацияМногопоточный демон (16 потоков)Отдельный поток на сохранение данных

Что не хватает?РепликацияМасштабированиеТранзакции

ПротоколТекстовыйПостоянное соединение

КомандыSet – положить в БДGet – Взять из БДStat – посмотреть статистикуDel – удалить из БД

КомандыSize – определить размер данныхFind – найти ближайший ключFLUSH – Отчистить БДQuit – закончить соединение

ПримерSet \t foo \t 12345 \t bar \t baz \n0 \t foo \n0 \t bar \n код ответа сервера на каждый оператор

0 – успех, другое значение - код ошибки

Пример

GET \t foo \t bar \n0 \t foo \t 5 \n12345 \n 0 \t bar \t 3 \nbaz \n

код ответа сервера на каждый оператор

Пример Set \t foo.a \t 12345 \t foo.b \t baz \n0 \t foo.a \n0 \t bar.b \n

Пример Get \t foo.* \n0 \t foo.* \t 2\n0 \t foo.a \t 5 \n12345 \n 0 \t bar.b \t 3 \n baz\n

Пример Stat \nrum 22098 кол-во вершин в BTreesize 135680 размер файлаset 3342 кол-во set операцийget 4232 кол-во get операцийdel 0 кол-во del операцийmiss 1 кол-во не найденных ключейlast 0 последнее кол-во сохраненых записейthreads 8 кол-во запущенных потоковthread_num 7 текущий номер потокаconnections 1 кол-во одновременных соединенийerrors 0 кол-во ошибок, кроме misstime 12707 время в сек с последней загрузки или flush

ОграниченияОдна команда не более 16К(перекомпиляция)

Символы tab и enter в данных должны ЭкранироватьсяОграничения на имена ключей

Клиентсткие библиотекиКласс PHP нативный протоколПланируется клиент на CПланируется PHP расширение

Производительность

ПланыНаписание клиентских библиотекДобавить очередиРасширить функционал фильтрацииМасштабирование libketamaПротокол memcached

Recommended