← All projects
Pull down, click, or press Space to change the theme.
A storage engine, from the inside

Inside Shale.

One write. Every mechanism.
Built from scratch in Java · milestone 4

01 / Meet the engine
Why do we need two copies?

How does a write survive lost memory?

  • Shale stores ordered keys and values inside your Java application.
  • Follow one write, then open the mechanisms that keep it readable.
MEMORY · VOLATILEFILES · ON DISK1 · append2 · copy to memoryfreezeflushreplayprobereturn from diskExplore Your Java programYour Java programput · delete · get · scanExplore Active memtableActive memtable0 versions in a skiplistNo records yetExplore Frozen memtableFrozen memtableRead-only during flushEmpty until buffer fillsExplore Write-ahead logWrite-ahead logRecovery log on disk0 retained recordsExplore SSTable filesSSTable filesSorted · immutable0 installed tablesExplore Read pathsRead pathsGET: first matching hitSCAN: merge versions