Are there simple benchmarks that I can run for the Rust counterpart? I've worked a bit on the scylla rust code and I see plenty of room for improving efficiency (there's a lot of unnecessary allocation imo, and the hashing algorithm is 10x slower than it needs to be), but I don't want to make a PR for improvements without evidence.<p>> The big difference between our Rust and Go drivers comes from coalescing; however, even with this optimization disabled in the Go driver, it’s still a bit faster.<p>For anyone who's wondering, the Rust driver has coalescing support as of 9 days ago.
ScyllaDB's obsession with performance by working closely with deep understanding of hardware and software and not simply adding more machines is really impressive.<p>They consistently demonstrate that we are under using our CPUs compared to potential.
One of my fav companies! Dor is an amazing person, highly recommend working with them. We started to move to ScyllaDB at my last engineering job. Doing 100TB’s a day in IoT Data.
> We also paid close attention to proper memory management, producing as little garbage as possible.<p>The key.<p>And I was wondering how can a tracing GC outperform a non-tracing-GC memory manager.
Clever ideas to optimize this baby. Nice work.<p>Hadn't heard of the pre-coalesce millisecond pile up technique.<p>Favorited, thank you, sincerely!
Almost reads like a case where an initial implementation in rust forced a clear mental image of ownership that could then be transferred into another language much easier than it would have been to reach the same clarity outside of pedantic reign of the rust compiler.
Somewhat unrelated observation: I have never looked at SchyllaDB so I went to the web page. In the most prominent space they take a dump on the competition. Normally that would be a red flag for me, but in this case it made me curious.<p>Now I want to know more. :-)
Is DB driver a bottleneck in applications? Somehow I usually see bottlenecks in other places in a service, and the db bottlenecks are usually on the database-side instead on the driver side.