Write-Ahead Log (WAL)
- 64-byte file headers with versioning
- CRC32 checksums for integrity
- Zero-copy reads with BytesMutExt
- Comprehensive metrics collection
- 153 tests ensuring reliability
FerrisDB is being built as a distributed, transactional key-value database. Currently, weβre focused on the storage engine layer.
βββββββββββββββββββ β Client Library β [PLANNED] ββββββββββ¬βββββββββ β ββββββββββΌβββββββββ β Server (gRPC) β [PLANNED] ββββββββββ¬βββββββββ β ββββββββββΌβββββββββ β Storage Engine β [IN PROGRESS] β (LSM-tree) β ββββββββββ¬βββββββββ β ββββββββββββΌβββββββββββ β β βββββββΌβββββ βββββΌβββββ βββββΌββββββMemTable β βSSTablesβ β WAL ββββββββββββ ββββββββββ ββββββββββ[COMPLETE] [COMPLETE] [COMPLETE]
Write-Ahead Log (WAL)
MemTable (Skip List)
SSTable Format
Every component is designed to teach database concepts:
Each component has:
We chose LSM-tree architecture because:
Current implementation:
All binary formats follow consistent patterns:
FDB_XXX\0
patternThis is an educational project in active development:
For implementation details, see Current Implementation. For our vision of the complete system, see Future Architecture.