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
404 Not Found
404 Not Found The requested URL was not found on this server. Sorry for the inconvenience. Please report this message and include the following information to us. Thank you very much! URL: http://u...