低延迟分布式存储系统技术方案

技术编号:17660419 阅读:84 留言:0更新日期:2018-04-08 11:56
本发明专利技术提供了一种低延迟分布式存储系统,将数据存储在可字节寻址的非易失性内存中,通过远程直接内存访问技术读写存储系统的数据,并将数据备份到多个冗余节点,以达到低延迟和高可用性。本发明专利技术使用中心化的调度器模块实现对多个服务器的集群及其索引信息的管理。客户端只需在连接到存储系统时需要与调度器模块通信,其后的所有请求,都直接发送到存储了相应数据的服务器节点。本发明专利技术基于非易失性内存和远程直接内存访问技术,可以向客户端提供键值存储系统接口,并提供低延迟的数据存储服务。

【技术实现步骤摘要】
低延迟分布式存储系统
本专利技术涉及存储
,具体地,涉及一种基于非易失性内存和远程直接内存访问技术的低延迟分布式存储系统。
技术介绍
内存键值存储系统已被广泛运用于各种大型软件系统中以提供高带宽低延时的数据存储服务。目前典型的内存键值存储系统通常将数据存储在内存中以减小读写延迟,并周期性的将数据写到磁盘来保证数据的持久性。另外,为了提高容错率,数据通常网络连接会以主从的方式复制到若干个备份机器。因此,磁盘性能和网络连接速度是限制目前内存键值存储系统的两个瓶颈因素,如何克服这两个瓶颈从而,因素是本领域急需解决课题。涉及的专业术语:RDMA:RemoteDirectMemoryAccess,远程直接内存访问。NVM:Non-volatileMemory,非易失性内存。DRAM:DynamicRandomAccessMemory,动态随机存储器,即现在广泛使用的内存。RDMA及其LLP(LowerLayerProtocol)可以在NIC(网卡)上实现(称为RNIC)。
技术实现思路
针对现有技术中的缺陷,本专利技术的目的是提供一种低延迟分布式存储系统。根据本专利技术提供的一种低延迟分布式存储系统,包括:调度器模块:管理存储系统中的服务器节点和客户端,同时,存储了存储系统的索引信息,将客户端导向对应的服务器节点;非易失性内存存储模块:管理存储在非易失性内存中的数据,同时,向客户端提供并发的低延迟的存储服务;远程直接内存存取模块:提供对所述非易失性内存存储模块中的数据进行远程访问的能力,使用远程直接内存读写功能直接操作所述非易失性内存存储模块中的数据,同时,通过绕过操作系统内核的以太网协议栈,降低存储系统的访问延迟;数据冗余备份模块:对存储系统中的数据进行冗余备份,包括将数据和元数据同步到物理隔离的备份节点,和保证主从节点数据的一致性,所述数据冗余备份模块通过对修改的数据进行写日志,以达到维持主从节点数据的一致性。优选的,管理存储系统中的服务器节点和客户端包括:对服务器节点的添加、删除和客户端的加入、离开进行管理,对存储系统的索引信息进行更新和维护。优选的,管理存储在非易失性内存中的数据包括:数据分片:将存储于单一服务器节点的数据分为若干个tablet表,每个tablet表对应了键值数据哈希空间中连续不相交的一段空间,每个tablet表都有独立的线程进行访问操作;多线程执行:服务器节点的所有请求,根据其哈希值计算得到相应存在于的tablet表,并被保存在tablet表的请求队列中,tablet表对应的线程总是取得并执行请求队列头部的请求;基于哈希表的索引结构:每个tablet表中均包含一个独立的哈希表结构,存储了该tablet表中所有键值数据的键值以及键的哈希值,对于冲突的键,采用开链法解决冲突,哈希表提供了对tablet表中的数据进行查询、插入和删除的操作;非易失性内存分配器:每个tablet表的存储空间由一个独立的非易失性内存分配器管理,对于键值数据的插入,由非易失性内存分配器分配相应的空间;对于键值数据的删除,由非易失性内存分配器释放相应的空间。优选的,提供对所述非易失性内存存储模块中的数据进行远程访问的能力包括:远程过程调用接口:在infiniband所提供的远程直接内存访问原语的基础上,对上层提供远程过程调用接口,由客户端发起操作,通过infiniband协议传输到目的服务器,再由目的服务器在本地执行相应的操作;通信语义模型:使用基于面向报文的非可靠传输的channel型原语,支持一对多的通信能力,为数据库提供可扩展性;用户态协议层:使用infiniband提供的原语库,旁路了操作系统内核的网络协议层,由用户态程序直接访问infiniband网卡发送和接收数据。优选的,远程过程调用接口还包括相对于存储系统扩展的Add操作,检测提供的键值数据是否已经存在于数据库中。优选的,所述数据冗余备份模块包括:收集单次请求的所有修改:通过将一次请求的所有修改同步到备份节点,达到对数据的备份,通过非易失性内存分配器来达到对每一次写入的跟踪,所有的写入数据以及相应的偏移地址都被记录到特定的发送缓冲区中;备份数据日志:对备份数据进行写日志,所有待备份的数据均被事先写入到非易失性内存中的日志区中,在服务器崩溃重启时,将首先读取日志中的数据并执行相应的写入操作,以达到与其它数据副本的一致性;面向连接的远程直接内存写入:在主节点与从节点之间的数据传输采用了面向连接的远程直接内存写入技术。与现有技术相比,本专利技术具有如下的有益效果:本专利技术基于非易失性内存和远程直接内存访问技术,可以向客户端提供键值存储系统接口,并提供低延迟的数据存储服务。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为本专利技术调度器模块与集群的架构图;图2为本专利技术空闲链表示意图;图3为本专利技术tablet表的工作原理图;图4为本专利技术的主从复制示意图。具体实施方式下面结合具体实施例对本专利技术进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本专利技术,但不以任何形式限制本专利技术。应当指出的是,对本领域的普通技术人员来说,在不脱离本专利技术构思的前提下,还可以做出若干变化和改进。这些都属于本专利技术的保护范围。本专利技术提供的一种低延迟分布式存储系统,包括:调度器模块、非易失性内存存储模块、远程直接内存存取模块以及数据冗余备份模块。调度器模块:管理存储系统中的服务器节点和客户端,包括服务器节点的添加、删除和客户端的加入、离开。同时,存储了存储系统的索引信息,对存储系统的索引信息进行更新和维护,将客户端导向对应的服务器节点。具体的包括如下步骤:调度器启动步骤:集群中,调度器首先启动,初始化集群配置信息,准备索引数据结构,并在固定端口等待所有服务器节点的加入请求。调度器添加服务器节点步骤:1、验证服务器节点合法性,为服务器节点分配全局唯一ID;2、更新索引数据结构,添加该服务器节点。调度器广播索引信息步骤:在集群的所有服务器节点加入完毕时,调度器更新完成索引信息,并将索引信息广播给所有的服务器节点。调度器接受客户端请求步骤:1、调度器在固定端口等待客户端的接入请求;2、客户端接入后,将集群的索引信息发送给客户端非易失性内存存储模块:管理存储在非易失性内存中的数据,包括数据的查询、修改、写入和删除。同时,通过数据分片技术,向客户端提供并发的低延迟的存储服务。其具体包括如下部分:数据分片:将存储于单一服务器节点的数据分为若干个tablet表,每个tablet表对应了键值数据哈希空间中连续不相交的一段空间,每个tablet表都有独立的线程进行访问操作;多线程执行:服务器节点的所有请求,根据其哈希值计算得到相应存在于的tablet表,并被保存在tablet表的请求队列中,tablet表对应的线程总是取得并执行请求队列头部的请求;基于哈希表的索引结构:每个tablet表中均包含一个独立的哈希表结构,存储了该tablet表中所有键值数据的key(键)值以及键的哈希值,对于冲突的键,采用开链法解决冲突,哈希表提供了对tablet表中的数据进行查询、插入和删除的操作;非易失性内存分配器:每个tablet表的存储空间由一个独立的非易失性内存本文档来自技高网...
低延迟分布式存储系统

