Bf-Tree: modern read-write-optimized concurrent larger-than-memory range index

Microsoft’s new Rust data engine drops; fans swoon, skeptics see deadlocks and missing tests

TLDR: Microsoft Research unveiled Bf-Tree, a Rust data index aiming for speed on huge datasets. The crowd is split: fans praise the pedigree, while skeptics report deadlocks with the safety log and demand multi-writer benchmarks before believing the “f is for faster” hype.

Microsoft Research just launched Bf-Tree, a Rust-based data index that promises faster reads and writes even when your data is bigger than your computer’s memory. It ships with lots of tests, fancy fuzzing, and a “Shuttle” mode to catch tricky thread bugs. But the real performance test? The comments section.

One early tester didn’t mince words: after turning on the safety log (called a write-ahead log), they “got deadlock several times,” calling it “raw.” Another veteran voice slammed the lack of multi-writer benchmarks—where many threads write at once—as a “major omission,” and raised eyebrows at design choices like pinning some parts in memory while claiming it scales beyond memory. Translation: cool paper, but show the receipts.

On the hype side, a fanboy chorus formed around the project’s lead author, citing past hits like Garnet. Meanwhile, a dev dropped their own alt—Feocask—turning the thread into a mini show-and-tell. Jokes landed too: one commenter confirmed the “f” stands for “faster,” which set off meme engines and playful side-eyes. The vibe: big brains, big claims, bigger expectations. Is Bf-Tree a speed demon ready for prime time, or just future work with great marketing? The community wants proof—and multi-writer numbers—now.

Key Points

  • Bf-Tree is a concurrent, read-write-optimized range index for larger-than-memory datasets, implemented in Rust.
  • It is available as a Rust crate, with example code showing insert and read operations via Cargo integration.
  • The project supports Linux, Windows, and macOS, with rigorous testing focused on recent Linux versions.
  • Testing includes unit tests, shuttle-based deterministic concurrency tests, and fuzz testing to detect crashes and inconsistencies.
  • Benchmarking guidance covers basic and advanced setups using mimalloc options, metrics collection, and NUMA binding via numactl.

Hottest takes

"got deadlock several times, so looks raw for now" — 0xdeafbeef
"I get excited every time I see a paper from Bradish" — algorithmsRcool
"No multithreaded write benchmarks. That’s a major omission" — koverstreet
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.