Skip to content

feat(consensus): add write coalescer + async commitment pipeline#31

Open
hard-nett wants to merge 1 commit into
mainfrom
feat/write-coalescer
Open

feat(consensus): add write coalescer + async commitment pipeline#31
hard-nett wants to merge 1 commit into
mainfrom
feat/write-coalescer

Conversation

@hard-nett

Copy link
Copy Markdown
Member

Replace the write_lock mutex with a background WriteCoalescer actor that batches concurrent WriteActions into single cnidarium commits, eliminating JMT version conflicts under load. After each batch commits locally, an async CommitmentGenerator creates signed NodeCommitments and submits them to the consensus mempool without blocking callers.

New types: WriteAction, WriteCoalescer, WriteHandle, CommittedBatch, CommitmentGenerator. Migrated top-priority storage methods (put_prompt, put_open_response, save_inbox_message, put/delete_proxy_session, update_inbox_status) to use coalesced writes. Remaining methods fall back to direct locked_commit (bootstrap path).

10 new tests, all 58 consensus tests pass. Zero cargo check errors.

Replace the write_lock mutex with a background WriteCoalescer actor that
batches concurrent WriteActions into single cnidarium commits, eliminating
JMT version conflicts under load. After each batch commits locally, an
async CommitmentGenerator creates signed NodeCommitments and submits them
to the consensus mempool without blocking callers.

New types: WriteAction, WriteCoalescer, WriteHandle, CommittedBatch,
CommitmentGenerator. Migrated top-priority storage methods (put_prompt,
put_open_response, save_inbox_message, put/delete_proxy_session,
update_inbox_status) to use coalesced writes. Remaining methods fall
back to direct locked_commit (bootstrap path).

10 new tests, all 58 consensus tests pass. Zero cargo check errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant