The problem

Incremental B+Tree maintenance is expensive: splits and merges, and in the worst case a single insert forces rebalancing the whole tree 1:16:12.

The idea

Absorb updates in a buffer and apply them in batches only when forced. 1:16:12

  • Names: write-optimized B+Tree, fractal tree (Wikipedia's term), Bε tree; invented by a researcher out of Stony Brook 1:16:37.
  • Same log-structured pattern as the LSM tree covered earlier, and as MySQL's compression scheme, which put a mod log in front of every page so inserts didn't require decompressing everything. Log-structuring recurs everywhere in a DBMS 1:16:37.

Mechanics

Every node carries a mod log 1:16:37:

  1. Insert → write the entry into the mod log if there is space. No traversal to the leaf. Fast, like appending to an LSM log 1:16:37 1:17:37.
  2. Delete → also just a mod-log entry; the key stays physically present at the leaf but is logically deleted 1:17:37 1:18:20.
  3. Lookup → check the mod log at each node from the root down; if the key's fate is recorded there, stop immediately, otherwise continue the normal descent 1:17:58 1:18:20.
  4. Mod log full → push its entries down one level, routing each entry left or right by its key; they get absorbed by the child's mod log, recursively cascading if that one is full too. This cascading is why it's called a fractal tree 1:18:34.
  5. At the leaf → the buffered inserts/deletes are finally applied, and normal B+Tree rebalancing kicks in if the leaf underflows 1:19:57 1:20:27.

Systems that used it

SystemStatus
TokuTech / TokuDBbuilt entirely on fractal trees; acquired by Percona, became "extra DB" for MySQL, eventually died 1:19:12
"SSDB"-style project out of Chinaalso dead 1:19:12
SplinterDB (VMware)the most famous current user; used by an AI-adjacent speaker's system, not heavily advertised 1:19:12
A new system out of China ("chomo")claims Bε trees 1:19:12

Trade-off

  • Much more complex than a plain B+Tree — you must maintain and apply the mod logs, and you inherit all the complications of log-structured storage 1:19:12 1:19:57.
  • Much faster for write-heavy workloads than a regular B+Tree 1:19:57.