stolon

Blog

What is a fully persistent B-tree?

A B-tree in which every version stays readable and any version can start a new one, so its versions form a tree. Stolon is built on one, which is why a branch copies nothing and reads stay flat as branches get deeper and more numerous.

The definition

The terms come from the data-structures literature, starting with Driscoll, Sarnak, Sleator and Tarjan (1989). A structure is persistent when a change makes a new version and leaves the old one readable. What differs is which versions can change:

ReadableChangeableHistory is
Ephemeralthe current versionthe current versionnot kept
Partially persistentevery versionthe newesta line
Fully persistentevery versionany versiona tree
Confluentevery versionany version, and two can be combined into onea graph

What it buys a database

Three objections to building one on disk

Each has an answer, and Stolon is built on it.