CN101577716A - 基于InfiniBand网络的分布式存储方法和系统 - Google Patents

基于InfiniBand网络的分布式存储方法和系统 Download PDF

Info

Publication number
CN101577716A
CN101577716A CNA2009100868884A CN200910086888A CN101577716A CN 101577716 A CN101577716 A CN 101577716A CN A2009100868884 A CNA2009100868884 A CN A2009100868884A CN 200910086888 A CN200910086888 A CN 200910086888A CN 101577716 A CN101577716 A CN 101577716A
Authority
CN
China
Prior art keywords
memory
piece
sub
node
primary copy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2009100868884A
Other languages
English (en)
Other versions
CN101577716B (zh
Inventor
韩冀中
周永豪
李金榜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2009100868884A priority Critical patent/CN101577716B/zh
Publication of CN101577716A publication Critical patent/CN101577716A/zh
Application granted granted Critical
Publication of CN101577716B publication Critical patent/CN101577716B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及基于InfiniBand网络的分布式存储方法及系统,方法包括:步骤1,通过InfiniBand网络连接节点,节点包括管理主机和存储节点;步骤2,每两个节点间建立InfiniBand通信;步骤3,存储节点分配内存空间,对内存空间进行预注册,将分配的内存空间的相关信息发送给其他节点,内存空间构建成内存池;步骤4,管理主机通过InfiniBand通信接收存储节点的请求,提供并维护节点从后端存储系统读入的主拷贝的全局位置信息;步骤5,存储节点接收请求,根据从管理主机获得的同请求相关的主拷贝的全局位置信息进行同请求对应的操作,或根据本地存储的其他存储节点分配的内存空间相关信息进行请求对应的操作。本发明能够充分发挥了InfiniBand网络优点,实现了各节点间数据的快速转移。

Description

基于InfiniBand网络的分布式存储方法和系统
技术领域
本发明涉及分布式存储领域,尤其涉及基于InfiniBand网络的分布式存储方法和系统。
背景技术
目前,计算机集群系统上构建分布式的内存池,主要采取的方式是分布式共享存储器(DSM,distributed shared memory),它是指使用一组互联的计算机,尽管每台计算机拥有自己的存储器且在物理上是分布的,但看起来像具有单一编址空间的单一存储器。一旦实现了分布式共享存储器,那么在集群系统中的任何一个节点的处理器都可以访问所有的存储单元,而不管存储器是否在本地。使用DSM的引人之处在它的经济性和可扩展性,使用互联网就可以构成存储空间巨大并且十分低廉的内存池。但是,在传统的DSM系统中,采用全局统一编址,并且每个数据块在内存池中仅有一份数据拷贝,当多节点同时访问同一数据块,就需要通过锁机制加以控制,在某一时刻只能有一个节点对数据具有控制权,其余节点处于等待状态。这与内存池设计初衷相违背,内存池设计的目的是用来缓存最热点的数据,多节点对同一数据访问会非常频繁地出现,这直接导致了DSM实用价值不高。
于是,现有技术中包括提出了主拷贝的概念,在内存池中一个数据块可以存在多份拷贝以减少对共享数据的等待时间,只有一个主拷贝,其余为副拷贝,各个副拷贝如果对数据进行了更新,及时反馈给主拷贝。他们更进一步提出了一套基于Hint的内存池优化策略,尤其是Best-Guess替换算法,极大地减少了节点间通信,参见Hint-Based Cooperative Caching.ACMTransactions on Computer Systems,Vol.18,No.4,November 2000,Pages387-419。但是他们设计的内存池是基于TCP/IP协议的以太网网络环境,以太网的数据传输效率不高也阻碍了数据在存储节点间的传递速度,尤其对于数据需要在各节点间频繁传递的应用时,内存池的数据缓存作用并不十分显著。但是如果现有技术的内存池移植到InfiniBand网络环境中,性能并不突出。原因有二,一是InfiniBand网络协议特有的优势发挥不出来,如RDMA和原子操作,在操作前就应该知道数据块在远端节点上的具体位置,而在TCP/IP的通信模式则是基于请求-响应的方式,需要通信双方的协作配合来完成数据的传输;二是,现有技术的内存池中的每个内存块是大小均等,虽然管理简单,但是由于RDMA对大数据块的读写操作性能更佳,如果在InfiniBand网络环境下仍然把内存划分为大小均等的块,如果块划分得过小,就会造成RDMA操作频繁,如果划分得过大,就会造成小数据也占有一整块,内存资源被严重浪费,在理想情况下,一个数据块,不论大小,占用一个等大小内存空间,一次RDMA操作即可完成读写,也就是说,内存块大小应该是不等长的,根据需要不同而不同。
发明内容
为解决上述问题,本发明提供基于InfiniBand网络的分布式存储方法和系统,能够充分发挥了InfiniBand优点,实现了各节点间数据的快速转移。
本发明公开了基于InfiniBand网络的分布式存储方法,所述方法包括:
步骤1,通过InfiniBand网络连接节点,所述节点包括管理主机和存储节点;
步骤2,每两个所述节点间建立InfiniBand通信;
步骤3,存储节点分配内存空间,对所述内存空间进行预注册,将分配的内存空间的相关信息发送给其他节点,所述内存空间构建成内存池;
步骤4,管理主机通过InfiniBand通信接收所述存储节点的请求,提供并维护所述节点从后端存储系统读入的主拷贝的全局位置信息;
步骤5,所述存储节点接收请求,根据从所述管理主机获得的同所述请求相关的主拷贝的全局位置信息进行同所述请求对应的操作,或根据本地存储的其他存储节点分配的内存空间相关信息进行所述请求对应的操作。
所述步骤1还包括,通过以太网络连接节点;
所述步骤2进一步为,
步骤21,建立以太网络通信;
步骤22,节点通过以太网络获得其他节点的InfiniBand通信句柄,并将所述InfiniBand通信句柄存储到所述节点的通信域。
所述步骤3进一步包括:
步骤31,所述存储节点分配一块内存空间,将所述内存空间拴住,使所述内存空间的数据不被交换到交换空间;
步骤32,对所述内存空间进行预注册,将与分配内存空间的位置和属性相关信息记录到InfiniBand通信句柄中对应字段,并发送给其他节点;
步骤33,节点接收所述InfiniBand通信句柄中对应字段,并存储到所述节点的通信域对应的通信句柄中。
所述步骤4中请求包括获取主拷贝位置信息请求和注册新主拷贝请求,
所述步骤4进一步为,
步骤51,所述管理主机将文件的数据块的主拷贝的全局位置信息以文件名为索引存储到所述管理主机的主拷贝位置信息域;
步骤52,所述管理主机接收到包含文件名的获取主拷贝位置信息请求时,通过所述文件名在所述主拷贝位置信息域中查找对应文件数据块的全局位置信息,并返回给请求的存储节点;
步骤53,所述管理主机接收到从后端存储系统读入数据块的主拷贝的存储节点发送的注册新主拷贝请求后,根据所述注册新主拷贝请求更新所述主拷贝位置信息域。
在所述存储节点接收到读写请求时,所述步骤5进一步为,
步骤81,所述存储节点从请求中获得请求读取的数据块名字,所述数据块名字包含数据块所在文件的文件名和所述数据块在所述文件中的偏移;
步骤82,根据所述数据块名字从所述管理主机中获得所述数据块的主拷贝的全局位置信息,在所述内存池中查询所述数据块;
步骤83,如果所述数据块的主拷贝不在所述存储节点本地,则复制所述主拷贝为一个副拷贝,存储到本地。
在所述存储节点接收到数据块查询请求时,所述步骤5进一步为,
步骤91,所述存储节点获得数据块查询请求中包含的请求查询的数据块名字;
步骤92,根据所述数据块名字从所述管理主机获得所述数据块的主拷贝的全局位置信息,在所述内存池中查询所述数据块。
在所述存储节点接收到替换请求时,所述步骤5进一步为,
步骤111,所述存储节点从内存池中选择待用的内存子块;
步骤112,所述存储节点返回所述待用的内存子块位置信息。
所述步骤83还包括,
步骤181,当存储节点对本地的一个副拷贝进行写操作完成后,发送多播消息使其他存储节点上的副拷贝失效,将包含写操作中更新数据信息的Diff结果发送给主拷贝所在存储节点,以使主拷贝进行同步更新;
步骤182,当存储节点对本地的一个主拷贝进行写操作完成后,发送多播消息,使每个副拷贝无效。
所述步骤83还包括,
步骤191,当存储节点对本地的一个副拷贝进行写操作前,发送多播消息,其他存储节点上的副拷贝失效,将副拷贝对应的主拷贝加锁;
步骤192,当存储节点对所述副拷贝进行写操作完成后,将包含写操作中更新数据信息的Diff结果发送给所述主拷贝所在存储节点,以使主拷贝解锁,并进行同步更新;
步骤193,当存储节点对本地的一个主拷贝进行写操作前,对自身加锁,并发送多播消息使每个副拷贝无效;
步骤194,当存储节点对本地的一个主拷贝进行写操作完成后,对自身解锁。
本发明还公开了基于InfiniBand网络的分布式存储系统,所述系统包括通过InfiniBand网络连接的节点,所述节点包括一个管理主机和多个存储节点;
每两个所述节点间建立InfiniBand通信;
所述存储节点包括内存分配模块和请求处理模块,
所述内存分配模块,用于分配内存空间,对所述内存空间进行预注册,将分配的内存空间的相关信息发送给其他节点,所述内存空间构建成内存池;
所述请求处理模块,用于接收请求,根据从所述管理主机获得的同所述请求相关的主拷贝的全局位置信息进行同所述请求对应的操作,或根据本地存储的其他存储节点分配的内存空间相关信息进行所述请求对应的操作
所述管理主机,用于通过InfiniBand通信接收所述存储节点的请求,提供并维护所述节点从后端存储系统读入的主拷贝的全局位置信息。
所述节点还通过以太网络连接;
所述节点包括通信域;
所述每两个所述节点间建立InfiniBand通信进一步为,建立以太网络通信;节点通过以太网络获得其他节点的InfiniBand通信句柄,并将所述InfiniBand通信句柄存储到所述节点的通信域。
所述内存分配模块进一步用于分配一块内存空间,将所述内存空间拴住,使所述内存空间的数据不被交换到交换空间;对所述内存空间进行预注册,将与分配内存空间的位置和属性相关信息记录到InfiniBand通信句柄中对应字段,并发送给其他节点;在接收其他存储节点发送的InfiniBand通信句柄中对应字段时,将所述InfiniBand通信句柄中对应字段存储到所述存储节点的通信域对应的通信句柄中;
所述管理主机还用于接收存储节点发送的InfiniBand通信句柄中对应字段,并存储到所述管理主机的通信域对应的通信句柄中。
所述管理主机接收的请求包括获取主拷贝位置信息请求和注册新主拷贝请求,
所述管理主机进一步包括信息存储模块、信息提供模块和信息更新模块,
所述信息存储模块,用于将文件的数据块的主拷贝的全局位置信息以文件名为索引存储到所述管理主机的主拷贝位置信息域;
所述信息提供模块,用于所述管理主机接收到包含文件名的获取主拷贝位置信息请求时,通过所述文件名在所述主拷贝位置信息域中查找对应文件数据块的全局位置信息,并返回给请求的存储节点;
所述信息更新模块,用于所述管理主机接收到从后端存储系统读入数据块的主拷贝的存储节点发送的注册新主拷贝请求后,根据所述注册新主拷贝请求更新所述主拷贝位置信息域。
所述请求处理模块进一步包括读写请求处理模块和用于根据所述数据块名字从所述管理主机中获得所述数据块的主拷贝的全局位置信息,在所述内存池中查询数据块的查询模块,
所述读写请求处理模块,用于在所述存储节点接收到读写请求时,从请求中获得请求读取的数据块名字,所述数据块名字包含数据块所在文件的文件名和所述数据块在所述文件中的偏移,将所述数据块名字发给所述查询模块;
所述查询模块在所述内存池中查询所述数据块;
所述读写请求处理模块,还用于根据查询结果,如果所述数据块的主拷贝不在所述存储节点本地,则复制所述主拷贝为一个副拷贝,存储到本地。
所述请求处理模块进一步包括查询请求处理模块,
所述查询请求处理模块,进一步用于在所述存储节点接收到数据块查询请求时,获得数据块查询请求中包含的请求查询的数据块名字,将所述数据块名字发给所述查询模块;
所述查询模块在所述内存池中查询所述数据块。
所述请求处理模块进一步包括替换请求处理模块,
所述替换请求处理模块,用于在所述存储节点接收到替换请求时,启动所述替换模块从内存池中选择待用的内存子块;返回所述待用的内存子块位置信息。
所述读写请求处理模块还用于当对本地的一个副拷贝进行写操作完成后,发送多播消息使其他存储节点上的副拷贝失效,将包含写操作中更新数据信息的Diff结果发送给主拷贝所在存储节点,以使主拷贝进行同步更新;当存储节点对本地的一个主拷贝进行写操作完成后,发送多播消息,使每个副拷贝无效。
所述读写请求处理模块还用于当存储节点对本地的一个副拷贝进行写操作前,发送多播消息,其他存储节点上的副拷贝失效,将副拷贝对应的主拷贝加锁;当存储节点对所述副拷贝进行写操作完成后,将包含写操作中更新数据信息的Diff结果发送给所述主拷贝所在存储节点,以使主拷贝解锁,并进行同步更新;当存储节点对本地的一个主拷贝进行写操作前,对自身加锁,并发送多播消息使每个副拷贝无效;当存储节点对本地的一个主拷贝进行写操作完成后,对自身解锁。
本发明的有益效果在于,通过利用RDMA(Remote Direct Memory Access)和原子操作提高数据传输效率,降低存储CPU开销,并减少了节点间交互;通过通讯机制的提前建立和内存预分配机制,最大程度地降低了通信开销,提高数据传输效率;利用多数据拷贝减少节点间数据竞争,利用主副本区分管理,减轻维护数据一致性的复杂程度;利用基于本地的替换策略,减少了节点间交互;以太网和InfiniBand网双网络连接,增强系统的健壮性。
附图说明
图1是本发明基于InfiniBand网络的分布式存储方法的流程图;
图2是本发明节点的连接结构图;
图3是管理主机的数据结构图;
图4是存储节点的数据结构图;
图5是主拷贝和副拷贝关系示意图;
图6是弱一致性的流程图;
图7是强一致性的流程图;
图8是存储节点的结构图;
图9是管理主机的结构图。
具体实施方式
下面结合附图,对本发明做进一步的详细描述。
本发明基于InfiniBand网络的分布式存储方法的流程如图1所示。
步骤S101,通过InfiniBand网络连接节点。
所述节点包括管理主机和存储节点。
同时,通过以太网络连接节点,使得任意两个节点间的连接包括InfiniBand网络和千兆以太网。管理主机和存储节点间的连接关系如图2所示。
管理主机,用于存储并维护各存储节点内存子块的全局位置信息,并提供通过文件名来检索该文件所有内存子块的位置信息,管理主机有两个守护线程分别负责InfiniBand通信和以太网通信,每当有一个新请求到达时,创建一个新线程来对请求进行响应。管理主机支持的请求包括获取主拷贝位置信息请求和注册新主拷贝请求。
存储节点,每个存储节点在管理主机中注册一块内存,作为内存池的组成部分。每个存储节点同样有两个守护线程分别负责InfiniBand通信和以太网通信;支持的请求有对数据块的查询、读写和替换。存储节点同后端存储系统连接,可以从该后端存储系统提取数据。
其中管理主机为一台,存储节点为多台。
步骤S102,每两个节点间建立InfiniBand通信。
该步骤S102具体实施方式如下。
步骤201,建立以太网络通信。
每个节点中包括通信域如图3和图4所示。管理主机中包括通信域和主拷贝位置信息域,如图3所示。其中,通信域包括InfiniBand通信句柄和以太网句柄。
以太网间通信使用Socket套接字,把Socket句柄信息存储到通信域的以太网句柄中,网络中有N节点,每个节点与基余N-1个节点,包括管理主机,都有一个有效Socket句柄,并把该节点与自身通信的句柄设为NULL,共N个有效句柄。
步骤202,节点通过以太网络获得其他节点的InfiniBand通信句柄,并将该InfiniBand通信句柄存储到该节点的通信域。
每个节点通过获取网络设备(IB HCA)及端口的属性,并创建保护域(PD)、完成队列(CQ);再利用步骤201中的Socket句柄进行以太网通信,显式传递队列对儿(QP)相关信息,包括Port LID和QP Number,给通信对方节点,然后转变QP队列对儿状态,使其进入可通信状态,把得到的句柄信息存入通信域的InfiniBand通信句柄空间中。InfiniBand通信句柄信息包括lid,qpn,psn rkey,vaddr,其中,rkey和vaddr的值暂时为空,在进行内存的预注册时加入相关的值。因为InfiniBand网络协议也是点对点通信,所以,也有N个有效的InfiniBand通信句柄。
lid,qpn,psn rkey,vaddr是InfiniBand协议中通讯所必须的要素,lid本地节点的标识号,Qpn队列对儿号,psn包序列号,rkey远端注册的内存的键值,vaddr远端注册内存的首地址偏移。
在任意两节点间都建立InfiniBand网络和以太网的双网络连接的目的包括:第一,InfiniBand网络建立初始化连接需要通过以太网来交换信息;第二,增强系统的健壮性,如果InfiniBand网络传输失败,还可以通过以太网进行传输。
步骤S103,存储节点分配内存空间,对该内存空间进行预注册,将分配的内存空间的相关信息发送给其他节点,该内存空间构建成内存池。
该步骤S103具体实施方式如下所述。
步骤301,所述存储节点分配一块内存空间,将所述内存空间拴住(pin),使所述内存空间的数据不被交换到交换空间(Swap)。
步骤302,对该内存空间进行预注册,将与分配内存位置和属性相关注册信息记录到InfiniBand通信句柄中对应字段,并发送给其他节点,节点接收所述InfiniBand通信句柄中对应字段,并存储到所述节点的通信域对应于所述发送节点的通信句柄中。
在InfiniBand协议下,对分配的内存空间进行提前注册,把内存注册生成句柄mr,再通过以太网通信,接收信息节点将远端内存键值(mr->rkey)、内存空间首地址(vaddr)和内存空间大小(mem_size)等信息填入通信域相关联的InfiniBand通信句柄中。
步骤303,存储节点采用Slab分配器管理内存空间的分配和释放。
通过步骤S103,只需要一次注册,在使用该内存池中任一内存子块时,只需计算出该内存子块相对于所在节点的内存空间的首地址的偏移,便可以和远端节点进行数据的相关操作。
为了更有效地使用内存,采用Slab分配器来对内存空间的分配释放等相关操作进行管理。
InfiniBand通信协议支持三种通信方式,包括:Send/Receive、RDMAread/write和原子操作。
其中RDMA和原子操作是InfiniBand协议所特有的,RDMA不使用通信被动方的CPU资料,原子操作保证执行的操作的原子性。该三种通信方式适用于不同的应用情况,当需要利用通信被动方的CPU做进一步地处理时,只能用Send/Receive操作;如果通信主动方已经知道它所需要资源在何处,不需要通信被动方CPU做相关处理时,可以使用Send/Receive,也可以使用RDMA,但RDMA节省CPU资源,提高通信效率,在此情况下,本发明都采用RDMA进行通信;当通信主动方已经知道资源在何处并要对资源的某些地方做少量的数据修改,采用原子操作。
本发明的尽可能多地使用RDMA和原子操作,以发挥InfiniBand的优势。在本发明中,对数据块的读写操作都是采用RDMA read/write;对各种结构体标志的修改,都采用原子操作。
为了支持RDMA和原子操作,通信前必须已经知道它所需要资源存储的具体位置,并且读到数据后必须能判断出该数据是否已失效等相关信息,所以,本发明的内存池与现有技术以太网的内存池有如下不同:
第一,本发明中在内存池中任何一个内存子块都可以通过该节点的句柄信息和内存子块相对于内存空间首地址偏移联合唯一决定,由此可确定内存子块在内存池中的位置。
第二,任何一个内存子块都包含块头和数据,其中块头包括数据标志位,分别记录,数据是否有效、是否是文件的数据块的主拷贝、是否加锁、是否是向导标识以及向导地址(可以为空)相关信息,该块头中和各标志位相对于该子块的首地址的偏移是固定的,也就是说,如果知道了内存子块的位置,通过计算,就可以得到子块各标志位的位置。从而,在通信前便可以计算出资源存储的具体位置,以及该资标志位的位置,可以通过RDMA读写数据或者原子操作来修改该资源的标志位。
步骤S104,管理主机通过InfiniBand通信接收所述存储节点的请求,提供并维护所述节点从后端存储系统读入的主拷贝的全局位置信息。
管理主机中包括两个信息域:通信域和主拷贝位置信息域,如图3所示其中主拷贝为内存节点从后端存储系统读入的数据块。
通信域的初始化工作在步骤S102和步骤S103中已经完成。
主拷贝位置信息域记录的是主拷贝的全局位置信息。如图3所示,主拷贝的定位是以它所属文件的文件名为关键字索引,通过对文件名进行哈希计算,根据哈希值,找到相对应文件信息,再在文件信息中找到文件的数据块的主拷贝的全局位置信息。初始化时哈希表为空,在运行一段时间后,它会指向一系列的文件名,再由文件名关联相应的数据块的主拷贝的全局位置信息。
管理主机启动两个通信线程作守护线程,一个是InfiniBand通信线程,一个是基于Socket的通信线程。当有新请求到达时,通信线程就会创建一个新线程来处理相应的请求,处理结束,自动销毁该线程。由于要频繁地创建和删除线程,所以本发明使用线程池对线程进行管理。
管理主机支持的请求包括获取主拷贝位置信息请求和注册新主拷贝请求。管理主机处理请求的过程具体如下所述。
步骤401,管理主机接收到包含文件名的获取主拷贝位置信息请求时,通过所述文件名在所述主拷贝位置信息域中查找对应文件数据块的全局位置信息,并返回给请求的存储节点。
具体实施方式为由文件名通过哈希计算在哈希表找到该文件所有数据块的主拷贝的全局位置信息,返回结果给请求的存储节点。
步骤402,管理主机接收到从后端存储系统读入数据块的主拷贝的存储节点发送的注册新主拷贝请求后,根据所述注册新主拷贝请求更新所述主拷贝位置信息域。
根据注册新主拷贝请求中文件名判断所述主拷贝位置信息域中是否存储对应记录,如果是,则用新主拷贝的全局位置信息更新所述对应记录;否则,建立基于所述文件名的结构体,在所述主拷贝位置信息域中存储所述新主拷贝的全局位置信息。
管理主机InfiniBand通信采用Send/Receive操作。
因为,两种请求都需要管理主机做哈希计算和查询等相关工作,所以必须知道请求是何时到达。
步骤S105,存储节点接收请求,从所述管理主机获得请求相关的主拷贝的全局位置信息,根据所述全局位置信息进行同所述请求相应的操作或根据本地存储的其他节点的分配的内存空间相关信息,进行所述请求相应的操作。
存储节点数据结构如图4所示,其中存储节点上有三个信息域:通信域、最老块时间域和本地内存子块的位置信息域。
通信域的初始化工作在步骤S102和步骤S103中已经完成。
最老块时间域,用来存储其它节点上最早最少使用块(LRU)的时间信息,如图4所示,用以估算内存池全局最老块的位置信息。最老时间域中存储的信息采用的是惰性更新机制,当某一节点的LRU发生变化时,它不会主动去通知其它节点更新最老时间域,而是等到因为某种请求,两节点在通信时,才会彼此交换LRU,更新各自的最老块时间域。每个存储节点都存储有其余存储节点上LRU块的时间信息。因为每次进行替换时都要取其他存储节点的LRU和自身的LRU比较,所以从效率上考虑,本发明采用了大顶堆排序方式来组织管理最老块时间域中记录的其他存储节点的LRU。
本地内存子块的位置信息域,用于记录管理本地内存子块的相关信息,如图4所示。本地内存的每个内存子块都对应有一个位置信息区,记录该内存子块查找路径。
对于不同内存子块连接,采作三种形式,一种是普通的链式连接,把最近新生成的子块加入到链表首部;第二种是按LRU方式把所有的子块连接成一个LRU链表,并随着子块的使用,实时地调整该LRU链表,该链表是为了计算全局最老时间块而设置的,该LRU链表为最老块时间表;第三种是把所有的子块按子块名的排序建立平衡二叉树(AVL树),AVL树的有序的二叉树,查询时间logN,查询效率较高。在本发明具体实施例中,该三种连接方式同时存在,当有一个内存子块发生变化,该三种链表都要作对应的调整。
存储节点也启动两个通信线程,InfiniBand通信线程和基于Socket的通信线线程。当有新请求到达时,通信线程就会创建一个新线程来处理相应的请求,使用线程池对线程进行管理。
存储节点上支持的请求有三种分别为数据块查询请求,替换请求,读写请求。
步骤501,在存储节点接收到查询请求或接收到读写请求进行读取前,进行查询操作。
在本发明中数据块名字包括数据块所在文件的文件名和该数据块在文件中的偏移。具体查询步骤如下所述。
步骤511,所述存储节点通过向所述管理主机发送包含所述文件名的获取主拷贝位置信息请求,将所述文件的所有数据块的主拷贝的全局位置信息预读到本地。
对文件的所有数据块进行预读是为了减少同管理主机间的频繁通信。
步骤512,所述存储节点根据所述数据块的主拷贝的全局位置信息在内存池中查询所述数据块的主拷贝,如果查询到,则返回查询到的主拷贝的位置信息,否则,执行步骤513。
进行查询的具体实施方式如下。
根据获得的全局位置信息到相应节点上读取对应内存子块的块头,块头中数据块名字和欲查询数据块名比较,如果匹配,查询成功,如果不匹配,查看块头中的向导位,如果向导位有效,说明数据块已经被替换到另一个节点,则按所述向导地址查找下一节点。如果最后查找到的内存子块向导位为无效或查询的节点数超过预设值,则查询失败。
配置预设值为5。设置一个向导计数器,初始值设为5次,每查询一个节点,计数器值减一,减到零仍没查找到主拷贝,认为查询失败,从后端重新读入数据块,在管理主机上修改主拷贝的全局位置信息。如此操作,虽然对一个数据块会出现两个主拷贝,但在管理主机上只能查询到新主拷贝的位置信息,旧的主拷贝被称为野数据,没有指针指向它,也不会再被节点访问,在长时间不被使用,按S502的替换操作,其中数据被从内存池中删除。所以虽然在某段时间会出现多个主拷贝,但不会影响数据一致性。
步骤513,所述存储节点根据数据块名字从所述后端存储系统读入所述数据块的新主拷贝,从内存池中选择内存子块,将所述新主拷贝存储到所述内存子块。
步骤514,所述存储节点返回所述数据块的新主拷贝的位置信息,并向所述管理主机发送注册新主拷贝请求。
通过上述查询操作,不管数据以前是否缓存在内存池中,查询都能在内存池中找到数据块的对应位置,除非该数据在后端存储系统中也不存在。
步骤502,存储节点接收到替换请求或从后端存储系统中读取新数据时,从内存池中选择待用的内存子块。
选择完成后,如果是由替换请求引起选择的情况,该存储节点返回选择的待用内存子块位置信息。
选择待用的内存子块具体实施方式如下所述。
步骤521,所述存储节点根据通信域和本地内存子块位置信息域判断所述内存池中是否存在空闲空间,如果所述存储节点本地存在,则从所述空闲空间中选择的待用的内存子块;如果空闲空间不在所述存储节点本地,则将本地数据块内容拷贝到所述空闲空间,本地腾出的内存空间为待用的内存子块;如果内存池不存在空闲空间,执行步骤522。
步骤522,检查所述本地最老块时间表,判断所述本地最老块时间表中最早最少使用的内存子块中存储数据是否为主拷贝,如果不是,选择所述内存子块为待用的内存子块,执行步骤523,否则,执行步骤524。
步骤523,判断已选择的内存子块的空间加和是否小于要求选择的空间,如果是,执行所述步骤521。
步骤524,检查所述最老块时间域,选择所述最老块时间域中最早最少使用的内存子块,确定所述内存子块所在节点,从该节点的本地最老块时间表中选择一个或多个最早最少使用的内存子块,选择的内存子块的空间和大于或等于要求选择的空间;在所述存储节点本地的内存子块的块头中设置向导标志位为有效,记录向导地址为选择的最老内存子块位置,然后把本地数据块内容拷贝到向导地址所指向的位置,在本地有腾出了足够的内存空间;腾出的内存空间为待用的内存子块。
在进行读写时,本地腾空的位置用于新读取的数据块的写入。
新数据写入的具体操作为,把新到数据拷贝到本地腾空的内存空间,并把子块头中子块名修改为新数据块的块名,并调整该块在LRU链表中位置至最新;管理主机注册这个新数据块的位置。
如果找全局最早最少使用的块,即使花再高代价也不可能实现,因为每个节点都在不停地运作,等收集到每个节点最老的块,决定出的全局最早最少使用的块,可能已经过时。现有提出了一种次优而高效的算法Best-GuessReplacement,只通过本节点存储的信息,来判断本节点认为的全局最早最少使用的块。具体做法为每个节点都有一个最老时间存储域,存储其余节点上最早最少使用数据块的使用时间,当其余节点上的最老时间发生变化时,不会主动告诉其它节点,而是采用一种惰性策略,只有当两个节点在通信时,才会顺便交换两个节点数据块最老时间给对方,对方对其最老时间存储域进行更新;当计算全局最早最少使用的块时,从最老时间存储域找出最老的数据块和本地的最早最少使用的数据块比较,时间最老的认为是全局最老的块。这样方法可以减少大量的网络开销,对于有N个存储节点的系统来说,按这种策略决定出来的块最坏情况下是第(N-1)(N-2)/2老的块。详细计算过程见参考Hint-Based Cooperative Caching.ACM Transactiohs on Computer Systems,Vol.18,No.4,November 2000,Pages 387-419。
但是,上述方法适用于内存池中子块为等大小情况,所以一个当数据块需要替换时,只需要找到一块“最老时间块”出来就可以了。
本发明中内存子块是由slab管理,内存子块的长度为不等长,所以当两个数据块大小不对等时,一块数据要替换时,可能需要找好几个替换块。本发明中通过其余节点最老时间和本节点中最老时间比较,确定出最老时间块所在节点,再从该节点的LRU中找到最早最少使用的若干个内存子块,使它们的内存之和等于或大于欲替换的数据,如果找到的最早最少使用的内存子块的内存与需要的内存空间差值超过某一常数,则把该若干内存子块中长度最大的块分割成两个小块,把不使用的小块交给slab管理器的空闲链表,从而保证一个大的数据块不会被分割存储在不同的节点上。
例如,当一个大数据,假设大小为50M,需要从A节点转移到其它时,假设计算得到全局最老时间块在C节点上,大小为30M,因为30M空间太小,还要再找出20M的空间,这20M空间只能是C节点下一个最老块,尽管这个块可能不如B节点的最老块老。这样做,是为了防止对一大数据转移时,还要分割,存储在不同节点。
步骤503,存储节点接收到读写请求后按步骤501查询到请求读取的数据块块在内存池中的位置,进行RDMA read/write操作,如果本节点没有空闲内存,就要按步骤S502选择内存子块进行替换,进行数据的丢弃或转移,再进行读写操作,如果所述数据块的主拷贝不在所述存储节点本地,则复制所述主拷贝为一个副拷贝,存储到本地;读写操作后,要检查该数据块的信息头标志位。
标志位如图4所示,标志位包括有效标志位,用于表示内存子块中数据是否有效;主拷贝标志位,用于表示所存数据是否为数据块的主拷贝;锁标志,用来防止多个请求同时对数据块修改,保证一致性;块长,数据块的长度;子块名,用于记录存储的数据子块的数据块名字;向导位,用于记录主拷贝转移的向导;向导地址,用于记录主拷贝转移的地址。
在内存池中相同的数据块可以有多份拷贝分别存储在不同的节点上,有效减少数据在不同节点上的反复传递。
本发明把内存池中的内存块分为主拷贝和副拷贝。从后端存储系统中拷贝到内存池中的块叫主拷贝块,由主拷贝块复制生成的副本叫做副拷贝。
当某一节点请求的数据块不在内存池中,则从后端存储系统中拷贝,生成主拷贝;如果数据块在内存池中已存在主拷贝,但不在本地,则从主拷贝中复制一个副拷贝。在内存池中,一块数据只有一个主拷贝,和任意个副拷贝,主拷贝和副拷贝关系如图5所示。对主拷贝块,在管理主机上建立全局的相关信息对其进行注册维护和更新;对于副拷贝,由本地的存储节点负责维护,当数据不一致时,仅仅简单地使其无效。
查询到数据读取完成后进行的操作具体方式如下所示。
步骤531,如果该数据的标志位是有效的并且数据不是向导,则读写成功。
判断数据是不是向导的方法,将读取的数据块的块头中数据块名字和请求操作的数据块名比较,如果匹配,说明不是向导,如果不匹配,说明是向导。
步骤532,如果标志位显示数据的无效的,则重新查询主拷贝的位置,再重新进行读写。
步骤533,如果标志位显示数据有效但是向导,并且向导位标志为有效,则取出向导地址,再按照该地址重新进行读写。
判断数据是不是向导的方法,将读取的数据块的块头中数据块名字和请求操作的数据块名比较,判断是否匹配;如果匹配,则有效;否则,无效。向导位有效,只是为了说明向导地址是有效地址;无效,说明向导地址是无效地址。
步骤534,如果标志位显示数据加锁,则说明数据正在更新中,等待随机时长或预设时长,按原地址重新进行读写。
在存储节点上的InfiniBand通信中,数据块查询和数据块的替换采用Send/Receive操作;数据块的读写采用RDMA read/write操作。
通过上述方法读写,不仅是RDMA操作降低CPU消耗,而且通信中不需要使用发送缓冲和接收缓冲区在缓存数据,而直接写入到节点内存空间,实现数据的零拷贝。
存储节点支持的两种一致性:弱一致性和强一致性。
弱一致性步骤如图6所示,
当存储节点对本地的一个副拷贝进行写操作完成后,发送多播消息使其他存储节点上的副拷贝失效,将包含写操作中更新数据信息的Diff结果发送给主拷贝所在存储节点,以使主拷贝进行同步更新。
当存储节点对本地的一个主拷贝进行写操作完成后,发送多播消息,使每个副拷贝无效。
强一致性步骤如图7所示,
当存储节点对本地的一个副拷贝进行写操作前,发送多播消息,其他存储节点上的副拷贝失效,将副拷贝对应的主拷贝加锁。
当存储节点对所述副拷贝进行写操作完成后,将包含写操作中更新数据信息的Diff结果发送给所述主拷贝所在存储节点,以使主拷贝解锁,并进行同步更新。
当存储节点对本地的一个主拷贝进行写操作前,对自身加锁,并发送多播消息使每个副拷贝无效。
当存储节点对本地的一个主拷贝进行写操作完成后,对自身解锁。
Diff为同一数据的一个脏拷贝和一个干净拷贝的差异,脏拷贝是指对数据进行了更改数据的操作。当数据的一个副拷贝进行了更新操作,把更新的数据组成一个Diff报文,发送给主拷贝节点,主拷贝根据Diff更新自身数据。
使用Diff,可以大量减少冗余数据在节点间传输。
本发明基于InfiniBand网络的分布式存储系统,如图2所示,所述系统包括通过InfiniBand网络连接的节点,所述节点包括一个管理主机和多个存储节点。
每两个所述节点间建立InfiniBand通信。
节点还通过以太网络连接;
节点包括通信域;每两个所述节点间建立InfiniBand通信进一步为,建立以太网络通信;节点通过以太网络获得其他节点的InfiniBand通信句柄,并将所述InfiniBand通信句柄存储到所述节点的通信域。
存储节点800的结构如图8所示,包括内存分配模块810和请求处理模块820。
存储节点800具有所述通信域、用于记录本地内存子块的相关信息的本地内存子块位置信息域、用于记录其他存储节点800上最早最少使用的内存子块的时间信息的最老块时间域;所述本地内存子块位置信息域中还包括用于记录本地最早最少使用的内存子块的时间信息的本地最老块时间表。
内存分配模块810,用于分配内存空间,对所述内存空间进行预注册,将分配的内存空间的相关信息发送给其他节点,所述内存空间构建成内存池。
内存分配模块810进一步用于分配一块内存空间,将所述内存空间拴住,使所述内存空间的数据不被交换到交换空间;对所述内存空间进行预注册,将与分配内存空间的位置和属性相关信息记录到InfiniBand通信句柄中对应字段,并发送给其他节点;在接收其他存储节点800发送的InfiniBand通信句柄中对应字段时,将所述InfiniBand通信句柄中对应字段存储到所述存储节点800的通信域对应的通信句柄中。
内存分配模块810还用于采用Slab分配器管理内存空间的分配和释放。
请求处理模块820,用于接收请求,根据从管理主机900获得的同所述请求相关的主拷贝的全局位置信息进行同所述请求对应的操作,或根据本地存储的其他存储节点800分配的内存空间相关信息进行所述请求对应的操作。
请求处理模块820进一步包括读写请求处理模块821、查询请求处理模块822、替换请求处理模块823、用于根据所述数据块名字从管理主机900中获得所述数据块的主拷贝的全局位置信息,在所述内存池中查询数据块的查询模块824,以及用于从内存池中选择待用的内存子块的替换模块825。
读写请求处理模块821,用于在所述存储节点800接收到读写请求时,从请求中获得请求读取的数据块名字,所述数据块名字包含数据块所在文件的文件名和所述数据块在所述文件中的偏移,将所述数据块名字发给查询模块824;查询模块824在所述内存池中查询所述数据块。
读写请求处理模块821,还用于根据查询结果,如果所述数据块的主拷贝不在存储节点800本地,则复制所述主拷贝为一个副拷贝,存储到本地。
查询请求处理模块822,进一步用于在存储节点800接收到数据块查询请求时,获得数据块查询请求中包含的请求查询的数据块名字,将所述数据块名字发给查询模块824;查询模块824在所述内存池中查询所述数据块。
查询模块824进一步包括:
位置信息预读模块,用于通过向管理主机900发送包含所述文件名的获取主拷贝位置信息请求,将所述文件的所有数据块的主拷贝的全局位置信息预读到本地;
数据查找模块,用于根据所述数据块的主拷贝的全局位置信息在内存池中查询所述数据块的主拷贝,如果查询到,则返回查询到的主拷贝的位置信息,否则,根据数据块名字从所述后端存储系统读入所述数据块的新主拷贝,启动替换模块825从内存池中选择待用的内存子块,将所述新主拷贝存储到所述内存子块;
位置信息更新模块,用于返回所述数据块的新主拷贝的位置信息,并向所述管理主机900发送注册新主拷贝请求。
位置信息更新模块用于更新所述存储节点800的本地内存子块位置信息域。
替换请求处理模块823,用于在存储节点800接收到替换请求时,启动替换模块825从内存池中选择待用的内存子块;返回所述待用的内存子块位置信息。
替换模块825进一步包括空闲空间查找模块、本地最早最少使用内存查找模块、完成判断模块、全局最早最少使用内存查找模块。
空闲空间查找模块,用于根据通信域和本地内存子块位置信息域判断所述内存池中是否存在空闲空间,如果存储节点800本地存在空闲空间,则从所述空闲空间中选择的待用的内存子块;如果空闲空间不在存储节点800本地,则将存储节点800本地的内存子块的数据转存到所述空闲空间,本地腾出的内存空间为待用的内存子块;如果内存池不存在空闲空间,则被腾空的本地的内存子块为所述待用的内存子块;如果内存池中不存在空闲空间,则启动本地最早最少使用内存查找模块。
本地最早最少使用内存查找模块,用于检查所述本地最老块时间表,判断所述本地最老块时间表中最早最少使用的内存子块中存储数据是否为主拷贝,如果不是,选择所述内存子块为所述待用的内存子块,启动所述完成判断模块,否则,启动全局最早最少使用内存查找模块。
完成判断模块,判断已选择的内存子块的空间加和是否小于要求选择的空间,如果是,则启动空闲空间查找模块。
全局最早最少使用内存查找模块,检查所述最老块时间域,选择所述最老块时间域中最早最少使用的内存子块,确定所述内存子块所在节点,从所述节点的本地最老块时间表中选择一个或多个最早最少使用的内存子块,选择的内存子块的空间加和大于或等于要求选择的空间;将存储节点800本地的内存子块的数据转存到所述选择的内存子块,被腾空的所述本地的内存子块为所述待用的内存子块。
内存子块中包括用于记录标志位和管理控制信息的块头;
全局最早最少使用内存查找模块还用于在存储节点800本地的数据被转存的内存子块的块头中设置指向选择的内存子块的向导标志位,记录向导地址。
数据查找模块在根据所述数据块的主拷贝的全局位置信息在内存池中查询所述数据块的主拷贝时进一步用于根据所述全局位置信息到相应节点上读取对应内存子块的块头,将所述块头中数据块名字和被查询的数据块名比较,如果匹配,查询成功;否则,如果所述块头中包含向导标志位,向导地址指向另一个节点,则按所述向导地址查找下一节点;如果最后查找到的内存子块向导为空或查询的节点数超过预设值,则查询失败。
所述块头中包括有效标志位和存储的数据的数据块名字,
读写请求处理模块821在根据查询结果复制所述主拷贝为一个副拷贝存储到本地时进一步用于将查询到的内存子块的块头中的数据块名字同请求操作的数据块名字比较,如果匹配,则读写成功,否则,根据所述有效标志位判断内存子块中数据是否有效,如果无效,则重新查询主拷贝的位置,进行读写,如果有效,则按向导地址指向的位置重新进行读写。
所述块头中还包括加锁标志位,如果加锁表明内存子块中数据正在更新;
读写请求处理模块821在读写时还用于判断内存子块的加锁标志位判断是否加锁,如果是,则等待随机或预设时间,重新进行读写。
存储节点800进行查询和替换时,所用所述Infiniband通信采用Send/Receive操作,进行读写时,所用所述Infiniband通信采用RDMAread/write操作。
在一个实施例中,为保持系统中数据一致,读写请求处理模块821还用于当对本地的一个副拷贝进行写操作完成后,发送多播消息使其他存储节点800上的副拷贝失效,将包含写操作中更新数据信息的Diff结果发送给主拷贝所在存储节点800,以使主拷贝进行同步更新;当存储节点800对本地的一个主拷贝进行写操作完成后,发送多播消息,使每个副拷贝无效。
在另一个实施例中为保持系统中数据一致,读写请求处理模块821还用于当存储节点800对本地的一个副拷贝进行写操作前,发送多播消息,其他存储节点800上的副拷贝失效,将副拷贝对应的主拷贝加锁;当存储节点800对所述副拷贝进行写操作完成后,将包含写操作中更新数据信息的Diff结果发送给所述主拷贝所在存储节点800,以使主拷贝解锁,并进行同步更新;当存储节点800对本地的一个主拷贝进行写操作前,对自身加锁,并发送多播消息使每个副拷贝无效;当存储节点800对本地的一个主拷贝进行写操作完成后,对自身解锁。
存储节点800对标志位进行修改时,所用所述Infiniband通信采用原子操作。
管理主机900,用于通过InfiniBand通信接收存储节点800的请求,提供并维护所述节点从后端存储系统读入的主拷贝的全局位置信息。
管理主机900还用于接收存储节点800发送的InfiniBand通信句柄中对应字段,并存储到所述管理主机的通信域对应的通信句柄中。
管理主机900接收的请求包括获取主拷贝位置信息请求和注册新主拷贝请求,
管理主机900结构如图9所示,包括信息存储模块910、信息提供模块920和信息更新模块930,
信息存储模块910,用于将文件的数据块的主拷贝的全局位置信息以文件名为索引存储到管理主机900的主拷贝位置信息域;
信息提供模块920,用于管理主机900接收到包含文件名的获取主拷贝位置信息请求时,通过所述文件名在所述主拷贝位置信息域中查找对应文件数据块的全局位置信息,并返回给请求的存储节点800;
信息更新模块930,用于管理主机900接收到从后端存储系统读入数据块的主拷贝的存储节点800发送的注册新主拷贝请求后,根据所述注册新主拷贝请求更新所述主拷贝位置信息域。
信息更新模块930进一步用于根据注册新主拷贝请求中文件名判断所述主拷贝位置信息域中是否存储对应记录,如果是,则用新主拷贝的全局位置信息更新所述对应记录;否则,建立基于所述文件名的结构体,在所述主拷贝位置信息域中存储所述新主拷贝的全局位置信息。
管理主机900所用的InfiniBand通信采用Send/Receive操作。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。

Claims (40)

1.一种基于InfiniBand网络的分布式存储方法,其特征在于,所述方法包括:
步骤1,通过InfiniBand网络连接节点,所述节点包括管理主机和存储节点;
步骤2,每两个所述节点间建立InfiniBand通信;
步骤3,存储节点分配内存空间,对所述内存空间进行预注册,将分配的内存空间的相关信息发送给其他节点,所述内存空间构建成内存池;
步骤4,管理主机通过InfiniBand通信接收所述存储节点的请求,提供并维护所述节点从后端存储系统读入的主拷贝的全局位置信息;
步骤5,所述存储节点接收请求,根据从所述管理主机获得的同所述请求相关的主拷贝的全局位置信息进行同所述请求对应的操作,或根据本地存储的其他存储节点分配的内存空间相关信息进行所述请求对应的操作。
2.如权利要求1所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述步骤1还包括,通过以太网络连接节点;
所述步骤2进一步为,
步骤21,建立以太网络通信;
步骤22,节点通过以太网络获得其他节点的InfiniBand通信句柄,并将所述InfiniBand通信句柄存储到所述节点的通信域。
3.如权利要求2所述的基于InfiniBand网络的分布式存储方法,其特征在于,所述步骤3进一步包括:
步骤31,所述存储节点分配一块内存空间,将所述内存空间拴住,使所述内存空间的数据不被交换到交换空间;
步骤32,对所述内存空间进行预注册,将与分配内存空间的位置和属性相关信息记录到InfiniBand通信句柄中对应字段,并发送给其他节点;
步骤33,节点接收所述InfiniBand通信句柄中对应字段,并存储到所述节点的通信域对应的通信句柄中。
4.如权利要求3所述的基于InfiniBand网络的分布式存储方法,其特征在于,所述步骤3还包括,
步骤41,所述存储节点采用Slab分配器管理内存空间的分配和释放。
5.如权利要求3所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述步骤4中请求包括获取主拷贝位置信息请求和注册新主拷贝请求,
所述步骤4进一步为,
步骤51,所述管理主机将文件的数据块的主拷贝的全局位置信息以文件名为索引存储到所述管理主机的主拷贝位置信息域;
步骤52,所述管理主机接收到包含文件名的获取主拷贝位置信息请求时,通过所述文件名在所述主拷贝位置信息域中查找对应文件数据块的全局位置信息,并返回给请求的存储节点;
步骤53,所述管理主机接收到从后端存储系统读入数据块的主拷贝的存储节点发送的注册新主拷贝请求后,根据所述注册新主拷贝请求更新所述主拷贝位置信息域。
6.如权利要求5所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述步骤53进一步为,
步骤61,根据注册新主拷贝请求中文件名判断所述主拷贝位置信息域中是否存储对应记录,如果是,则用新主拷贝的全局位置信息更新所述对应记录;否则,执行步骤62;
步骤62,建立基于所述文件名的结构体,在所述主拷贝位置信息域中存储所述新主拷贝的全局位置信息。
7.如权利要求1所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述步骤4中InfiniBand通信采用Send/Receive操作。
8.如权利要求5所述的基于InfiniBand网络的分布式存储方法,其特征在于,
在所述存储节点接收到读写请求时,所述步骤5进一步为,
步骤81,所述存储节点从请求中获得请求读取的数据块名字,所述数据块名字包含数据块所在文件的文件名和所述数据块在所述文件中的偏移;
步骤82,根据所述数据块名字从所述管理主机中获得所述数据块的主拷贝的全局位置信息,在所述内存池中查询所述数据块;
步骤83,如果所述数据块的主拷贝不在所述存储节点本地,则复制所述主拷贝为一个副拷贝,存储到本地。
9.如权利要求8所述的基于InfiniBand网络的分布式存储方法,其特征在于,
在所述存储节点接收到数据块查询请求时,所述步骤5进一步为,
步骤91,所述存储节点获得数据块查询请求中包含的请求查询的数据块名字;
步骤92,根据所述数据块名字从所述管理主机获得所述数据块的主拷贝的全局位置信息,在所述内存池中查询所述数据块。
10.如权利要求9所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述步骤82和所述步骤92进一步为,
步骤101,所述存储节点通过向所述管理主机发送包含所述文件名的获取主拷贝位置信息请求,将所述文件的所有数据块的主拷贝的全局位置信息预读到本地;
步骤102,所述存储节点根据所述数据块的主拷贝的全局位置信息在内存池中查询所述数据块的主拷贝,如果查询到,则返回查询到的主拷贝的位置信息,否则,执行步骤103;
步骤103,所述存储节点根据数据块名字从所述后端存储系统读入所述数据块的新主拷贝,从内存池中选择待用的内存子块,将所述新主拷贝存储到所述内存子块;
步骤104,所述存储节点返回所述数据块的新主拷贝的位置信息,并向所述管理主机发送注册新主拷贝请求。
11.如权利要求10所述的基于InfiniBand网络的分布式存储方法,其特征在于,
在所述存储节点接收到替换请求时,所述步骤5进一步为,
步骤111,所述存储节点从内存池中选择待用的内存子块;
步骤112,所述存储节点返回所述待用的内存子块位置信息。
12.如权利要求11所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述存储节点包括所述通信域、用于记录本地内存子块的相关信息的本地内存子块位置信息域、用于记录其他存储节点上最早最少使用的内存子块的时间信息的最老块时间域;所述本地内存子块位置信息域中还包括用于记录本地最早最少使用的内存子块的时间信息的本地最老块时间表;
所述步骤104还包括更新所述存储节点的本地内存子块位置信息域;
所述步骤103和所述步骤111中从内存池中选择待用的内存子块进一步为,
步骤121,所述存储节点根据通信域和本地内存子块位置信息域判断所述内存池中是否存在空闲空间,如果所述存储节点本地存在空闲空间,则从所述空闲空间中选择的待用的内存子块;如果空闲空间不在所述存储节点本地,则将所述存储节点本地的内存子块的数据转存到所述空闲空间,本地腾出的内存空间为待用的内存子块;如果内存池不存在空闲空间,则被腾空的本地的内存子块为所述待用的内存子块;如果内存池中不存在空闲空间,执行步骤122;
步骤122,检查所述本地最老块时间表,判断所述本地最老块时间表中最早最少使用的内存子块中存储数据是否为主拷贝,如果不是,选择所述内存子块为所述待用的内存子块,执行步骤123,否则,执行步骤124;
步骤123,判断已选择的内存子块的空间加和是否小于要求选择的空间,如果是,执行所述步骤121;
步骤124,检查所述最老块时间域,选择所述最老块时间域中最早最少使用的内存子块,确定所述内存子块所在节点,从所述节点的本地最老块时间表中选择一个或多个最早最少使用的内存子块,选择的内存子块的空间加和大于或等于要求选择的空间;将所述存储节点本地的内存子块的数据转存到所述选择的内存子块,被腾空的所述本地的内存子块为所述待用的内存子块。
13.如权利要求12所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述内存子块中包括用于记录标志位和管理控制信息的块头;
所述步骤124还包括在所述存储节点本地的数据被转存的内存子块的块头中设置指向选择的内存子块的向导标志位,记录向导地址。
14.如权利要求13所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述步骤102中所述存储节点根据所述数据块的主拷贝的全局位置信息在内存池中查询所述数据块的主拷贝进一步为,
步骤141,根据所述全局位置信息到相应节点上读取对应内存子块的块头,将所述块头中数据块名字和被查询的数据块名比较,如果匹配,查询成功;否则,执行步骤142;
步骤142,如果所述块头中包含向导标志位,向导地址指向另一个节点,则按所述向导地址查找下一节点;
步骤143,如果最后查找到的内存子块向导为空或查询的节点数超过预设值,则查询失败。
15.如权利要求13所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述块头中包括有效标志位和存储的数据的数据块名字,
所述步骤83还包括,
步骤151,将查询到的内存子块的块头中的数据块名字同请求操作的数据块名字比较,如果匹配,则读写成功,否则,执行步骤152;
步骤152,根据所述有效标志位判断内存子块中数据是否有效,如果无效,则重新查询主拷贝的位置,进行读写,否则,执行步骤153;
步骤153,按向导地址指向的位置重新进行读写。
16.如权利要求15所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述块头中还包括加锁标志位,如果加锁表明内存子块中数据正在更新;
所述步骤82还包括,
步骤161,判断内存子块的加锁标志位判断是否加锁,如果是,则等待待随机或预设时间,重新进行读写。
17.如权利要求15所述的基于InfiniBand网络的分布式存储方法,其特征在于,
存储节点进行查询和替换时,所用所述Infiniband通信采用Send/Receive操作,进行读写时,所用所述Infiniband通信采用RDMAread/write操作。
18.如权利要求15所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述步骤83还包括,
步骤181,当存储节点对本地的一个副拷贝进行写操作完成后,发送多播消息使其他存储节点上的副拷贝失效,将包含写操作中更新数据信息的Diff结果发送给主拷贝所在存储节点,以使主拷贝进行同步更新;
步骤182,当存储节点对本地的一个主拷贝进行写操作完成后,发送多播消息,使每个副拷贝无效。
19.如权利要求16所述的基于InfiniBand网络的分布式存储方法,其特征在于,
所述步骤83还包括,
步骤191,当存储节点对本地的一个副拷贝进行写操作前,发送多播消息,其他存储节点上的副拷贝失效,将副拷贝对应的主拷贝加锁;
步骤192,当存储节点对所述副拷贝进行写操作完成后,将包含写操作中更新数据信息的Diff结果发送给所述主拷贝所在存储节点,以使主拷贝解锁,并进行同步更新;
步骤193,当存储节点对本地的一个主拷贝进行写操作前,对自身加锁,并发送多播消息使每个副拷贝无效;
步骤194,当存储节点对本地的一个主拷贝进行写操作完成后,对自身解锁。
20.如权利要求18或19所述的基于InfiniBand网络的分布式存储方法,其特征在于,
存储节点对标志位进行修改时,所用所述Infiniband通信采用原子操作。
21.一种基于InfiniBand网络的分布式存储系统,其特征在于,所述系统包括通过InfiniBand网络连接的节点,所述节点包括一个管理主机和多个存储节点;
每两个所述节点间建立InfiniBand通信;
所述存储节点包括内存分配模块和请求处理模块,
所述内存分配模块,用于分配内存空间,对所述内存空间进行预注册,将分配的内存空间的相关信息发送给其他节点,所述内存空间构建成内存池;
所述请求处理模块,用于接收请求,根据从所述管理主机获得的同所述请求相关的主拷贝的全局位置信息进行同所述请求对应的操作,或根据本地存储的其他存储节点分配的内存空间相关信息进行所述请求对应的操作;
所述管理主机,用于通过InfiniBand通信接收所述存储节点的请求,提供并维护所述节点从后端存储系统读入的主拷贝的全局位置信息。
22.如权利要求21所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述节点还通过以太网络连接;
所述节点包括通信域;
所述每两个所述节点间建立InfiniBand通信进一步为,建立以太网络通信;节点通过以太网络获得其他节点的InfiniBand通信句柄,并将所述InfiniBand通信句柄存储到所述节点的通信域。
23.如权利要求22所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述内存分配模块进一步用于分配一块内存空间,将所述内存空间拴住,使所述内存空间的数据不被交换到交换空间;对所述内存空间进行预注册,将与分配内存空间的位置和属性相关信息记录到InfiniBand通信句柄中对应字段,并发送给其他节点;在接收其他存储节点发送的InfiniBand通信句柄中对应字段时,将所述InfiniBand通信句柄中对应字段存储到所述存储节点的通信域对应的通信句柄中;
所述管理主机还用于接收存储节点发送的InfiniBand通信句柄中对应字段,并存储到所述管理主机的通信域对应的通信句柄中。
24.如权利要求23所述的基于InfiniBand网络的分布式存储系统,其特征在于,所述内存分配模块还用于采用Slab分配器管理内存空间的分配和释放。
25.如权利要求23所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述管理主机接收的请求包括获取主拷贝位置信息请求和注册新主拷贝请求,
所述管理主机进一步包括信息存储模块、信息提供模块和信息更新模块,
所述信息存储模块,用于将文件的数据块的主拷贝的全局位置信息以文件名为索引存储到所述管理主机的主拷贝位置信息域;
所述信息提供模块,用于所述管理主机接收到包含文件名的获取主拷贝位置信息请求时,通过所述文件名在所述主拷贝位置信息域中查找对应文件数据块的全局位置信息,并返回给请求的存储节点;
所述信息更新模块,用于所述管理主机接收到从后端存储系统读入数据块的主拷贝的存储节点发送的注册新主拷贝请求后,根据所述注册新主拷贝请求更新所述主拷贝位置信息域。
26.如权利要求25所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述信息更新模块进一步用于根据注册新主拷贝请求中文件名判断所述主拷贝位置信息域中是否存储对应记录,如果是,则用新主拷贝的全局位置信息更新所述对应记录;否则,建立基于所述文件名的结构体,在所述主拷贝位置信息域中存储所述新主拷贝的全局位置信息。
27.如权利要求21所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述管理主机所用的InfiniBand通信采用Send/Receive操作。
28.如权利要求25所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述请求处理模块进一步包括读写请求处理模块和用于根据所述数据块名字从所述管理主机中获得所述数据块的主拷贝的全局位置信息,在所述内存池中查询数据块的查询模块,
所述读写请求处理模块,用于在所述存储节点接收到读写请求时,从请求中获得请求读取的数据块名字,所述数据块名字包含数据块所在文件的文件名和所述数据块在所述文件中的偏移,将所述数据块名字发给所述查询模块;
所述查询模块在所述内存池中查询所述数据块;
所述读写请求处理模块,还用于根据查询结果,如果所述数据块的主拷贝不在所述存储节点本地,则复制所述主拷贝为一个副拷贝,存储到本地。
29.如权利要求28所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述请求处理模块进一步包括查询请求处理模块,
所述查询请求处理模块,进一步用于在所述存储节点接收到数据块查询请求时,获得数据块查询请求中包含的请求查询的数据块名字,将所述数据块名字发给所述查询模块;
所述查询模块在所述内存池中查询所述数据块。
30.如权利要求29所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述存储节点还包括用于从内存池中选择待用的内存子块的替换模块,
所述查询模块进一步包括:
位置信息预读模块,用于通过向所述管理主机发送包含所述文件名的获取主拷贝位置信息请求,将所述文件的所有数据块的主拷贝的全局位置信息预读到本地;
数据查找模块,用于根据所述数据块的主拷贝的全局位置信息在内存池中查询所述数据块的主拷贝,如果查询到,则返回查询到的主拷贝的位置信息,否则,根据数据块名字从所述后端存储系统读入所述数据块的新主拷贝,启动所述替换模块从内存池中选择待用的内存子块,将所述新主拷贝存储到所述内存子块;
位置信息更新模块,用于返回所述数据块的新主拷贝的位置信息,并向所述管理主机发送注册新主拷贝请求。
31.如权利要求30所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述请求处理模块进一步包括替换请求处理模块,
所述替换请求处理模块,用于在所述存储节点接收到替换请求时,启动所述替换模块从内存池中选择待用的内存子块;返回所述待用的内存子块位置信息。
32.如权利要求31所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述存储节点包括所述通信域、用于记录本地内存子块的相关信息的本地内存子块位置信息域、用于记录其他存储节点上最早最少使用的内存子块的时间信息的最老块时间域;所述本地内存子块位置信息域中还包括用于记录本地最早最少使用的内存子块的时间信息的本地最老块时间表;
所述位置信息更新模块还用于更新所述存储节点的本地内存子块位置信息域;
所述替换模块进一步包括空闲空间查找模块、本地最早最少使用内存查找模块、完成判断模块、全局最早最少使用内存查找模块;
所述空闲空间查找模块,用于根据通信域和本地内存子块位置信息域判断所述内存池中是否存在空闲空间,如果所述存储节点本地存在空闲空间,则从所述空闲空间中选择的待用的内存子块;如果空闲空间不在所述存储节点本地,则将所述存储节点本地的内存子块的数据转存到所述空闲空间,本地腾出的内存空间为待用的内存子块;如果内存池不存在空闲空间,则被腾空的本地的内存子块为所述待用的内存子块;如果内存池中不存在空闲空间,则启动所述本地最早最少使用内存查找模块;
所述本地最早最少使用内存查找模块,用于检查所述本地最老块时间表,判断所述本地最老块时间表中最早最少使用的内存子块中存储数据是否为主拷贝,如果不是,选择所述内存子块为所述待用的内存子块,启动所述完成判断模块,否则,启动所述全局最早最少使用内存查找模块;
所述完成判断模块,判断已选择的内存子块的空间加和是否小于要求选择的空间,如果是,则启动所述空闲空间查找模块;
所述全局最早最少使用内存查找模块,检查所述最老块时间域,选择所述最老块时间域中最早最少使用的内存子块,确定所述内存子块所在节点,从所述节点的本地最老块时间表中选择一个或多个最早最少使用的内存子块,选择的内存子块的空间加和大于或等于要求选择的空间;将所述存储节点本地的内存子块的数据转存到所述选择的内存子块,被腾空的所述本地的内存子块为所述待用的内存子块。
33.如权利要求32所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述内存子块中包括用于记录标志位和管理控制信息的块头;
所述全局最早最少使用内存查找模块还用于在所述存储节点本地的数据被转存的内存子块的块头中设置指向选择的内存子块的向导标志位,记录向导地址。
34.如权利要求33所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述数据查找模块在根据所述数据块的主拷贝的全局位置信息在内存池中查询所述数据块的主拷贝时进一步用于根据所述全局位置信息到相应节点上读取对应内存子块的块头,将所述块头中数据块名字和被查询的数据块名比较,如果匹配,查询成功;否则,如果所述块头中包含向导标志位,向导地址指向另一个节点,则按所述向导地址查找下一节点;如果最后查找到的内存子块向导为空或查询的节点数超过预设值,则查询失败。
35.如权利要求33所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述块头中包括有效标志位和存储的数据的数据块名字,
所述读写请求处理模块在根据查询结果复制所述主拷贝为一个副拷贝存储到本地时进一步用于将查询到的内存子块的块头中的数据块名字同请求操作的数据块名字比较,如果匹配,则读写成功,否则,根据所述有效标志位判断内存子块中数据是否有效,如果无效,则重新查询主拷贝的位置,进行读写,如果有效,则按向导地址指向的位置重新进行读写。
36.如权利要求35所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述块头中还包括加锁标志位,如果加锁表明内存子块中数据正在更新;
所述读写请求处理模块在读写时还用于判断内存子块的加锁标志位判断是否加锁,如果是,等待随机或预设时间,重新进行读写。
37.如权利要求35所述的基于InfiniBand网络的分布式存储系统,其特征在于,
存储节点进行查询和替换时,所用所述Infiniband通信采用Send/Receive操作,进行读写时,所用所述Infiniband通信采用RDMAread/write操作。
38.如权利要求35所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述读写请求处理模块还用于当对本地的一个副拷贝进行写操作完成后,发送多播消息使其他存储节点上的副拷贝失效,将包含写操作中更新数据信息的Diff结果发送给主拷贝所在存储节点,以使主拷贝进行同步更新;当存储节点对本地的一个主拷贝进行写操作完成后,发送多播消息,使每个副拷贝无效。
39.如权利要求36所述的基于InfiniBand网络的分布式存储系统,其特征在于,
所述读写请求处理模块还用于当存储节点对本地的一个副拷贝进行写操作前,发送多播消息,其他存储节点上的副拷贝失效,将副拷贝对应的主拷贝加锁;当存储节点对所述副拷贝进行写操作完成后,将包含写操作中更新数据信息的Diff结果发送给所述主拷贝所在存储节点,以使主拷贝解锁,并进行同步更新;当存储节点对本地的一个主拷贝进行写操作前,对自身加锁,并发送多播消息使每个副拷贝无效;当存储节点对本地的一个主拷贝进行写操作完成后,对自身解锁。
40.如权利要求38或39所述的基于InfiniBand网络的分布式存储系统,其特征在于,
存储节点对标志位进行修改时,所用所述Infiniband通信采用原子操作。
CN2009100868884A 2009-06-10 2009-06-10 基于InfiniBand网络的分布式存储方法和系统 Expired - Fee Related CN101577716B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100868884A CN101577716B (zh) 2009-06-10 2009-06-10 基于InfiniBand网络的分布式存储方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100868884A CN101577716B (zh) 2009-06-10 2009-06-10 基于InfiniBand网络的分布式存储方法和系统

Publications (2)

Publication Number Publication Date
CN101577716A true CN101577716A (zh) 2009-11-11
CN101577716B CN101577716B (zh) 2012-05-23

Family

ID=41272503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100868884A Expired - Fee Related CN101577716B (zh) 2009-06-10 2009-06-10 基于InfiniBand网络的分布式存储方法和系统

Country Status (1)

Country Link
CN (1) CN101577716B (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831018A (zh) * 2011-06-15 2012-12-19 塔塔咨询服务有限公司 低延迟先进先出消息交换系统
CN103218360A (zh) * 2012-01-18 2013-07-24 中国石油天然气集团公司 工业实时数据库采用内存池技术实现动态内存管理的方法
CN104219279A (zh) * 2013-06-04 2014-12-17 国际商业机器公司 用于超大规模分布式处理应用的模块化架构的系统和方法
CN104317716A (zh) * 2014-10-30 2015-01-28 华为技术有限公司 分布式节点间的数据传输方法及分布式节点设备
CN105487815A (zh) * 2015-11-24 2016-04-13 无锡江南计算技术研究所 一种基于rdma机制的并行输入输出方法
CN105786624A (zh) * 2016-04-01 2016-07-20 浪潮电子信息产业股份有限公司 一种基于redis与RDMA技术的调度平台
CN106657365A (zh) * 2016-12-30 2017-05-10 清华大学 一种基于rdma的高并发数据传输方法
CN107888657A (zh) * 2017-10-11 2018-04-06 上海交通大学 低延迟分布式存储系统
CN108027803A (zh) * 2015-09-12 2018-05-11 微软技术许可有限责任公司 分布式无锁基于rdma的存储器分配和解分配
CN108959407A (zh) * 2018-06-06 2018-12-07 深圳市远行科技股份有限公司 数据的强一致性写入方法及终端设备
CN109922126A (zh) * 2019-01-04 2019-06-21 国网河北省电力有限公司信息通信分公司 一种基于R2IA技术路线的InfiniBand网络系统
CN110691062A (zh) * 2018-07-06 2020-01-14 浙江大学 一种数据写入方法、装置及其设备
CN111385056A (zh) * 2018-12-27 2020-07-07 中国电子科技集团公司第十五研究所 面向有效载荷数据的实时流处理方法
CN111931082A (zh) * 2020-07-27 2020-11-13 重庆锐云科技有限公司 一种基于分布式集群的大规模数据排序方法及系统
CN112148202A (zh) * 2019-06-26 2020-12-29 杭州海康威视数字技术股份有限公司 训练样本读取方法及装置
WO2021089036A1 (zh) * 2019-11-07 2021-05-14 华为技术有限公司 一种数据传输方法、网络设备、网络系统及芯片
CN112817775A (zh) * 2020-08-19 2021-05-18 北京辰信领创信息技术有限公司 多个实体高效同时利用有限共享的方法
CN113204435A (zh) * 2021-07-01 2021-08-03 阿里云计算有限公司 数据处理方法以及系统
CN113238856A (zh) * 2021-03-09 2021-08-10 西安奥卡云数据科技有限公司 一种基于rdma的内存管理方法及装置
WO2022052634A1 (en) * 2020-09-08 2022-03-17 International Business Machines Corporation Adaptable legacy stateful workload
CN114244857A (zh) * 2021-04-12 2022-03-25 无锡江南计算技术研究所 一种分布式存储系统的内存池管理方法
US11327688B2 (en) 2020-01-13 2022-05-10 Cisco Technology, Inc. Master data placement in distributed storage systems
CN114866537A (zh) * 2022-05-31 2022-08-05 山东省计算中心(国家超级计算济南中心) 一种跨主机跨网络的文件传输方法及系统
WO2023193814A1 (zh) * 2022-04-08 2023-10-12 华为技术有限公司 融合系统的数据处理方法、装置、设备和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928509B2 (en) * 2002-08-01 2005-08-09 International Business Machines Corporation Method and apparatus for enhancing reliability and scalability of serial storage devices

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831018B (zh) * 2011-06-15 2015-06-24 塔塔咨询服务有限公司 低延迟先进先出消息交换系统
CN102831018A (zh) * 2011-06-15 2012-12-19 塔塔咨询服务有限公司 低延迟先进先出消息交换系统
CN103218360A (zh) * 2012-01-18 2013-07-24 中国石油天然气集团公司 工业实时数据库采用内存池技术实现动态内存管理的方法
CN103218360B (zh) * 2012-01-18 2016-08-03 中国石油天然气集团公司 工业实时数据库采用内存池技术实现动态内存管理的方法
CN104219279A (zh) * 2013-06-04 2014-12-17 国际商业机器公司 用于超大规模分布式处理应用的模块化架构的系统和方法
US10248346B2 (en) 2013-06-04 2019-04-02 International Business Machines Corporation Modular architecture for extreme-scale distributed processing applications
CN104219279B (zh) * 2013-06-04 2018-01-23 国际商业机器公司 用于超大规模分布式处理应用的模块化架构的系统和方法
CN104317716B (zh) * 2014-10-30 2017-10-24 华为技术有限公司 分布式节点间的数据传输方法及分布式节点设备
CN104317716A (zh) * 2014-10-30 2015-01-28 华为技术有限公司 分布式节点间的数据传输方法及分布式节点设备
CN108027803B (zh) * 2015-09-12 2021-12-21 微软技术许可有限责任公司 分布式无锁基于rdma的存储器分配和解分配
CN108027803A (zh) * 2015-09-12 2018-05-11 微软技术许可有限责任公司 分布式无锁基于rdma的存储器分配和解分配
CN105487815B (zh) * 2015-11-24 2018-04-10 无锡江南计算技术研究所 一种基于rdma机制的并行输入输出方法
CN105487815A (zh) * 2015-11-24 2016-04-13 无锡江南计算技术研究所 一种基于rdma机制的并行输入输出方法
CN105786624A (zh) * 2016-04-01 2016-07-20 浪潮电子信息产业股份有限公司 一种基于redis与RDMA技术的调度平台
CN106657365A (zh) * 2016-12-30 2017-05-10 清华大学 一种基于rdma的高并发数据传输方法
CN106657365B (zh) * 2016-12-30 2019-12-17 清华大学 一种基于rdma的高并发数据传输方法
CN107888657A (zh) * 2017-10-11 2018-04-06 上海交通大学 低延迟分布式存储系统
CN108959407B (zh) * 2018-06-06 2020-08-11 深圳市远行科技股份有限公司 数据的强一致性写入方法及终端设备
CN108959407A (zh) * 2018-06-06 2018-12-07 深圳市远行科技股份有限公司 数据的强一致性写入方法及终端设备
CN110691062A (zh) * 2018-07-06 2020-01-14 浙江大学 一种数据写入方法、装置及其设备
CN111385056A (zh) * 2018-12-27 2020-07-07 中国电子科技集团公司第十五研究所 面向有效载荷数据的实时流处理方法
CN109922126A (zh) * 2019-01-04 2019-06-21 国网河北省电力有限公司信息通信分公司 一种基于R2IA技术路线的InfiniBand网络系统
CN112148202B (zh) * 2019-06-26 2023-05-26 杭州海康威视数字技术股份有限公司 训练样本读取方法及装置
CN112148202A (zh) * 2019-06-26 2020-12-29 杭州海康威视数字技术股份有限公司 训练样本读取方法及装置
WO2021089036A1 (zh) * 2019-11-07 2021-05-14 华为技术有限公司 一种数据传输方法、网络设备、网络系统及芯片
US11327688B2 (en) 2020-01-13 2022-05-10 Cisco Technology, Inc. Master data placement in distributed storage systems
CN111931082B (zh) * 2020-07-27 2023-06-06 重庆锐云科技有限公司 一种基于分布式集群的大规模数据排序方法及系统
CN111931082A (zh) * 2020-07-27 2020-11-13 重庆锐云科技有限公司 一种基于分布式集群的大规模数据排序方法及系统
CN112817775A (zh) * 2020-08-19 2021-05-18 北京辰信领创信息技术有限公司 多个实体高效同时利用有限共享的方法
GB2613126A (en) * 2020-09-08 2023-05-24 Ibm Adaptable legacy stateful workload
WO2022052634A1 (en) * 2020-09-08 2022-03-17 International Business Machines Corporation Adaptable legacy stateful workload
US11321351B2 (en) 2020-09-08 2022-05-03 International Business Machines Corporation Adaptable legacy stateful workload
CN113238856B (zh) * 2021-03-09 2022-07-26 西安奥卡云数据科技有限公司 一种基于rdma的内存管理方法及装置
CN113238856A (zh) * 2021-03-09 2021-08-10 西安奥卡云数据科技有限公司 一种基于rdma的内存管理方法及装置
CN114244857A (zh) * 2021-04-12 2022-03-25 无锡江南计算技术研究所 一种分布式存储系统的内存池管理方法
CN113204435A (zh) * 2021-07-01 2021-08-03 阿里云计算有限公司 数据处理方法以及系统
WO2023193814A1 (zh) * 2022-04-08 2023-10-12 华为技术有限公司 融合系统的数据处理方法、装置、设备和系统
CN114866537A (zh) * 2022-05-31 2022-08-05 山东省计算中心(国家超级计算济南中心) 一种跨主机跨网络的文件传输方法及系统
CN114866537B (zh) * 2022-05-31 2023-08-04 山东省计算中心(国家超级计算济南中心) 一种跨主机跨网络的文件传输方法及系统

Also Published As

Publication number Publication date
CN101577716B (zh) 2012-05-23

Similar Documents

Publication Publication Date Title
CN101577716B (zh) 基于InfiniBand网络的分布式存储方法和系统
CN107888657A (zh) 低延迟分布式存储系统
CN101697168B (zh) 一种分布式文件系统动态元数据管理方法及系统
CN103150394B (zh) 面向高性能计算的分布式文件系统元数据管理方法
CN100428195C (zh) 数据处理系统和方法
CN100570582C (zh) 数据处理系统和方法
CN102591800B (zh) 一种弱一致性存储模型的数据访存系统和方法
US8818942B2 (en) Database system with multiple layer distribution
CN102088484B (zh) 一种分布式文件系统的写锁定方法及系统
CN104811493B (zh) 一种网络感知的虚拟机镜像存储系统及读写请求处理方法
CN110263061A (zh) 一种数据查询方法及系统
US20060230237A1 (en) Method and system for maintaining cache coherence of distributed shared memory system
CN101162442A (zh) 支持共享全局一致性状态的处理器、数据处理系统和方法
CN1226704A (zh) 包括多层次分级存储器体系的数据处理系统的高速缓存相关性协议
CN101957861A (zh) 新型元数据服务器集群和基于调整表的元数据管理方法
CN101382953A (zh) 在用户空间访问文件系统的接口系统与文件读、写方法
JP2001519565A (ja) キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送
CN105701219A (zh) 一种分布式缓存的实现方法
CN103297490B (zh) 信息处理装置、分布式处理系统和分布式处理方法
KR101284969B1 (ko) 정보 처리 장치, 메모리 제어 방법 및 메모리 제어 장치
CN105320676A (zh) 一种客户数据查询服务方法及装置
CN101470669A (zh) 多缓存数据一致性的处理方法及主存处理机
US6298419B1 (en) Protocol for software distributed shared memory with memory scaling
JP2010267166A (ja) 仮想単一メモリストレージ上におけるメタ情報共有型分散データベース・システム
CN111273860A (zh) 一种基于网络和页粒度管理的分布式内存管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120523

Termination date: 20200610