一种基于RMDA高速网络和跳表的数据存储架构方法技术

技术编号:24353028 阅读:64 留言:0更新日期:2020-06-03 01:59
本发明专利技术公开发明专利技术了一种基于RMDA高速网络和跳表的数据存储架构方法,其特点是采用任务调度器分配本地和远程任务和跳表的数据存储架构,基于R‑skiplist索引设计的访问并发控制策略和范围扫描过程,通过任务调度器将以R‑skiplist形式存储在服务器上的数据进行本地和远程任务分配,实现RDMA网络通信的高带宽和低延迟的数据访问。本发明专利技术与现有技术相比具有较低的延迟、更高的带宽和数据访问吞吐量,减少远程访问中的通信时间,大大节省了一些网络资源,有效避免了服务器数据传输的CPU占用和写入不存在冲突。

A data storage architecture based on rmda high speed network and hop table

【技术实现步骤摘要】
一种基于RMDA高速网络和跳表的数据存储架构方法
本专利技术涉及数据库系统
,尤其是一种基于高带宽低延迟的RMDA网络和跳表的数据存储架构方法。
技术介绍
远程直接内存访问(RDMA)通过直接从远程计算机访问内存来实现低延迟的网络访问。它绕过操作系统并支持零复制网络,从而在网络访问中实现了高带宽和低延迟。RDMA中有两种命令可用于远程内存访问,一种命令为单边操作:包括Send/Recv,类似于套接字编程,在客户端发送RDMASend之前,需要在服务器端先发起RDMArecv,并附加一个地址,该地址指示即将到来的消息的存储位置;另一种命令为双边操作:包括Read/Write。内存语义上,在远程计算机上存储消息的内存地址是由客户端分配的,这消除了远程计算机(服务器)的CPU消耗。单边操作比双边操作提供相对更高的带宽和更低的延迟,然而,RDMA中使用的传统skiplist的现有并发控制方法,无论有锁还是无锁,都会消耗大量CPU资源,因为它们都需要增加一些步骤来处理操作中的各种冲突。另外其节点是随机存储的,因此一次RDMA往返只能获得一个节点,通过RDMA远程遍历传统skiplist的多次通信会消耗大量网络资源。现有技术的客户端-服务器设计中,服务器主要负责处理操作,而客户端仅发送RPC请求并从服务器接收传回的消息。当本地访问操作的并发性很高时,本地节点的CPU将成为应用程序的性能瓶颈,许多任务将被阻塞。
技术实现思路
本专利技术的目的是针对现有技术的不足而设计的一种基于RMDA高速网络和跳表的数据存储架构方法,采用数据以R-skiplist形式存储在服务器上,通过任务调度器分配本地和远程任务,基于R-skiplist索引设计的访问并发控制策略和扫描过程,实现RDMA网络通信的高带宽、低延迟和数据访问吞吐量更高,大大减少远程访问中的通信时间,从而节省了一些网络资源,有效避免了服务器数据传输的CPU占用和写入不存在冲突。本专利技术的目的是这样实现的:一种基于RMDA高速网络和跳表的数据存储架构方法,其特点是采用任务调度器分配本地和远程任务和跳表的数据存储架构,基于R-skiplist索引设计的访问并发控制策略和范围扫描过程,通过任务调度器将以R-skiplist形式存储在服务器上的数据进行本地和远程任务分配,实现RDMA网络通信的高带宽和低延迟的数据访问。所述数据存储架构包括:A1:在RDMA网络中,当服务器通过访问队列(CQ)识别到客户端通过PRC发送的请求时,首先通过检测当前CPU资源利用率等因素来确定其访问方式,判定过程主要由任务调度部分负责;A2:如果判定结果为本地访问,则请求由本地线程池中的一个线程执行,然后将结果返回给客户端;A3:如果确定的结果是远程访问,调度线程将请求返回给客户端,当返回的信息中有远程访问标志时,客户端将执行远程访问。所述基于R-skiplist索引设计的访问并发控制策略包括:B1:R-skiplist将skiplist分成多个块,块上包含多个节点,然后将每个块存储在一个连续地址中,一次RDMA通信可以获取一个块而不是一个节点;B2:R-skiplist支持本地访问(Local-Access)和远程访问(Remote-Access)两种访问模式,在群集中R-skiplist所在的计算机称为本地节点,其他计算机称为远程节点,Local-Access指正在访问本地节点上的R-skiplist;Remote-Access是远程节点通过RDMA直接访问R-skiplist,它可以绕过本地节点的CPU;B3:R-skiplist上的并发控制,包括顶层拆分冲突解决,顶层读写之冲突和边界冲突。所述基于R-skiplist索引设计的范围扫描过程包括:C1:第一步,客户端将扫描请求发送到服务器;C2:第二步,服务器遍历R-skiplist以找到第一个目标数据节点;C3:服务器将包含第一个目标数据的数据块的地址发送回客户端。C4:客户端通过RDMA直接使用返回的地址访问数据块。此过程不仅可以保存数据副本,还可以避免服务器数据传输的CPU占用。另外,由于只在服务器端找到第一个目标数据,因此与其他分区的写入不存在冲突。本专利技术与现有技术相比具有较低的延迟、更高的带宽和数据访问吞吐量,减少远程访问中的通信时间,大大节省了一些网络资源,有效避免了服务器数据传输的CPU占用和写入不存在冲突。R-skiplist的设计将skiplist分为许多包含多个节点的块,然后将每个块存储在一个连续地址中,并且一个RDMA通信可以获取一个块而不是一个节点。在群集中,假设R-skiplist所在的计算机称为本地节点,其他计算机称为远程节点,则Local-Access正在访问本地节点上的R-skiplist;Remote-Access是远程节点通过RDMA直接访问R-skiplist,它可以绕过本地节点的CPU执行远程访问。同时网络资源是有限的,R-skiplist对传统的Skiplist结构的调整减少远程访问中的通信时间,从而节省了一些网络资源。另外,在实际应用中,读取操作最为频繁,当本地搜索结果很大时,传统Skiplist的方式下复制数据和发送数据将消耗大量CPU资源,另外如果所需数据集是多个分区,范围查询将与其他分区的写入冲突。通过R-skiplist,客户端能直接通过RDMA访问第一个目标数据的数据块地址。此过程不仅可以保存数据副本,还可以避免服务器数据传输的CPU占用。由于我们只应在服务器端找到第一个目标数据,因此与其他分区的写入不存在冲突。附图说明图1~图2为本专利技术的数据存储架构示意图;图3为R-skiplist跳表的设计示意图;图4~图5为R-skiplist构建过程示意图;图6为现有技术的范围搜索扫描过程示意图;图7为R-skiplist范围搜索扫描过程示意图。具体实施方式下面以具体实施例对本专利技术作进一步的详细说明。实施例1参阅图1,当本地访问并发高时,本地节点的CPU将成为性能瓶颈,从而导致许多任务被阻塞,为了提高性能,将阻塞的任务分配给远程节点,并使用剩余的带宽来执行远程访问。在服务器上,使用一个后台线程来检查CPU利用率,这可以通过阻塞任务的数量来反映。如果检测到高CPU负载,部分读取操作将分发到客户端,直到CPU利用率下降。这里,任务调度过程不是盲目的,设计了一个基于优先级的调度策略,以最大限度地提高性能。由于分区的数量大于线程的数量,因此存在一些没有本地线程服务的分区,根据这种现象,将读取操作分为两类:即读取没有本地线程服务的分区和读取由本地线程服务的分区。对于读取没有本地线程服务的分区,由于它可以确保客户端和服务器之间没有冲突,那么远程读取的成功率将更高。于是先把读取没有本地线程服务分配给客户。相比之下,读取由本地线程服务的优先级低于读取没有本地线程服务,因为它可能导致客户端和服务器之间的冲突,从而使远程读本文档来自技高网...

