Skip to content

Define and test the 1.0 persistence durability and crash-recovery contract #41

Description

@pathscale

The torn-shutdown regression test documents that SIGKILL during an in-place batch may lose rows or produce phantom rows that still validate. Signal-level crashes are now contained, but row fidelity is explicitly an ignored test and recovery is described as rebuild or snapshot restore. Before 1.0, choose and publish the durability contract. Option A is crash-atomic batches through a journal, shadow pages, or another recoverable format, with the ignored consistent-prefix test enabled. Option B is to state prominently that persistence is best-effort rather than a durable database, define the exact guarantees of wait_for_ops, provide a supported corruption/rebuild path, and ensure every load either yields a valid declared state or a typed corruption error. This is distinct from #36, which covers graceful task lifecycle and surfaced runtime failures rather than process death.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-decisionRequires a maintainer product or compatibility decisionrelease-blockerMust be resolved before the 1.0.0 release

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions