Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I would be curious how this compares to LMDB. They both use B+Trees (which are just B-trees with siblings linked).

Limiting values to 255 bytes is quite constraining, to say the least.

Also, it seems that there are no transactions in kivaloo. That makes a big difference.



It's rather hard to compare. My understanding is that LMDB is a library which accesses a shared memory-mapped file; kivaloo is a collection of daemons which are accessed via the network or a unix socket. I guess you could place a network protocol front-end on top of LMDB and compare that to kivaloo?

And sure, small values and a lack of transactions are intentional limitations which allowed me to improve performance for the use case I cared about. Of course there's nothing stopping you from constructing that functionality in other ways; in fact I'm planning on releasing a daemon which provides key-blob storage by storing large objects in Amazon S3 and using the core kivaloo functionality as an indirection table.


B+tree is a B-tree with no data except at the leaves, and with sibling leaves linked.


The "sibling leaves linked" criterion is optional for B+trees. Kivaloo does not do that (it isn't possible for an append-only data structure).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: