Segmented write-ahead log

Append-only WAL with CRC32-validated records, automatic segment rotation
at 128 MiB, background periodic fsync, and crash recovery by truncation
at the first corrupt or incomplete record.

Record format: type(1) | len(4) | payload | crc32c(4). Two payload
types: series (ref + labels) and samples (batch of ref/t/v). Fixed-width
encoding througout.

Torn-write harness truncates at every byte offset and asserts recovery
produces a valid prefix of the original sequnce, both single-segment and
multi-segment.

DESIGN.md, NOTICE.md, and README.md.
This commit is contained in:
2026-07-04 14:09:09 -04:00
parent 06a95597e9
commit 9a322274a5
12 changed files with 1804 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
NOTICE:
This project was developed with reference to the Prometheus TSDB
(github.com/prometheus/prometheus), licensed under Apache License 2.0,
Copyright The Prometheus Authors.
- internal/chunkenc: Gorilla XOR chunk encoding follows the Prometheus
tsdb/chunkenc implementation.
- internal/wal: Write-ahead log design is informed by the Prometheus
tsdb/wal package. Uses a simpler record format without page-level
framing; shares the same well-established WAL patterns (segmented
append-only files, CRC32C validation, recovery by truncation).