- SPSC Introduction
- SPSC Lock-Free Ring Buffer for High-Frequency Trading
- Huge Pages & TLB in SPSC
- Detailed Design Notes and Trade-Offs
- Memory Ordering in SPSC Lock-Free Ring Buffers
- Atomics vs. Mutexes in SPSC
- Application in HFT
- Application in HFT: In-Depth Analysis
- Importance of queue size in HFT
- Vertical scaling in HFT
- Horizontal scaling in HFT
- Message Passing Interface (MPI) in HFT
- Five Leading commercial HFT platforms
- Stage 1: NIC → Market Data Handler (Kernel Bypass)
- Stage 2: Market Data Parser → Order Book Engine
- Stage 3: Order Book Engine → Alpha / Signal Engine
- Stage 4: Signal Engine → Order Management System (OMS)
- Stage 5: OMS → Exchange Gateway (Outbound)
- Stage 6: Exchange Gateway → OMS (Inbound Execution Reports)
- Stage 7: OMS → Risk Manager
- Stage 8: Any Thread → Logger
- Order book architecture in HFT systems
- Matching Engine Architecture for HFT
- Intrusive Linked List for an HFT Order Queue
- Flat Circular Array Order Queue for HFT
- Flat Hash Map + Sorted Intrusive Tree for an HFT Order Queue
- Kernel Bypass: DPDK & Solarflare OpenOnload
- CPU Pinning
- Cache Pathologies
- Rocky Linux
- RHEL (Red Hat Enterprise Linux)
- AlmaLinux
- Fedora Linux
- x86-64 CPUs for High-Frequency Trading
- Setup of x86-64 Linux HFT System
- x86-64 vs. IBM POWER on Linux
- Non-Uniform Memory Access (NUMA) Architecture
- Cache Coherency - Intel CPUs
- Cache Coherency - AMD CPUs
- Cache Coherence Across NUMA Nodes
- Performance Analysis Tools for C++ HFT Systems
- Compiler Optimization Techniques for C++ in HFT Systems
- KDB+
- QuestDB
- InfluxDB
- TimescaleDB
- ClickHouse
- Aeron Messaging Transport Library
- LMAX Disruptor Messaging Transport Library
- The ABA Problem in Lock-Free Data Structures
- In C++:
volatilevs.std::atomic - Static and Dynamic Inheritance in C++
- Static Inheritance in C++: A Deep Technical Analysis
- Trading at light speed by David Gross, Meeting C++ 2022
- Lock-Free Single Producer Single Consumer FIFO, CppCon 2023
- Lock-Free Programming by Herb Sutter, CppCon 2014
- Microseconds matter. Ring Buffer (SPSC queue) by Erik Rigtorp
- Ultrafast Trading Systems by David Gross
- Unlocking Modern CPU Power by Fedor G Pikus
- C++ atomics, from basic to advanced by Fedor G Pikus
- Every nanosecond counts. Lock-Free Ring Buffer by Joe Wood
- Atomics vs. Mutexes
- QuestDB
- SPSC queue size
- 🎥 "Lock-Free Programming (or, Juggling Razor Blades), Part I", 16 Oct 2014
- 🎥 "Lock-Free Programming (or, Juggling Razor Blades), Part II", 16 Oct 2014
- 🎥 "Low-Latency Lock-Free Ring-Buffer in C - Lock Free Programming (Part #2)", 13 Mar 2024
- 🎥 "Single Producer Single Consumer Lock-free FIFO From the Ground Up", CppCon 2023, 22 Feb 2024
- 🎥 "SPSC Queues: From Naive to Lock-Free", 24 Jan 2026
- 🎥 "Trading at light speed: designing low latency systems in C++", Meeting C++ 2022, 2 Jan 2023
- 🎥 "What is Low Latency C++? (Part 1)", CppNow 2023, 18 Aug 2023
- 🎥 "What is Low Latency C++? (Part 2)", CppNow 2023, 18 Aug 2023
- 🎥 "When Nanoseconds Matter: Ultrafast Trading Systems in C++", CppCon 2024, 28 Feb 2025
- Erik Rigtorp, "Optimizing a Ring Buffer for Throughput", 14 April 2026
- Erik Rigtorp, SPSCQueue GitHub repo
- Jackson Allan, "An Extensive Benchmark of C and C++ Hash Tables", 14 Apr 2026
- Peter Mbanugo, "Building a Lock-Free Single Producer, Single Consumer Queue (FIFO)", 15 Apr 2026
- C++ Memory Model (cppreference)
- Boost C++ Libraries, SPSC Lock Free Queue
- Dmitry Vyukov Implementation
- C implementation of Dmitry Vyukov's Bounded MPMC queue
- Ode to a Vyukov Queue
- Memory Bounds for Concurrent Bounded Queues
- JF Bastien, Deprecating volatile, Published Proposal, 1 Oct 2018
- Paul E. McKenney, "Is Parallel Programming Hard, And, If So, What Can You Do About It?", 18 December 2025, Release v2025.12.18a
- Paul E. McKenney, "Is Parallel Programming Hard, And, If So, What Can You Do About It?", 11 June 2023, Release v2023.06.11a
- Paul E. McKenney, "Is Parallel Programming Hard, And, If So, What Can You Do About It?", Original repository for the book
- Paul E. McKenney, "Is Parallel Programming Hard, And, If So, What Can You Do About It?", GitHub mirror repository for the book
- Paul E. McKenney Home Web Page