Flying Memcache: Lessons Learned from Different Acceleration Strategies

  • Dimitris Deyannis FORTH
  • Lazaros Koromilas FORTH
  • Giorgos Vasiliadis FORTH
  • Elias Athanasopoulos FORTH
  • Sotiris Ioannidis FORTH

Abstract


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.
Keywords: Graphics processing units, Instruction sets, Acceleration, Servers, Throughput, Context, Protocols
Published
2014-10-22
DEYANNIS, Dimitris; KOROMILAS, Lazaros; VASILIADIS, Giorgos; ATHANASOPOULOS, Elias; IOANNIDIS, Sotiris. Flying Memcache: Lessons Learned from Different Acceleration Strategies. In: INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD), 26. , 2014, Paris/FR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2014 . p. 25-32.