Follow

Is there any "sqlite killer"?

I mean a reliable data store, sql or not, which can be _painlessly_ integrated into an application?

· · Web · 10 · 8 · 4

@kornel Bonus points for a focus on a small and simple implementation rather than the best possible performance.

I have a few projects were I'm using sqlite but would be much better served with a simple and portable key/value store.

@ayo In my case I need multi-core performance. I ended up just loading a HashMap into RAM, but it's far from reliable, and the more I fix it, the more I reinvent a database, which makes me feel someone must have done this already.

@kornel @ayo I have used LMDB, but it isn’t painless. Be prepared to implement your own query boilerplate. It’s nice that it’s memory mapped and that you have one writer and N readers.

@kornel SQLite isn't super painless but its close as it gets right now IMO. Details of the filesystem make it very difficult to do datastore's reliably.

@peregrine I mean it's already wonderful compared to a real RDBMS that needs separate daemons, configs, ports, credentials, and can't be rsync-ed around.

@peregrine I should probably just use Postgres, but I can't be bothered to deal with PGDATA ever again.

@kornel TBH this is why I'm okay for paying for managed services when not using sqlite.

@kornel I've tried out DBM recently and was surprised how far you can get with it. It has many successors, like LMDB.

@kornel not even close, I don't think, but I'm very keen to learn about any project that gets anywhere near sqlite's level of quality

@kornel SQLite was the most painless of anything I tried.

@kornel for a souped up DBM which is painless (compared to LMDB, for example) I liked Tokyo/Kyoto cabinet: fallabs.com/kyotocabinet/

I haven't used it in a few years, though.

@kornel today I stumbled upon a new in-process KV store, and remembered about this thread, so here goes: sled.rs — note that I haven't tested it at all, looks neat on paper, claims that can be used from C even when implemented in Rust.

@reto My application is heavily multi-threaded, and all the threads spend 99% of time waiting for sqlite. Sqlite is extremely annoying with concurrent writes.

@kornel if "reliable" is one of your criteria.... why would you want to replace it? reliability can only come when something has been broken and fixed over and over, and it's a lot easier to get that with something popular

@kornel

probably you could be interested in recutils:

gnu.org/software/recutils/

Bu honestly i am fine with sqlite YMMV, though.

Bye!
C.

@Kornel @Adrian Cochrane There's always Berkeley DB with the SQL interface. No experience with it myself though.
Sign in to participate in the conversation
Mastodon

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!