slowpoke - data engine

slowpoke - data engine

сегодня наконец состоялся долгожданный релиз движка баз данных slowpoke:
github.com/recoilme/slowpoke

к
моему удивлению, несмотря на простоту дизайна, разработка заняла более месяца. правда по сути за это время было написано несколько вариантов.

slowpoke это простая, хорошо масштабируемая key/value база данных с удобным минималистичным апи. скорость была отодвинута на задний план, но к моему удивлению она оказалась не намного медленней популярных аналогов (я рассматриваю прежде всего boltdb). а в каких то уникальных кейсах и на порядки быстрее.

апи слоупоке состоит всего из нескольких команд:
- set/get
- sets/gets
- keys и close

в конечном варианте я полностью отказался от сторонних библиотек и реализовал весь функционал на стандартной библиотеке golang. в отличие от аналогов (rocksdb, leveldb, boltdb, badger и тд) - в апи встроены функции для работы с пулом ключей. основная команда для выборки значений - keys - позволяет получить отсортированный диапазон ключей с лимитом, офсетом, выбрать по значению или префиксу. в паре с keys можно использовать как gets - принимающий на вход масссив ключей, и возвращающий пары ключ/значение - так и sets - в свою очередь сохраняющий массив пар за один sync. при разработке я отталкивался от многочисленных кейсов, возникающих в реальных задачах и старался покрыть наибольшее их колличество, не перегрузив апи ненужным функционалом. в итоге есть и вторичные ключи и массовые операции и выборки - что уже позволило мне полностью отказаться от фаербейс и болтдб.

ну самое главное - в движке нет никакой "магии". ни lsm-tree, ни btree ни mmap ни прочих странных инженерных решений. при этом тот же sets - позволяет использовать ее и в типичных кейсах leveldb - для хранения например цепочки блокчейна, а быстродействие сохранено на приемлемом уровне. забавно читать в архитектуре других баз данных - я точно не понимаю как это работает, но думаю говард чу знает что делает. поэтому я сделал также. ok.

думаю у меня получилось лучше чем у говарда чу.

Ub.Com
UnitedBitcoin - LINKING VALUE & SERVING THE WORLD!
UnitedBitcoin is a super joint credit carrier with the target to establish a powerful global network and support the eco-system and improve collaboration by using credit from the UB foundation.