Skip to content

feat(consensus): enable independent commit progress across namespaces#2765

Merged
numinnex merged 2 commits intomasterfrom
nonblocking-consensus
Feb 20, 2026
Merged

feat(consensus): enable independent commit progress across namespaces#2765
numinnex merged 2 commits intomasterfrom
nonblocking-consensus

Conversation

@hubcio
Copy link
Contributor

@hubcio hubcio commented Feb 18, 2026

LocalPipeline's single VecDeque blocked independent commit
progress across namespaces. NamespacedPipeline uses per-namespace
VecDeques under one global op sequence and hash chain, so
drain_committable_all drains each namespace independently.

Additional fixes: wire last_prepare_checksum through Project
and on_replicate instead of hardcoded 0; walk consecutive ops
in ack_quorum_reached to prevent premature drain; propagate
namespace in build_reply_message; enforce namespace registration
before push; add namespace field to view change headers; replace
magic-number dispatch with Operation enum in simulator.

@hubcio hubcio force-pushed the nonblocking-consensus branch from 7dec4e9 to 8434580 Compare February 18, 2026 17:16
@hubcio hubcio changed the title feat(consensus): implement per-partition consensus refactor(consensus): enable independent commit progress across namespaces Feb 18, 2026
@hubcio hubcio changed the title refactor(consensus): enable independent commit progress across namespaces feat(consensus): enable independent commit progress across namespaces Feb 18, 2026
@hubcio hubcio force-pushed the nonblocking-consensus branch from 8434580 to 674e074 Compare February 18, 2026 17:22
@codecov
Copy link

codecov bot commented Feb 18, 2026

Codecov Report

❌ Patch coverage is 63.95349% with 217 lines in your changes missing coverage. Please review.
✅ Project coverage is 68.64%. Comparing base (b7818db) to head (99155e8).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
core/partitions/src/iggy_partitions.rs 0.00% 80 Missing ⚠️
core/consensus/src/plane_helpers.rs 58.16% 41 Missing ⚠️
core/consensus/src/impls.rs 28.30% 38 Missing ⚠️
core/metadata/src/impls/metadata.rs 0.00% 23 Missing ⚠️
core/simulator/src/replica.rs 0.00% 15 Missing ⚠️
core/consensus/src/namespaced_pipeline.rs 97.20% 6 Missing and 3 partials ⚠️
core/simulator/src/deps.rs 0.00% 5 Missing ⚠️
core/simulator/src/lib.rs 0.00% 5 Missing ⚠️
core/consensus/src/vsr_timeout.rs 0.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #2765      +/-   ##
============================================
+ Coverage     68.30%   68.64%   +0.33%     
  Complexity      656      656              
============================================
  Files           741      742       +1     
  Lines         62210    62688     +478     
  Branches      58623    59101     +478     
============================================
+ Hits          42495    43033     +538     
+ Misses        17601    17539      -62     
- Partials       2114     2116       +2     
Flag Coverage Δ
rust 69.72% <63.95%> (+0.35%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
core/common/src/types/consensus/header.rs 17.43% <ø> (+11.00%) ⬆️
core/consensus/src/vsr_timeout.rs 64.02% <0.00%> (+11.26%) ⬆️
core/simulator/src/deps.rs 0.00% <0.00%> (ø)
core/simulator/src/lib.rs 0.00% <0.00%> (ø)
core/consensus/src/namespaced_pipeline.rs 97.20% <97.20%> (ø)
core/simulator/src/replica.rs 0.00% <0.00%> (ø)
core/metadata/src/impls/metadata.rs 17.07% <0.00%> (-0.43%) ⬇️
core/consensus/src/impls.rs 15.39% <28.30%> (+15.39%) ⬆️
core/consensus/src/plane_helpers.rs 20.56% <58.16%> (+20.56%) ⬆️
core/partitions/src/iggy_partitions.rs 0.00% <0.00%> (ø)

... and 7 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@hubcio hubcio force-pushed the nonblocking-consensus branch 6 times, most recently from 4cccc3d to f3d03b1 Compare February 19, 2026 13:53
…aces

LocalPipeline's single VecDeque blocked independent commit
progress across namespaces. NamespacedPipeline uses per-namespace
VecDeques under one global op sequence and hash chain, so
drain_committable_all drains each namespace independently.

Additional fixes: wire last_prepare_checksum through Project
and on_replicate instead of hardcoded 0; walk consecutive ops
in ack_quorum_reached to prevent premature drain; propagate
namespace in build_reply_message; enforce namespace registration
before push; add namespace field to view change headers; replace
magic-number dispatch with Operation enum in simulator.
@hubcio hubcio force-pushed the nonblocking-consensus branch from f3d03b1 to d275119 Compare February 19, 2026 13:57
@numinnex numinnex merged commit ae484ec into master Feb 20, 2026
64 checks passed
@numinnex numinnex deleted the nonblocking-consensus branch February 20, 2026 13:56
kriti-sc pushed a commit to kriti-sc/iggy that referenced this pull request Mar 6, 2026
…apache#2765)

LocalPipeline's single VecDeque blocked independent commit
progress across namespaces. NamespacedPipeline uses per-namespace
VecDeques under one global op sequence and hash chain, so
drain_committable_all drains each namespace independently.

Additional fixes: wire last_prepare_checksum through Project
and on_replicate instead of hardcoded 0; walk consecutive ops
in ack_quorum_reached to prevent premature drain; propagate
namespace in build_reply_message; enforce namespace registration
before push; add namespace field to view change headers; replace
magic-number dispatch with Operation enum in simulator.
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.

3 participants