Cryo is a WIP database system. It's composable, meaning components are built to be plug-and-play, so new pieces can be added later with minimal friction.
This is a hobby project, and I'm learning as I go. Correctness reflects my current understanding of each topic and will improve over time. What I prioritize most is configurability, so I can experiment with different mechanics, and observability, so I can see what's happening under the hood and debug effectively. Performance and storage efficiency take a back seat to both.
- Define a page structure on disk
- Software managed cache 🚧
- Page latching and locks
- Page cache (Clock algorithm)
- Controlled page access
- Pluggable flush/allocate/mutate guards 🚧
- Tracked page access: all writes through mutable page APIs should be tracked and reported to any party guarding that activity (design not finalized)
- Pool manager should attempt to open the file handle with O_DIRECT 🚧
- ARIES write-ahead log component 🚧
- Allow steal/no-force policy. Configurable
- ARIES recovery
- ...
- Usable server/client binaries