2 ms·
Show HN: PearlDB = LMDB and H2O. REST key-value database server in C
- fiatjaf 11y agoThat's nice, but why would anyone use this instead of Redis, CouchDB or a local database?
- willemt 11y agoThe number one differentiator is the small size of the source code. If all you need is a key value server that does GET and PUT, then 1k lines would be easier to understand than +10k. The focus is on doing one thing and doing it well. Compared to Redis, PearlDB has durability for each PUT on by default. Redis doesn't support an HTTP REST interface out of the box. PearlDB's aim is to be a thin layer between the REST interface and the disk. I think this approach should be faster than Redis for durable PUTs, but that still needs to be confirmed through benchmarking. Can't compare to local databases because PearlDB is for setups where distributed nodes need access to a single database.
- stephenr 11y agoAny thoughts on how this could be replicated to multiple nodes?
- willemt 11y agoPearlDB doesn't manage replication yet. There are plans to use Raft to get a cluster that is linearisable. Right now you can put multiple Varnish nodes in front of one PearlDB node, and you'll get an eventually consistent database, ie. when the cache lease runs out it'll fetch the value from PearlDB.
- stephenr 11y agoRight I get that you can have multiple faux read nodes but I meant more like a active/standby or even active/active write nodes.
- willemt 11y agoNothing like active-standby or active-active at the moment. When Raft gets added in the future it'll have active-active at the cost of read and write performance.