|
|
|
In recent years, the explosive growth of high-frequency data access requirements had fueled the proliferation of in-memory key-value stores. Redis is a widely used in-memory key-value store, which provides high throughput and flexibility. However, Redis has two problems, memory fragmentation and high overhead network I/O, which are critical to the overall performance. In this paper, we present MES, a memory-efficient key-value storage with user-level network stack. Our contributions include: (1) Log-structured segment memory allocator that alleviates memory fragmentation with simplified memory management; (2) Parallel hash index structure that accelerates the query processing; (3) Efficient user-level network stack that reduces the high overhead of network I/O. We evaluate our system MES against the latest version of Redis, and our experiments illustrate that our system is 4x faster than Redis across various skewness, write-intensiveness and key-value sizes.
|