Flying Memcache: Lessons Learned from Different Acceleration Strategies - Deyannis, Dimitris; Koromilas, Lazaros; Vasiliadis, Giorgos; Athanasopoulos, Elias; Ioannidis, Sotiris (Anais do International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD); 2014: Anais do XXVI International Symposium on Computer Architecture and High Performance Computing, 2014)
Distributed key-value and always-in-memory store is employed by large and demanding services, such as Facebook and Amazon. It is apparent that generic implementations of such caches can not meet the needs of every application, therefore further research for optimizing or speeding up cache operations is required. In this paper, we present an incremental optimization strategy for accelerating the most popular key-value store, namely memcached. First we accelerate the computational unit by utilizing commodity GPUs, which offer a significant performance increase on the CPU-bound part of memcached, but only moderate performance increase under intensive I/O. We then proceed to improve I/O performance by replacing TCP with a fast UDP implementation in user-space. Putting it all together, GPUs for computational operations instead of CPUs, and UDP for communication instead of TCP, we are able to experimentally achieve 20 Gbps line-rate, which significantly outperforms the original implementation of memcached.