feat(sidecar): expose grouped durability - #227
Conversation
peat-bot
left a comment
There was a problem hiding this comment.
Peat QA Review (SHA: acc8013)
[WARNING] Issue #226 acceptance criterion is not fully evidenced: “Run the repo release gates and repeat #225's ARM64 field-equivalent benchmark using the release candidate.” The PR body lists cargo test, cargo fmt --check, cargo clippy, and smoke testing, and CI shows Helm Lint green, but I do not see evidence of repeating #225’s ARM64 field-equivalent benchmark with the release candidate. Add that benchmark evidence or explicitly narrow the PR/issue acceptance before merge.
[WARNING] Issue #225 is directly referenced as supported, but its acceptance criteria are not satisfied by this diff. The changes add the grouped durability surface and tests, but the issue’s required field capture and isolation matrix remain unevidenced: exact harness collection/doc-ID pattern, byte attribution, canonical LatestOnly stable-ID comparison, peer replication comparison, and evidence-based remediation choice. Keep #225 open and do not present this PR as satisfying its verification criteria without those results.
Linked Issues
#226 “feat(sidecar): expose grouped durability in CollectionConfig”
- Advance dependencies to
peat-protocol >=0.9.0-rc.33, <0.9.1andpeat-mesh >=0.9.0-rc.61, <0.9.1: met. - Extend
CollectionConfigadditively with optional grouped-durability bounds: met; proto field 9 is additive. - Absence preserves immediate durability: met by code path and tests.
- Reject zero / platform-overflow bounds before replacing persisted config: met for code; zero-bound Connect coverage present, overflow handled for usize conversions.
- Persist and round-trip through Set/Get/List and JSON; older files load immediate: met.
- Apply at startup and live replacement through
AutomergeStore::set_collection_write_policy: met. - Removing grouped durability removes override and restores immediate/default persistence: met.
- Cover service behavior, Connect JSON, persistence/restoration, transaction grouping without source-text assertions: met.
- Update operator guidance and ADR-003 slice: met.
- Run repo release gates and repeat #225 ARM64 field-equivalent benchmark: partially met; repo gate evidence is present/partly in CI, ARM64 field-equivalent benchmark evidence is missing.
#225 “perf(field): isolate telemetry CRDT write amplification”
- Identify exact collection mode and document-ID pattern used by field harness: not met.
- Attribute logical payload bytes, serialized-document bytes, durable commit count, and process
write_bytesseparately: not met. - Demonstrate whether canonical LatestOnly plus stable ID removes 9.5x amplification: not met.
- Demonstrate whether peer replication changes only node count or per-node amplification: not met.
- Choose remediation from evidence: partially met at most; grouped durability may be relevant, but the issue’s isolation evidence is not included.
- Do not publish replacement artifacts until isolation matrix identifies failing contract: not assessable from diff; no replacement artifacts observed.
Cross-repo references noted but not fetched: defenseunicorns/peat-mesh#364, defenseunicorns/peat#1062.
|
ARM64 field validation found a release blocker in the rc.61 receive path; do not merge/publish this PR yet. At 20 remote documents/s (two 10 Hz sources, 50 rotating keys/source), Root cause: peat-mesh's persistent sync dispatcher awaits each received frame serially. A lone remote frame waits the grouped deadline before the next distinct key can enter the transaction, capping receive throughput near Opened defenseunicorns/peat-mesh#368 with the fix and re-verification contract. This PR should advance to the follow-up peat-mesh rc containing #368 before publication. The existing unit/Connect/full-suite and ABI checks remain green; this is an end-to-end throughput failure not covered by them. |
peat-bot
left a comment
There was a problem hiding this comment.
Peat QA Review (SHA: c2fa4a1)
Incremental review since acc8013.
[WARNING] Issue #225 is directly referenced as supported, but the current diff and updated PR body still do not satisfy its explicit acceptance criteria. The new ARM64 field-gate note gives useful grouped-durability smoke evidence, but it does not provide the requested isolation matrix or separate byte/commit attribution. Keep #225 open and avoid presenting this PR as satisfying its verification criteria without those results.
Resolved: prior [WARNING] for #226 missing ARM64 release-candidate benchmark evidence. The current PR body now includes an ARM64 field gate for peat-mesh 0.9.0-rc.62, and the PR body/CI provide the required cargo test and Helm Lint evidence for the peat-mesh pin bump.
Linked Issues
#226 “feat(sidecar): expose grouped durability in CollectionConfig”
- Advance dependencies to
peat-protocol >=0.9.0-rc.33, <0.9.1andpeat-mesh >=0.9.0-rc.61, <0.9.1: met. - Extend
CollectionConfigadditively with optional grouped-durability bounds: met; proto field 9 is additive. - Absence preserves immediate durability: met by code path and tests.
- Reject zero / platform-overflow bounds before replacing persisted config: met for code; zero-bound Connect coverage present, overflow handled for usize conversions.
- Persist and round-trip through Set/Get/List and JSON; older files load immediate: met.
- Apply at startup and live replacement through
AutomergeStore::set_collection_write_policy: met. - Removing grouped durability removes override and restores immediate/default persistence: met.
- Cover service behavior, Connect JSON, persistence/restoration, transaction grouping without source-text assertions: met.
- Update operator guidance and ADR-003 slice: met.
- Run repo release gates and repeat #225 ARM64 field-equivalent benchmark: met by updated PR body evidence plus CI Helm Lint success.
#225 “perf(field): isolate telemetry CRDT write amplification”
- Identify exact collection mode and document-ID pattern used by the field harness: partially met; PR body gives rolling key pattern for the new grouped run, but not the requested field harness mode/pattern isolation.
- Attribute logical payload bytes, complete serialized-document bytes, durable commit count, and process
write_bytesseparately: not met. - Demonstrate whether canonical LatestOnly plus stable ID removes 9.5x amplification under the same workload: not met.
- Demonstrate whether peer replication changes only node count or per-node amplification: not met.
- Choose remediation from evidence: partially met at most; grouped durability is exercised, but the required isolation evidence is still absent.
- Do not publish replacement artifacts until isolation matrix identifies failing contract: not assessable from diff; no replacement artifacts observed.
Cross-repo references noted but not fetched: defenseunicorns/peat-mesh#370, defenseunicorns/peat#1062.
peat-bot
left a comment
There was a problem hiding this comment.
Peat QA Review (SHA: c2fa4a1)
Incremental review since c2fa4a1.
No findings.
Resolved: prior [WARNING] for same-repo #225 coverage. The current PR description no longer directly references #225 as a same-repo issue; it only references #225 inside #226's acceptance criteria and provides the ARM64 release-candidate gate evidence required by #226.
Linked Issues
#226 “feat(sidecar): expose grouped durability in CollectionConfig”
- Advance released dependencies to
peat-protocol >=0.9.0-rc.33, <0.9.1andpeat-mesh >=0.9.0-rc.61, <0.9.1; remove temporary git patch: met. - Extend
CollectionConfigadditively with optional grouped-durability bounds: met. - Absence of grouped durability preserves immediate durability exactly: met.
- Reject zero bounds and platform-overflow values with deterministic
INVALID_ARGUMENTbefore replacing persisted config: met. - Persist and round-trip through Set/Get/List and
collection_configs.json; older files continue to load as immediate durability: met. - Apply valid grouped durability at startup and live replacement through
AutomergeStore::set_collection_write_policy: met. - Replacing grouped durability with an absent policy removes the override and restores immediate/default persistence: met.
- Cover service behavior, Connect JSON wire encoding, persistence/restoration, and observable transaction grouping without source-text assertions: met.
- Update operator configuration guidance and peat-node ADR-003 implemented slice: met.
- Run release gates and repeat #225's ARM64 field-equivalent benchmark using the release candidate: met by PR description evidence plus green CI
TestandHelm Lintjobs.
Cross-repo references noted but not fetched: defenseunicorns/peat-mesh#370, defenseunicorns/peat#1062.
peat-bot
left a comment
There was a problem hiding this comment.
Peat QA Review (SHA: c2fa4a1)
Incremental review since c2fa4a1.
No findings.
Resolved: prior [WARNING] for same-repo #225 coverage remains resolved. The current PR description does not directly reference #225 as a same-repo linked issue; it references #225 only as the benchmark context inside #226's acceptance criteria and provides the ARM64 release-candidate gate evidence required by #226.
Linked Issues
#226 “feat(sidecar): expose grouped durability in CollectionConfig”
- Advance released dependencies to
peat-protocol >=0.9.0-rc.33, <0.9.1andpeat-mesh >=0.9.0-rc.61, <0.9.1; remove temporary git patch: met. - Extend
CollectionConfigadditively with optional grouped-durability bounds: met. - Absence of grouped durability preserves immediate durability exactly: met.
- Reject zero bounds and platform-overflow values with deterministic
INVALID_ARGUMENTbefore replacing persisted config: met. - Persist and round-trip through Set/Get/List and
collection_configs.json; older files continue to load as immediate durability: met. - Apply valid grouped durability at startup and live replacement through
AutomergeStore::set_collection_write_policy: met. - Replacing grouped durability with an absent policy removes the override and restores immediate/default persistence: met.
- Cover service behavior, Connect JSON wire encoding, persistence/restoration, and observable transaction grouping without source-text assertions: met.
- Update operator configuration guidance and peat-node ADR-003 implemented slice: met.
- Run release gates and repeat #225's ARM64 field-equivalent benchmark using the release candidate: met by PR description evidence plus green CI
Test,Helm Lint, and cross-cluster sync jobs.
Cross-repo references noted but not fetched: defenseunicorns/peat-mesh#370, defenseunicorns/peat#1062.
Summary
peat-protocol 0.9.0-rc.33,peat-schema 0.9.0-rc.33, andpeat-mesh 0.9.0-rc.62CollectionConfig.groupedDurabilitybounds for acknowledgement delay, transaction entries, and serialized bytesVerification
cargo checkcargo fmt --checkcargo clippy --all-targets -- -D warningscargo test— 374 passed across 31 suites, 17 ignoredpeat-mesh 0.9.0-rc.62,peat-protocol 0.9.0-rc.33, andpeat-schema 0.9.0-rc.33ARM64 release-candidate gate
Candidate: this peat-node branch with published dependency code from peat-mesh
bf4688a/ release0.9.0-rc.62, built foraarch64-unknown-linux-gnuand deployed to writer, relay, and receiver.Run
grouped-final-bf4688a-r3:120sat10Hz x 1KiB, 50 rolling keys/source50ms / 32 entries / 4MiBDONE; all services active withNRestarts=0Closes #226.
Dependency: defenseunicorns/peat-mesh#370 and defenseunicorns/peat#1062.