This is an automated email from the ASF dual-hosted git repository. hubcio pushed a commit to branch perf/task-per-partition in repository https://gitbox.apache.org/repos/asf/iggy.git
commit 12d134e8e72b845abcea144e79724341e0cb3b62 Author: Hubert Gruszecki <[email protected]> AuthorDate: Wed Oct 7 23:00:51 2026 +0200 docs(partitions): align comments with file lanes and commit walks --- core/consensus/src/impls.rs | 2 +- core/partitions/src/types.rs | 2 +- core/shard/src/lib.rs | 13 ++++--------- core/simulator/src/lib.rs | 2 +- core/simulator/src/workload/invariants.rs | 2 +- 5 files changed, 8 insertions(+), 13 deletions(-) diff --git a/core/consensus/src/impls.rs b/core/consensus/src/impls.rs index b93ec2195..61d4d6dbc 100644 --- a/core/consensus/src/impls.rs +++ b/core/consensus/src/impls.rs @@ -2171,7 +2171,7 @@ impl<B: MessageBus, P: Pipeline<Entry = PipelineEntry>> VsrConsensus<B, P> { /// /// Stops the timer on an empty pipeline; otherwise restarts it so it times /// the current oldest entry from now. Exposed for the plane-side drains that - /// pop through [`Pipeline`] directly (`drain_committable_prefix`) rather than + /// pop through [`Pipeline`] directly rather than /// through [`Self::pop_committed_prepare`]. pub fn sync_prepare_timeout(&self) { let empty = self.pipeline.borrow().is_empty(); diff --git a/core/partitions/src/types.rs b/core/partitions/src/types.rs index 9d55f2ee8..c1f578676 100644 --- a/core/partitions/src/types.rs +++ b/core/partitions/src/types.rs @@ -23,7 +23,7 @@ use std::sync::Arc; /// A local commit that failed for an op the cluster had already committed. /// -/// The replica is divergent from here on: `drain_committable_prefix` popped +/// The replica is divergent from here on: the commit walk popped /// the op, its `commit_min` never advanced, and the next /// `advance_commit_min` would assert on the gap. Continuing would either /// serve a prefix the cluster has moved past or panic somewhere less diff --git a/core/shard/src/lib.rs b/core/shard/src/lib.rs index 44b1aebdf..e9c223cb5 100644 --- a/core/shard/src/lib.rs +++ b/core/shard/src/lib.rs @@ -6035,9 +6035,6 @@ where // only, while `commit_messages` evicts up to `commit_max` (the cluster // frontier), so a primary-elect with an apply backlog reads `None` for // ops it holds in the repair ring and parks on a hole that is not one. - // One pass also because `header_by_op` is a linear scan and this window - // is the apply backlog, not the `prepare_queue_max` span the merge - // bounds -- probing per op is quadratic. let missing = { let journal = partition.log.journal(); let window = journal @@ -10832,16 +10829,14 @@ const PARTITION_REPAIRS_INFLIGHT_MAX: usize = 8; /// Commit walks the partition tick sweep will RUN per pass. /// /// Same correlated-fan-out argument as the repair arm, and the walk is the -/// costlier half: `commit_journal` reaches `commit_messages`, which flushes a -/// segment and synchronizes it under `durability=persisted`. +/// costlier half: `commit_journal` applies committed state and schedules +/// segment persistence. /// /// The two caps together are what bound the tick: this one bounds how many /// groups a sweep walks, [`partitions::COMMIT_WALK_OPS_MAX`] bounds how far /// each walk goes (for every caller of `commit_journal`, not just this one), -/// and the product is the sweep's worst case. Deliberately NOT the -/// superblock pre-pass's number: that one runs its fan-out CONCURRENTLY under -/// `join_all` and drains every group in the same body, while these walks are -/// serial and what is over budget waits for the next tick. +/// and the product is the sweep's worst case. File jobs are bounded separately +/// by the partition I/O lane; commit walks over budget wait for the next tick. /// /// Capping cannot starve a partition: the walk carries no debounce counter and /// clears its own predicate (a walk either advances `commit_min` or fences the diff --git a/core/simulator/src/lib.rs b/core/simulator/src/lib.rs index e3bb25a8d..cb3980bda 100644 --- a/core/simulator/src/lib.rs +++ b/core/simulator/src/lib.rs @@ -139,7 +139,7 @@ pub(crate) struct PartitionConsensusState { /// A pipeline head the commit walk is holding on: covered by the commit frontier, /// but not the op the state machine is next owed. /// -/// What `drain_committable_prefix` / `peek_committable_head` refuse to drain. Two +/// What `peek_committable_head` refuses to drain. Two /// different faults share that refusal and need different thresholds, so /// [`CommitPrefixHole::kind`] keeps them apart. #[derive(Debug, Clone, Copy)] diff --git a/core/simulator/src/workload/invariants.rs b/core/simulator/src/workload/invariants.rs index a51103e97..31f949e79 100644 --- a/core/simulator/src/workload/invariants.rs +++ b/core/simulator/src/workload/invariants.rs @@ -211,7 +211,7 @@ impl Invariants { /// Catch a commit walk permanently held below a committable pipeline head. /// - /// The state `drain_committable_prefix` and `peek_committable_head` refuse to + /// The state `peek_committable_head` refuses to /// drain. Two faults share that refusal and they are not the same wait, so they /// are counted apart (see [`CommitHoldKind`]): ///
