krishvishal opened a new pull request, #2769:
URL: https://github.com/apache/iggy/pull/2769
Summary:
- Adds a `PacketSimulator` that models a full network fault-injection layer:
per-path latency (exponential distribution), packet loss, link capacity limits
with random eviction, automatic network partitioning with configurable
lifecycle, and per-path clogging.
- Adds a `ReadyQueue` — a min-heap priority queue with reservoir-sampled
random ready removal, used to order packets by delivery tick and uniformly
select among simultaneously ready items.
- Partition modes: `UniformSize`, `UniformPartition`, `IsolateSingle`,
all guarantee at least one node in each partition. Supports symmetric and
asymmetric partitions.
Note:
- Pull-based batch delivery: `step()` returns all ready packets for the
current tick in a single Vec. Packets delivered in the same tick cannot trigger
chain reactions within
that tick. This was done because its difficult to do self-referential
structs in Rust and even with using dynamic dispatch we have to fight the
borrow checker since we would need mutable access to different fields at the
same time.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]