【技术保护点】
1.一种基于RMDA高速网络和跳表的数据存储架构方法,其特征在于采用任务调度器分配本地和远程任务和跳表的数据存储架构,基于R-skiplist索引设计的访问并发控制策略和范围扫描过程,通过任务调度器将以R-skiplist形式存储在服务器上的数据进行本地和远程任务分配,实现RDMA网络通信的高带宽和低延迟的数据访问。/n

【技术特征摘要】
1.一种基于RMDA高速网络和跳表的数据存储架构方法,其特征在于采用任务调度器分配本地和远程任务和跳表的数据存储架构,基于R-skiplist索引设计的访问并发控制策略和范围扫描过程,通过任务调度器将以R-skiplist形式存储在服务器上的数据进行本地和远程任务分配,实现RDMA网络通信的高带宽和低延迟的数据访问。


2.根据权利要求1所述基于RMDA高速网络和跳表的数据存储架构方法,其特征在于所述跳表的数据存储架构包括:
A1:在RDMA网络中,当服务器通过访问队列(CQ)识别到客户端通过PRC发送的请求时,首先通过检测当前CPU资源利用率,判定其访问方式;
A2:如判定为本地访问,则请求由本地线程池中的一个线程执行,然后将结果返回给客户端;
A3:如判定为远程访问,调度线程将请求返回给客户端,当返回的信息中有远程访问标志时,客户端将执行远程访问。


3.根据权利要求1所述基于RMDA高速网络和跳表的数据存储架构方法,其特征在于所述R-skiplist索引设计的访问并发控制策略包括:
...

【专利技术属性】
技术研发人员:胡卉芪林志刚
申请(专利权)人:华东师范大学
类型:发明
国别省市:上海;31

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

1