-
Notifications
You must be signed in to change notification settings - Fork 5.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is SQLite fit as a backend for KV? #18657
Comments
LSM-tree backends like LevelDB or RocksDB are generally heavier than SQLite, both in binary size and runtime overhead. For example, they need to spawn a thread for merging the parts in the background. |
There's a nice comparison here: https://www.slideshare.net/InsightTechnology/dbtstky2017-c23-sqlite SQLite4 (now dead) tried to follow the LSM path. Highlights:
|
SQLite is fast. I was in a talk by Dr. Hipp regarding his continued work on SQLite and people don't fully appreciate how optimized the performance really is. If you send him an email with a slow query, he often is willing to spend some time trying to optimize SQLite for your query (happened for me a couple of times). |
Related: #18975 There's already a very good lmdb-js, which the author states has "pretty direct mappings" to Deno.KV |
Resources:
Heed is the LMDB wrapper for Rust recommended by LMDB's author. I'm just worried that I found lots of dead repos with stale issues related to LMDB. |
The unstable key-value store is implemented in SQLite now, however there are more lightweight and better performing key-value store backends.
Why not choose a better one, like Chrome stopped using SQLite and developed LevelDB for IndexedDB?
The text was updated successfully, but these errors were encountered: