You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.