5 posts with tag spsc-queue

Backoff & Memory Provisioning: Adaptive Spinning, Custom Allocators, NUMA & Huge Pages

Two resources a lock-free ring buffer takes for granted: time and memory. Adaptive backoff for waiting well, and a pluggable allocator trait for NUMA placement and huge pages.

· 20 minutes reading time

Compile-Time Leverage: Specialization, Branch & Arithmetic Hygiene, and Inlining

How const generics, zero-sized types, branch and arithmetic hygiene, and disciplined inlining hand the Rust compiler enough compile-time facts to make sizes immediate, unused features free, and redundant checks disappear in a lock-free SPSC ring buffer.

· 13 minutes reading time

Zero-Copy on the Hot Path: Reserve/Commit and Fast-Path/Slow-Path Splitting

How a reserve/commit protocol eliminates per-item copies in a lock-free SPSC ring buffer, and how fast-path/slow-path splitting keeps the common case branch-predictable.

· 14 minutes reading time

Amortizing Cross-Core Coordination: Cursor Caching and Batch Processing

How cursor caching and batch processing amortize the cost of cross-core coordination in a lock-free SPSC ring buffer, so cores touch shared atomics a fraction as often.

· 13 minutes reading time

The Cross-Core Contract: Memory Ordering and Single-Writer State in Lock-Free Rust

How Release/Acquire ordering, Relaxed counters, and single-writer UnsafeCell state make lock-free Rust ring buffers correct and efficient.

· 12 minutes reading time