Function createStandaloneMemoryRollingSummarySink

  • A rolling-summary sink over a standalone Memory: each compaction's summary, and its atomic documents where the policy keeps them, filed per target scope, replacing the ones the target's last upsert filed.

    Where a learning layer runs (an update with turnScopes), the targets take the turn's scope ids and each upsert is one memory write recorded through the turn's recorder: its candidate names the traces it will insert (their ids named before the write) and forget (with their snapshots), and the recorder notes a session row for each of the compaction's contributors, so forgetUser for any of them finds the session; every new trace is written before any old one is forgotten; a failure before the forgets takes back what the upsert wrote, a failure among them keeps the upsert with what it did forget, and its kept verdict names what it inserted and forgot. A text that did not change keeps its trace while that trace is live (one deleted since is filed again), an upsert that changes nothing writes nothing and no row, and one sink's recorded upserts run one at a time. A freeze and a forgotten user resolve with nothing written; an upsert the layer refuses for any other reason, or one the sink cannot record (no recorder, or a facade it cannot read back, delete and restore by trace id), rejects having written nothing.

    What a target's last upsert filed is kept in the process, so after a restart the first upsert of a target replaces nothing it did not file itself; the same holds for a summary a revert brought back, which stays beside the next upsert's.

    Parameters

    Returns IRollingSummaryMemorySink