mhtirogla
Home
Systems
API
Pricing
About
Log in
← Back
Home
›
Systems
›
Networking and edge
packet-processor
kernel-bypass packet processing
DPDK, XDP
System
Techniques · 3
Primitives · 26
packet-processor
Thread per core
concurrency · medium: Shard-per-core design: pinned threads, no shared state, message passing between cores
Packet classification
networking · medium: Multi-field rule matching (tuple space search, decision trees) and flow caches
Vector packet processing
networking · medium: Process packets in vectors through a node graph to amortise i-cache and dispatch cost
SPSC ring buffer
data-structures · low: Bounded wait-free queue for exactly one producer and one consumer thread, built from an array and two indices with acquire/release ordering.
›
Numa aware allocation
hardware-os · low: Allocate memory and pin threads on the local NUMA node; first-touch and interleave policies
Buffer pools for zero-allocation I/O
hardware-os · low: Preallocate a fixed set of aligned I/O buffers and recycle them through a free list, so the hot path never mallocs, faults or unmaps. The bounded count doubles as back pressure.
›
SIMD programming
hardware-os · low: Process 4-16 lanes per instruction with AVX2, AVX-512 or NEON via Rust std::arch, with runtime dispatch and a portable fallback.
›
Kernel-bypass networking
networking · low: User space (DPDK, AF_XDP) or an in-driver eBPF hook (XDP) handles packets straight from NIC rings, skipping sockets, for 10-40 Mpps per core.
›
MPMC bounded queue
concurrency · low: Vyukov's array queue for many producers and consumers: each slot carries a sequence number, so one CAS per operation claims a slot without locks.
›
Cuckoo hashing
data-structures · low: Every key lives in one of two candidate buckets, so lookups read at most two cache lines; inserts evict residents to their alternate bucket.
›
CPU caches and the memory hierarchy
hardware-os · low: Sizes, line widths and latencies of L1/L2/L3/DRAM on modern x86 and Apple M-series, and the data-layout rules that follow from them.
›
Virtual memory and the TLB
hardware-os · low: How page tables and TLBs translate every address, what TLB reach means, and when 2 MiB or 1 GiB huge pages pay off on Linux.
›
Ebpf xdp
networking · low: EBPF programs at the XDP/tc hooks for in-kernel packet processing at line rate
Internet checksum
networking · low: Ones-complement IP/TCP/UDP checksum, incremental update (RFC 1624) and offload
Longest prefix match
networking · low: IP prefix lookup structures (DIR-24-8, Poptrie, LC-trie) for routes, ACLs and geo-IP
Receive side scaling
networking · low: NIC hashing of flows to RX queues (RSS) and symmetric hashing for per-core processing
Cpu isolation and pinning
hardware-os · low: Isolcpus/nohz_full, thread affinity and IRQ steering for jitter-free hot threads
io_uring
networking · low: Linux async I/O through two shared-memory rings (submissions in, completions out), batching or eliminating syscalls for sockets and files alike.
›
Interval tree
data-structures · low: Index of ranges that answers "which intervals overlap this point or range?" in O(log n + k); static sorted-array form is the compact, cache-friendly choice.
›
+ 10 more primitives
System
Techniques · 3
Primitives · 26
packet-processor
Thread per core
concurrency · medium: Shard-per-core design: pinned threads, no shared state, message passing between cores
Packet classification
networking · medium: Multi-field rule matching (tuple space search, decision trees) and flow caches
Vector packet processing
networking · medium: Process packets in vectors through a node graph to amortise i-cache and dispatch cost
SPSC ring buffer
data-structures · low: Bounded wait-free queue for exactly one producer and one consumer thread, built from an array and two indices with acquire/release ordering.
›
Numa aware allocation
hardware-os · low: Allocate memory and pin threads on the local NUMA node; first-touch and interleave policies
Buffer pools for zero-allocation I/O
hardware-os · low: Preallocate a fixed set of aligned I/O buffers and recycle them through a free list, so the hot path never mallocs, faults or unmaps. The bounded count doubles as back pressure.
›
SIMD programming
hardware-os · low: Process 4-16 lanes per instruction with AVX2, AVX-512 or NEON via Rust std::arch, with runtime dispatch and a portable fallback.
›
Kernel-bypass networking
networking · low: User space (DPDK, AF_XDP) or an in-driver eBPF hook (XDP) handles packets straight from NIC rings, skipping sockets, for 10-40 Mpps per core.
›
MPMC bounded queue
concurrency · low: Vyukov's array queue for many producers and consumers: each slot carries a sequence number, so one CAS per operation claims a slot without locks.
›
Cuckoo hashing
data-structures · low: Every key lives in one of two candidate buckets, so lookups read at most two cache lines; inserts evict residents to their alternate bucket.
›
CPU caches and the memory hierarchy
hardware-os · low: Sizes, line widths and latencies of L1/L2/L3/DRAM on modern x86 and Apple M-series, and the data-layout rules that follow from them.
›
Virtual memory and the TLB
hardware-os · low: How page tables and TLBs translate every address, what TLB reach means, and when 2 MiB or 1 GiB huge pages pay off on Linux.
›
Ebpf xdp
networking · low: EBPF programs at the XDP/tc hooks for in-kernel packet processing at line rate
Internet checksum
networking · low: Ones-complement IP/TCP/UDP checksum, incremental update (RFC 1624) and offload
Longest prefix match
networking · low: IP prefix lookup structures (DIR-24-8, Poptrie, LC-trie) for routes, ACLs and geo-IP
Receive side scaling
networking · low: NIC hashing of flows to RX queues (RSS) and symmetric hashing for per-core processing
Cpu isolation and pinning
hardware-os · low: Isolcpus/nohz_full, thread affinity and IRQ steering for jitter-free hot threads
io_uring
networking · low: Linux async I/O through two shared-memory rings (submissions in, completions out), batching or eliminating syscalls for sockets and files alike.
›
Interval tree
data-structures · low: Index of ranges that answers "which intervals overlap this point or range?" in O(log n + k); static sorted-array form is the compact, cache-friendly choice.
›
Swiss table
data-structures · low: Open-addressing hash table that filters 8-16 slots at once with 1-byte hash tags and SIMD, giving fast lookups at 87.5 % load.
›
Packet header parsing
networking · low: Parse graph state machines for Ethernet, IP, TCP and UDP headers in hardware and software
Tcam ternary matching
networking · low: TCAM ternary match tables: priorities, range expansion, power and capacity trade-offs
LRU and CLOCK
systems · low: LRU evicts the least recently used entry via hash map plus linked list; CLOCK approximates it with a reference bit, so hits take no lock.
›
Hardware prefetching
hardware-os · low: Stride, stream and spatial prefetchers; software prefetch hints and when they help
False sharing
concurrency · low: Independent variables written by different cores on one cache line force the line to bounce between cores; pad or regroup hot data to fix it.
›
Memory ordering
concurrency · low: What Relaxed, Acquire, Release and SeqCst atomics actually guarantee, what they cost on x86 and ARM, and which one each pattern needs.
›
Fast hash functions
data-structures · low: Non-cryptographic hashes built from 64×64→128-bit multiplies and xor-shifts; pick by key size, trust level and whether the hash is persisted.
›
fsync, O_DSYNC and O_DIRECT
hardware-os · low: What fsync, fdatasync, O_DSYNC, O_DIRECT and F_FULLFSYNC really guarantee on Linux and macOS, and the exact call sequences for crash-safe files.
›
Huge pages
hardware-os · low: 2 MB/1 GB pages to cut TLB misses; THP vs explicit hugetlbfs
Copy for AI
Similar systems
Share the most building blocks with this one.
nat-gateway
18 %
sdn
17 %
stateful-firewall
17 %
l4-load-balancer
16 %