Tux: Efficient Drop-in Networking for Database Systems
Abstract
Modern high-performance OLTP systems are increasingly bottlenecked by kernel network stack and context switches arising from dispatching tasks between the network stack and DBMS worker threads. While kernel-bypass TCP stacks improve performance, they often sacrifice compatibility and robustness, in addition to leaving performance opportunities on the table due to TCP's byte-stream interface. We present \textbf{Tux}, a kernel-bypass networking stack designed for database systems that achieves high performance without giving up compatibility and robustness. \tux addresses these challenges by (1) introducing a message‑based transport protocol that decouples reliability from in‑order delivery and natively preserves message boundaries without framing or copy overhead inherent in byte-stream interface; (2) providing a flexible pushdown abstraction that lets database engines execute DBMS-specific logic directly on the network cores to avoid context-switch overhead and to exploit message-based interface; and (3) leveraging eBPF/XDP to reuse well‑maintained kernel NIC drivers for compatibility and operational ease. We implement \tux in a library called \libtux, offering both zero‑change “compatibility” mode and minimal‑change “pushdown” mode. Our implementation, \libtux, evaluated on VoltDB, Redis, ScyllaDB, Memcached, and LeanStore, improves throughput up to 2.3x, reduces median and 99th percentile latencies by up to 2.6x and 4.7x, compared to existing kernel-bypass systems with minimal modifications.
Assigned reviewers
No reviewers assigned yet.
Candidates from the panel ranked by taxonomy affinity
| # | Reviewer | Match | Load | Why |
|---|