【技术保护点】
一种低延迟分布式存储系统,其特征在于,包括:调度器模块:管理存储系统中的服务器节点和客户端,同时,存储了存储系统的索引信息,将客户端导向对应的服务器节点;非易失性内存存储模块:管理存储在非易失性内存中的数据,同时,向客户端提供并发的低延迟的存储服务;远程直接内存存取模块:提供对所述非易失性内存存储模块中的数据进行远程访问的能力,使用远程直接内存读写功能直接操作所述非易失性内存存储模块中的数据,同时,通过绕过操作系统内核的以太网协议栈,降低存储系统的访问延迟;数据冗余备份模块:对存储系统中的数据进行冗余备份,包括将数据和元数据同步到物理隔离的备份节点,和保证主从节点数据的一致性,所述数据冗余备份模块通过对修改的数据进行写日志,以达到维持主从节点数据的一致性。

【技术特征摘要】
1.一种低延迟分布式存储系统,其特征在于,包括:调度器模块:管理存储系统中的服务器节点和客户端,同时,存储了存储系统的索引信息,将客户端导向对应的服务器节点;非易失性内存存储模块:管理存储在非易失性内存中的数据,同时,向客户端提供并发的低延迟的存储服务;远程直接内存存取模块:提供对所述非易失性内存存储模块中的数据进行远程访问的能力,使用远程直接内存读写功能直接操作所述非易失性内存存储模块中的数据,同时,通过绕过操作系统内核的以太网协议栈,降低存储系统的访问延迟;数据冗余备份模块:对存储系统中的数据进行冗余备份,包括将数据和元数据同步到物理隔离的备份节点,和保证主从节点数据的一致性,所述数据冗余备份模块通过对修改的数据进行写日志,以达到维持主从节点数据的一致性。2.根据权利要求1所述的低延迟分布式存储系统,其特征在于,管理存储系统中的服务器节点和客户端包括:对服务器节点的添加、删除和客户端的加入、离开进行管理,对存储系统的索引信息进行更新和维护。3.根据权利要求1所述的低延迟分布式存储系统,其特征在于,管理存储在非易失性内存中的数据包括:数据分片:将存储于单一服务器节点的数据分为若干个tablet表,每个tablet表对应了键值数据哈希空间中连续不相交的一段空间,每个tablet表都有独立的线程进行访问操作;多线程执行:服务器节点的所有请求,根据其哈希值计算得到相应存在于的tablet表,并被保存在tablet表的请求队列中,tablet表对应的线程总是取得并执行请求队列头部的请求;基于哈希表的索引结构:每个tablet表中均包含一个独立的哈希表结构,存储了该tablet表中所有键值数据的键值以及键的哈希值,对于冲突的键,采用开链法解决冲突,哈希表提供了对tablet表中的数据进行查询...

【专利技术属性】
技术研发人员:黄林鹏董康平沈艳艳
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1