December 16, 2025
No locks, lots of hot takes
Put a ring on it: a lock-free MPMC ring buffer
Dev wedding bells spark 'not new' chants and citation wars
TLDR: A developer unveiled a speedy, drop-data ring buffer for many readers and writers, aiming to keep systems fast under load. The crowd debated novelty and accuracy—some demanded credit to Disruptor and FASTER, others corrected memory details—while pragmatists asked how to add drop behavior to existing queues.
A new “put a ring on it” post promised a lock-free ring buffer that can juggle many writers and readers without slowing down—basically, a speedy queue that drops old messages when life gets hectic. The pitch: keep systems alive by tossing less important data, just like the Linux kernel’s eBPF diagnostics do when things get spicy. The community? They crashed the reception. One camp shouted, “We’ve seen this wedding dress before,” pointing to academic work like FASTER and industry stalwarts. Another grabbed the mic to demand credit: where’s Disruptor? If you’re going to reinvent the ring, at least invite the LMAX folks to the party.
Then came the engineers clutching the rulebook. A commenter corrected the article’s take on “memory models”—that’s how computers guarantee order in multi-threaded traffic—dropping the line, “a relaxed atomic is still atomic,” aka: don’t muddy the math. Meanwhile, a DIY crowd chimed in with their own war stories, inspired by the author’s earlier futex post, admitting their “simple” buffer turned out to be a puzzle box. And the practical hackers asked the real question: can we just tweak Vyukov’s MPMC queue to add a “drop handler” without fancy 128‑bit tricks?
Verdict: half the room is cheering the clarity and performance-first mindset, while the other half is rolling eyes and tallying citations. Beyoncé said it best—if you like it, you should’ve put a reference on it.
Key Points
- •Ring buffers are fixed-size FIFO queues that drop data when full, typically the oldest, to maintain performance under load.
- •Circular buffers offer alternatives when full (blocking, growing, or signaling errors), but ring buffers proactively drop data.
- •The Linux kernel uses ring buffers to relay eBPF probe events to user space, allowing configurable drop-from-front or drop-from-back policies.
- •Lock contention around head and tail pointers limits scalability, especially as the head wraps around and approaches the tail.
- •The article outlines requirements for a correct ring buffer and seeks a lock-free MPMC implementation beyond common SPSC/SPMC/MPSC compromises.