> 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
You raises a valid point about this, added to repo: https://github.com/stoolap/stoolap-node/blob/main/benchmark....
But what is stoolap's binary size? Specifically, WASM size? wa-sqlite is 1.2 MBs.
I dont think the micro benchmarks are fair, as it really doesn't matter if something takes 0.01 ms or 0.001 ms even if its 10x faster.
Until it does ;)
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.
Blog post written with an LLM, a project that went Go -> Rust -> Node? Also, is it really native? Does it not bind to your already built Rust tool?
I guess I'm a bit confused but don't want to read AI fuzz further
Blog post written with an LLM
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.
> > 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.
Getting used to it doesn't mean I have to start liking it!
ai;dr is a valid enough reaction IMO, much the same as “can't read without turning off my stalker blocker, fair enough, I'll go elsewhere”. You might think that I'm going to miss out on stuff, I might think that I'm perfectly fine missing out on that stuff and doing something else instead.
> What makes you say that?
No X in between. No Y overhead. Just your Z.
> No serialization overhead. Just your Node.js process talking directly ... through native bindings.
NAPI-RS has no serialisation overhead?
Stoolap looks pretty interesting, anyone want to share their experience of using it?
Never used it but I’ll chime in that the naming choice is unfortunate. For me as an English speaker it collides with stool, a term for excrement.
Agreed but I did click on the post purely cause of its odd choice of name.
Maybe sto-olap was meant by the authors?
So, what's an "ap" then? As a German speaker I am used to the word "stuhl" too. Which means both "stool" and also "chair". So I sit myself on stool every single day!
> I am used to the word "stuhl" too. Which means both "stool" and also "chair"
Stool means both stool (a backless chair, usually thought of as wooden with three or four fixed legs but the lack of back is the defining feature and those made of other materials and/or with more legs are still called stools) and stool (solid excrement, as in “stool sample”) in English too.
IIRC the something-to-sit-on meaning came directly from one of English's Germanic influences, we just use it for a different/specific kind of seat, and the association with excrement came either from toilet seats (privy stools) generally or the royal position “groom of the stool” (where it meant cleaning both the privy stool and the royal backside that made that need cleaning).
I wonder if the German language took the second meaning back from English later, or if they both developed at the same time for the same reason at a point when there was shared influence between English and German royal courts.
> So, what's an "ap" then?
In this context my mind went to application. StoolAp sounds like a digestive tracking “health management” tool someone with a scatological bent might have on their phone!
well I wouldn't pronounce it Stool - ap I would go with Stoo - lap. So people's chosen pronunciations may vary.