> But notice the pattern: SQLite’s wins are on simple, single-row operations where both databases are already sub-millisecond. Stoolap’s wins are on the analytical and complex queries where the difference is 10x to 100x+.
So for a great many workloads, particularly multi-user, SQLite will be faster overall, as most application workloads will have many simple single/few row lookup operations per single/few row update operations, and an order of magnitude less complex analytical queries.
But this should be much faster for genuine analytical operations, and better suited to them due to support for things like temporal storage and queries.
Basically the age-old distinction between optimising for OLTP or OLAP operations.
I would like to see the actual test harness. A 100x improvement is do-able (you're trimming features basically) but I would like to see how you tested it
But I still agree - if the benchmark was in memory, Stoolap might be optimized for speed. Sqlite is optimized for persistence, so you have to benchmark on disk and compare how it performs when writes fail.
interesting, github says works for both olap+oltp but it was for go, does the same apply to rust as well? I want to try it in browser is wasm available somewhere or is there any plan to support it?
[Edit] looks like it is available for browser here https://stoolap.io/playground/
i will be trying it with my product this weekend, excited to see how it goes.
dspillett|10 days ago
So for a great many workloads, particularly multi-user, SQLite will be faster overall, as most application workloads will have many simple single/few row lookup operations per single/few row update operations, and an order of magnitude less complex analytical queries.
But this should be much faster for genuine analytical operations, and better suited to them due to support for things like temporal storage and queries.
Basically the age-old distinction between optimising for OLTP or OLAP operations.
murat3ok|10 days ago
ramon156|10 days ago
murat3ok|10 days ago
z3t4|11 days ago
pfix|11 days ago
But I still agree - if the benchmark was in memory, Stoolap might be optimized for speed. Sqlite is optimized for persistence, so you have to benchmark on disk and compare how it performs when writes fail.
moralestapia|10 days ago
I can tell you, for sure, that 0.01ms -> 0.001ms is a massive win in plenty of these environment.
Examples:
* embedded systems
* GPU code
* tight loops in C/Rust
and probably hundreds of other examples.
ignoramous|10 days ago
NAPI-RS has no serialisation overhead?
petesergeant|11 days ago
gomoboo|11 days ago
pdyc|11 days ago
tekkk|10 days ago
ramon156|10 days ago
I guess I'm a bit confused but don't want to read AI fuzz further
kitd|10 days ago
What makes you say that?
a project that went Go -> Rust -> Node?
The DB went from Go to Rust. The Node part is the Node DB driver
Does it not bind to your already built Rust tool?
It's in the 3rd paragraph.
I guess I'm a bit confused but don't want to read AI fuzz further
Personally, I'd learn to get used to it.