Skip to content

Commit 10f7e9a

Browse files
committed
doc: describe bounded hydration retention catch-up
1 parent 6f75702 commit 10f7e9a

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

doc/developer/design/20260817_durable_object_hydration_history.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -190,13 +190,15 @@ writes their retractions at the observed frontier. Collection applies the same
190190
cutoff, so a still-live log row cannot resurrect an episode retention just
191191
retracted.
192192

193-
Retention deletes a bounded batch per sweep and converges over as many sweeps as it
194-
takes. The bound is not a nicety. The OCC path refuses a selection larger than
195-
`max_result_size` before submitting any write, so one unbounded delete over a large
196-
backlog would fail identically forever and never shrink the table. The bound has to
197-
sit inside a derived table, because a top-level `LIMIT` lands in the plan's
198-
`RowSetFinishing`, which the OCC path deliberately discards, and the delete would
199-
be silently unbounded again.
193+
Retention deletes successive bounded batches until one is not full. The fixed
194+
cutoff makes the eligible set finite, and collection refuses to insert rows behind
195+
that cutoff, so a successful sweep drains the backlog even when more than one batch
196+
expires at once. The bound is not a nicety. The OCC path refuses a selection larger
197+
than `max_result_size` before submitting any write, so one unbounded delete over a
198+
large backlog would fail identically forever and never shrink the table. The bound
199+
has to sit inside a derived table, because a top-level `LIMIT` lands in the plan's
200+
`RowSetFinishing`, which the OCC path deliberately discards, and the delete would be
201+
silently unbounded again.
200202

201203
Retention runs on the catalog server, so it keeps working when there are no user
202204
replicas at all, and it runs even when that sweep's collection failed. A

0 commit comments

Comments
 (0)