Skip to content
About
Main content

What mutation strategies forbid

What do mutation strategies forbid, what are the escapes, and what does each escape cost?

What this article forbids. No strategy achieves O(d) writes, O(1) reads and O(data) space at once without a collector. Unlike the , here you can see the mechanism: the negation must be evaluated by someone, and the only three parties available are the writer, the reader and a background process. Each is a different cost . A second prohibition is sharper and less discussed: you cannot reclaim without establishing that no one is reading, and that is either a coordination protocol or a conservative time horizon. There is no local, cheap way to know that a byte is dead.

The escapes and their prices

StrategyWhat it buysWhat it costs
In-placeOptimal read and spaceDouble writes; loses free concurrency
Pointer-sized atomicity, free U/d × depth
Optimal writesUnbounded read until a schedule you must derive
3-6 orders of magnitude cheaper than CoW deletesAvailable only if you already gave up cheap reclustering
Non-blocking concurrencyChain traversal on hot rows; reclamation held hostage by the slowest reader