论文部分内容阅读
在大型互联网系统中,内存键值存储系统被广泛运用,以提供低延迟、高吞吐率的数据访问,但是内存中的数据在服务器掉电重启后将会丢失。因此诸如Redis等系统会定期将内存中的数据刷到磁盘或固态硬盘中。同时,为了提供容错能力,这些系统会将数据备份到远程服务器的持久性存储设备上。一种典型的备份方式为主备份复制。如此,磁盘(固态硬盘)和网络成为了这些系统的延迟的瓶颈。近年来,非易失性内存和远程直接内存访问技术逐渐被广泛地关注和研究。非易失性内存因其高存储密度、高访问速度以及可直接寻址的优点,被用于直接构建计算机系统的主内存。而远程直接内存访问技术则能够直接读写远程计算机的内存空间而不需要对端计算机处理器的参与,因而可以大大降低系统的延迟。为了克服传统键值存储系统的的性能,延迟瓶颈,本文将研究如何利用远程直接了内存访问技术来构建低延迟的基于非易失性内存的分布式键值存储系统。在本文所开发的系统中,非易失性内存不仅降低了请求延迟,同时使得同步的(快速)主备份复制成为可能。对于一个插入数据的操作,产生的所有对非易失性内存的修改都被系统收集和记录下来。这些修改将在主备份复制的时候,通过远程直接内存写入操作,从主节点同步到从节点的非易失性内存对应的地址处。本文的工作主要包含如下几个方面:·设计、实现了基于RDMA和NVM的低延迟分布式键值存储系统的原型:我们围绕非易失性内存的速度快、带宽高和持久性的特点,结合远程直接内存访问技术的低延迟的优点,提供了微秒级的快速数据访问服务。特别地,我们设计了延迟极低的主备份复制,使得同步复制成为可能。·RDMA在特定场景下的应用与优化:我们分析了分布式存储系统中,远程直接内存访问技术的不同应用场景。针对这些应用场景,有选择地使用不同的RDMA verb并作出优化,在不牺牲系统的可扩展性的基础上,尽可能地降低请求的延迟时间。·低延迟同步主备份复制的设计:本文利用非易失性内存的持久性和远程直接内存访问技术的低延迟优点,设计了具有极低延迟的同步主备份复制。相对现代分布式存储系统,提供了更强的一致性保证。同时,我们分析复制过程中的性能延迟瓶颈,考察复制过程中可能发生的主从节点故障并设计相应的处理机制。·请求延迟性能评估:本文对设计的基于非易失性内存的分布式存储系统的延迟性能进行详细评估。特别地,我们对请求链路中的每一个模块进行了单独的延迟分析;考察不同请求下,每一模块的延迟时间的变化。对于典型的查询请求和插入请求,我们的系统能达到6到8微秒的请求延迟,而主备份复制时间则在2到3微秒之间。最后,我们和Memcached进行了对比。实验表明,我们的设计只有Memcached请求延迟的五分之一。