Skip to content

0.0.37

Choose a tag to compare

@b10x-bot b10x-bot released this 17 Oct 06:35
· 63 commits to main since this release
2f233f8

Fixed

  • ekr stage begin stages a store whose seed or commit carries thousands of evidence payloads on
    PostgreSQL (#93). The begin's copy published each occurrence as one provider group, and
    PostgreSQL takes one advisory lock per stream of a group, so a seed of 8,192 payloads was
    refused stage-copy-failed, "out of shared memory", on a stock-sized lock table. A copied
    occurrence that would carry more than 32 streams now has its payloads stored ahead of it in
    groups of at most 32 (ekr.store.CopyGroupStreams), with their class and stored_at, and its
    own group binds only the objects it appends, so no transaction of the copy takes more than 34
    advisory locks (32 streams, the publication gate and the group's own). ekr seed,
    ekr commit and ekr migrate are unchanged: a migration still writes each copied seed or
    commit as one transaction, into a destination another migration may also be writing, and
    docs/cli.md names the lock-table setting that bounds all three.
  • ekr stage list on a PostgreSQL store answered [], or left out a stage, while any other
    transaction on the server was open, although the stage's begin had committed and
    ekr stage show found it (#94). A begin now records the stage in the store's stage index,
    ekr.store.StageIndexed, in the same atomic write as its StageBegun, and the listing reads
    that index as a stream; stages begun before this release are still found through the log.