  The power and flexibility of software-defined networks lead to a programmable
network infrastructure in which in-network computation can help accelerating
the performance of applications. This can be achieved by offloading some
computational tasks to the network. However, what kind of computational tasks
should be delegated to the network to accelerate applications performance? In
this paper, we propose a way to exploit the usage of programmable switches to
scale up the performance of distributed key-value stores. Moreover, as a
proof-of-concept, we propose TurboKV, an efficient distributed key-value store
architecture that utilizes programmable switches as: 1) partition management
nodes to store the key-value store partitions and replicas information; and 2)
monitoring stations to measure the load of storage nodes, this monitoring
information is used to balance the load among storage nodes. We also propose a
key-based routing protocol to route the search queries of clients based on the
requested keys to targeted storage nodes. Our experimental results of an
initial prototype show that our proposed architecture improves the throughput
and reduces the latency of distributed key-value stores when compared to the
existing architectures.
