This Paper Is Included in the Proceedings of the 11th Usenix Symposium on Networked Systems Design and Implementation (nsdi '14). Mica: a Holistic Approach to Fast In-memory Key-value Storage Mica: a Holistic Approach to Fast In-memory Key-value Storage

This Paper Is Included in the Proceedings of the 11th Usenix Symposium on Networked Systems Design and Implementation (nsdi '14). Mica: a Holistic Approach to Fast In-memory Key-value Storage Mica: a Holistic Approach to Fast In-memory Key-value Storage
复制标题

DOI:
--
复制
发表时间:
2014-04
期刊:
--
影响因子:
--
通讯作者:
Hyeontaek Lim;Dongsu Han;D. Andersen;M. Kaminsky
Hyeontaek Lim;Dongsu Han;D. Andersen;M. Kaminsky
中科院分区:
其他
文献类型:
--
作者:
Hyeontaek Lim;Dongsu Han;D. Andersen;M. Kaminsky

文献摘要

被引文献

相似文献

MICA是一种可扩展的内存键值存储,使用单个通用多核系统每秒处理6560万到7690万键值操作。MICA比当前最先进的系统快4-13.5倍,同时在各种混合读写工作负载下提供一致的高吞吐量。MICA采用了一种整体的方法,它包含了请求处理的所有方面,包括并行数据访问、网络请求处理和数据结构设计,但是在这三个领域中都做出了非常规的选择。首先,MICA通过支持对分区数据的并行访问来优化多核体系结构。其次,为了实现高效的并行数据访问,MICA使用客户端提供的信息将客户端请求直接映射到服务器网卡级别的特定CPU内核,并采用绕过内核的轻量级网络堆栈。最后,MICA的新数据结构——循环日志、有损并发散列索引和大容量链——以低开销处理读写密集型工作负载。
MICA is a scalable in-memory key-value store that handles 65.6 to 76.9 million key-value operations per second using a single general-purpose multi-core system. MICA is over 4-13.5x faster than current state-of-the-art systems, while providing consistently high throughput over a variety of mixed read and write workloads. MICA takes a holistic approach that encompasses all aspects of request handling, including parallel data access, network request handling, and data structure design, but makes unconventional choices in each of the three domains. First, MICA optimizes for multi-core architectures by enabling parallel access to partitioned data. Second, for efficient parallel data access, MICA maps client requests directly to specific CPU cores at the server NIC level by using client-supplied information and adopts a light-weight networking stack that bypasses the kernel. Finally, MICA's new data structures--circular logs, lossy concurrent hash indexes, and bulk chaining--handle both read-and write-intensive workloads at low overhead.