Key-Value Stores (KVS) are wildly prevalent in Web systems and services, and it is well-known that KVS systems exchange huge amount of small messages. Such workload unveils a new performance issue for TCP/IP processing. User-space networking such as Intel DPDK is a promising technology that addresses this issue by leveraging multi-core architecture and application specific processing without the intervention of the kernel. This paper shows the effects of user-space TCP/IP stack that works on top of Intel DPDK for high performance KVS systems. We have compared the performance of short message processing on an HTTP server and two KVS servers, Redis and memcached, between the Linux kernel TCP/IP stack and a user-space TCP stack over 10 Gigabit Ethernet link. We have used mTCP with Intel DPDK as a user-space TCP/IP stack. Our experimental results show that an mTCP-based KVS server with a single thread improves the performance by up to 35 %; the performance of an mTCP-based server increases as the number of threads increases and an mTCP server finally outperforms up to 5.5 times faster than a standard TCP server. Our observation leads to optimistic conclusions on the feasibility of a fast and scalable KVS server utilizing a user-space TCP/IP stack.
['Supachai Thongprasit', 'Vasaka Visoottiviseth', 'Ryousei Takano']
Toward Fast and Scalable Key-Value Stores Based on User Space TCP/IP Stack