DINT: Fast In-Kernel Distributed Transactions with eBPF
Talkat 21st USENIX Symposium on Networked Systems Design and Implementation (NSDI '24) · 2024-04-16..04-18·
summary
DINT implements eBPF offload of frequent-path transaction operations into the kernel (2K lines of eBPF plus 4K C++) using kernel maps, per-core ring buffers, and UDP fallbacks for rare cases. It embeds Bloom filter buckets to avoid user-space lookups and a lock manager using atomic CAS; evaluation on CloudLab shows up to 2.6× throughput versus a DPDK-based baseline and adds at most 10%/16% latency (average/99th) while preserving kernel safety and resource sharing.
AI-written summary · about
chapters (13)
- 0:00DINT introduction and goals
- 1:49Distributed transactions overview
- 3:36Kernel networking overhead
- 5:47Kernel bypass limitations
- 7:13Kernel safety with eBPF
- 9:44eBPF fallback for complex cases
- 10:26DINT high-level design
- 11:10Lock manager offload to eBPF
- 12:39Key-value store offload to eBPF
- 14:46System optimizations and gains
- 15:51Implementation setup
- 16:34Performance results
- 17:59Future improvements
related talks
32meBPF: BPF kernel infrastructure
37mEfficient and Flexible Virtual Machine Networking Through eBPF
15meTran: Extensible Kernel Transport with eBPF
16mElectrode: Accelerating Distributed Protocols with eBPF
33mBringing packet queueing to XDP
30mCilium's BPF kernel datapath revamped
23mDPDK in Databases: Why Isn’t It More Common?
25mEvolution of Direct Server Return (DSR) implementation for containerized applications
