目录
introduction
1.背景
- RAM在数据中心的使用越来越多。根据ram的使用,将存储系分为两种类型
a) memory-cached systems:将数据存储在非易失性存储中,使用DRAM作为cache
b) in-memory storage systems:将数据完整地存储在DRAM之中,使用非易失性存储进行掉电恢复。
low latency, high bandwidth, and high I/O throughput
c) 为了加速系统性能并减少功耗:
(1) RDMA(remote direct memory access):是一种完全由硬件执行I/O交换的工作方式.在这种方式中, DMA 控制器从CPU 完全接管对总线的控制,数据交换不经过CPU ,而直接在存和IO设备之间进行。RNIC-RDMA based network interface
(2) 将部分应用以及network功能移到FPGA进行加速
-
Network communication:决定分布式存储系统性能的重要因素。两种类型的技术被使用:
a) One-side RDMA:shifts the storage workload to clients
b) Two-side RDMA:performs the storage in the servers where the performance is bounded by CPU -
在数据密集型应用如数据中心,传统的冯诺依曼结构就称为限制性能的瓶颈。
a) RDMA 通过减少network stack中CPU的参与提高性能。
b) 通过FPGA进行加速 -
key-value store (KVS) systems
a) 在目前的基于硬件的KVS中,KVpair的大小可以是固定或者可改变的。
当前hardware-based可支持的最大value大小为1 Mbytes (大部分小于4kbytes)但是和software based KVS还是有较大的差距。
b) 根据KVPs的储存模式可以分为两种设计思路 :decoupling/non-decooupling mode
(1) 前者是将KVPs作为整体进行储存;后者是将KV分离,再单独建hash table进行链接。
(2) 在设计支持大value存储的KVS中,前者更加划算(因为key对于KVP的整体大小贡献不大)
c) 基于硬件的KVS可以选择不同的存储媒介方案
(1) 当前工作中的方案设计(CAM内容寻找址)
(2) 存储媒介的选择主要基于两个方面
storage capacity
data access latency
主要有三种选择SRAM,DRAM,Flash
i) SRAM or DRAM is usually utilized to store the hash table, whereas DRAM or Flash memory for values.
ii) 考虑到数据中心的规模问题,DRAM成为hash table的首选。value有的存储在DDR3 Memory中,有的则为flash
d) hash collision problem :由于映射表中不同的KVP可能指向同一个stora