PARALLEL DATA LAB 

PDL Abstract

Tigger: A Database Proxy That Bounces With User-Bypass

Bulletin of the IEEE Computer Society Technical Committee on Data Engineering, 42(2): 32-46 (2019).

Matthew Butrovich, Karthik Ramanathan, John Rollinson*, Wan Shen Lim, William Zhang, Justine Sherry, Andrew Pavlo

Carnegie Mellon University
* Army Cyber Institute

http://www.pdl.cmu.edu/

Developers often deploy database-specific network proxies wherebyapplications connect transparently to the proxy instead of directly connecting to the database management system (DBMS). This indirection improves system performance through connection pooling, load balancing, and other DBMS-specific optimizations. Instead of simply forwarding packets, these proxies implement DBMS protocol logic (i.e., at the application layer) to achieve this behavior. Consequently, existing proxies are user-space applications that process requests as they arrive on network sockets and forward them to the appropriate destinations. This approach incurs inefficiencies as the kernel repeatedly copies buffers between user-space and kernel-space, and the associated system calls add CPU overhead.

This paper presents user-bypass, a technique to eliminate these overheads by leveraging modern operating system features that support custom code execution. User-bypass pushes application logic into kernel-space via Linux’s eBPF infrastructure. To demonstrate its benefits,we implemented Tigger, a PostgreSQL-compatible DBMS proxy using user-bypass to eliminate the overheads of traditional proxy design. We compare Tigger’s performance against other state-of-the-art proxies widely used in real-world deployments. Our experiments show that Tigger outperforms other proxies — in one scenario achieving both the lowest transaction latencies (up to 29% reduction) and lowest CPU utilization (up to 42% reduction). The results show that user-bypass implementations like Tigger are well-suited to DBMS proxies’ unique requirements.

FULL PAPER: pdf