Files
greptimedb/docs/rfcs
jeremyhi 4ef312ecf2 docs: add the object store WAL RFC (#9195)
* docs: add the object store WAL RFC

Propose an object store backed write-ahead log as a WAL provider next to
Raft Engine and Kafka: a datanode batches the entries of its regions into
immutable objects under one prefix, creates each object conditionally
under a monotonically increasing sequence, acknowledges a write once its
object is durable by default, and replays each region from its own
segments after listing the prefix. A reference implementation exists and
follows this RFC in a series of pull requests; the document describes it
and marks what is proposed on top of it.

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: link the object store WAL RFC to its tracking issue

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: describe the predecessor chain and instance epoch of the object store WAL

Recovery replays only the chain of objects that ends at the latest
complete object, and every open starts a new epoch with an empty start
object, so an object whose create was reported as failed is never
replayed once a later append has been acknowledged. Update the object
format, recovery, writing, the failure matrix, the garbage collection
constraints, compatibility, evidence, drawbacks and the cluster mode
alignment accordingly.

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: identify object store WAL objects by sequence and epoch

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: derive the object store WAL epoch from the start object sequence

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: separate the retryable and the conflicting start object outcomes

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: describe garbage collection of the object store WAL through the reclaim boundary

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: judge vanished objects after chain selection and fix the evidence references

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: record the stop-time conflict and the completed fault matrix in the object store WAL RFC

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: limit the stop-time conflict to objects of the same or a later epoch

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: keep the conflicting-content condition in the stop-time conflict sentence

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: report the S3 write path measurements of the object store WAL

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: qualify the seal timer findings and link the S3 runs

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

* docs: state the serial durable cycle behind the one-batch-per-interval observation

Signed-off-by: jeremyhi <fengjiachun@gmail.com>

---------

Signed-off-by: jeremyhi <fengjiachun@gmail.com>
2026-10-12 12:00:55 +00:00
..