Fjall instead of SurrealKV? #6670
Replies: 3 comments 12 replies
-
|
Hi @MirroredLens thanks for the question! We actually have a benchmark tool which compares RocksDB, SurrealKV, and Fjall. The new version of SurrealKV (from The benchmarking tool crud-bench has had a minor contribution from one of the Fjall maintainers too. But we are always happy to have additional improvements if you suggest some! We would love to know how we can improve the benchmark, and which types of additional operations you would want to see! We are working on improving scan performance at the moment and should have more releases in early 2026 as we move towards SurrealKV 1.0 🚀 ! I've just run a very quick benchmark with 15,000,000 records (roughly
Formatted result output can be seen here: Full result outputs can be seen here: |
Beta Was this translation helpful? Give feedback.
-
|
@tobiemh thanks for the benchmarks, but could you show how the databases were built and configured. I can't speak for every db, but fjall and rocksdb have a lot of configurations that play into the kind of workloads they're being tested for in order to most effectively use the db engine or speed up performance or make specific tradeoffs. I'm not against SurrealKV, in fact I was inherently rooting for it back when it was trying to use adaptive radix trees. But I found tons of benefits from lsm based engines as I'm sure you guys did too. One of the core aspects of what makes them so powerful imo, is that it is highly configurable. After reading a few of fjall's blog posts, the db seemed pretty optimized and tunable, it also helps [for configs and mods] that the lsm tree itself is a seperate crate from the db engine. If the new SurrealKV is better at doing the same thing, I, as a free user have nothing but excitement. But I'm not fully convinced fjall is being used to it's fullest in your benchmarks. Maybe the author of fjall can give more insight into this. @marvin-j97 |
Beta Was this translation helpful? Give feedback.
-
|
@MirroredLens There are a couple of factors that could have an impact here:
Though I find it a bit suspicious, that surrealkv, in the CRUD operations, is somehow 4.5x times faster than RocksDB while using essentially the same architecture down to the individual blocks. But on the other hand it is much slower for the scan operations. Additionally, the benchmark doesn't seem to really consider space amp, write amp, or memory usage. There are some other things in the surrealkv crate that seem a bit strange, but I won't go into detail here. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Why not choose to use fjall instead of another lsm tree based database. It beats rocksdb in many benchmarks, is written in rust, and is coming into a version 3 that'll probably be even faster.
https://github.com/fjall-rs/fjall
Beta Was this translation helpful? Give feedback.
All reactions