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]

Reply via email to