一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

锁服务处理方法、装置和数据处理系统与流程

2022-10-13 03:54:32 来源:中国专利 TAG:


1.本发明涉及数据存储技术领域,特别涉及一种锁服务处理方法、装置和数据处理系统。


背景技术:

2.随着智能时代的来临,数据已呈现爆炸式增长态势,而且应用中对海量数据处理的实时性要求日益明显。
3.目前,虽然存储介质的性能有了近百倍提升,比如采用ssd(solid state disk,固态硬盘)技术后极大提高了数据读写性能(如高速、低延时),但是为了保证数据一致性,数据处理系统中各个节点(如网络结构上的每个数据处理单元可称为一个节点,如服务器节点、网关节点、存储单元节点等)在访问数据时,需要基于锁服务(lock service)机制进行协同。
4.因此,现有锁服务处理制约了各节点网络协同性能,使得各个节点在数据协同中成了数据中心性能提升的瓶颈。
5.基于此,为满足数据中心建设中各个节点对海量数据的实时性能提升需要,亟需一种数据协同中低延时的锁服务处理方案。


技术实现要素:

6.有鉴于此,本说明书实施例提供一种锁服务处理方法、装置和存储系统,更有效地协调存储系统各个节点访问存储系统的数据,提高各节点数据访问性能,避免繁琐的加锁、解锁操作,提高数据处理效率,降低数据处理延时。
7.本说明书实施例提供以下技术方案:本说明书实施例提供一种锁服务处理方法,应用于存储系统,所述存储系统与至少一个其他节点存在通信连接,所述锁服务处理方法包括:设置第一元数据区;将锁信息存储于所述第一元数据区中,以将所述第一元数据区作为所述存储系统向所述至少一个其他节点共享锁信息的数据通信缓冲区,其中所述锁信息为所述存储系统中各存储区对应的锁信息。
8.本说明书实施例还提供一种锁服务处理方法,应用于第一网关节点,所述第一网关节点与至少一个其他节点存在通信连接,所述至少一个其他节点包括用于数据存储的至少一个存储系统,所述锁服务处理方法包括:通过所述通信连接获取锁信息,其中所述锁信息存储于第一元数据区,所述第一元数据区设置于所述存储系统中,所述第一元数据区用于存储所述存储系统中各存储区对应的锁信息,以作为所述存储系统向所述第一网关节点和/或所述至少一个其他节点共享所述锁信息的数据通信缓冲区。
9.本说明书实施例还提供一种锁服务处理装置,应用于存储系统,所述存储系统与
至少一个其他节点存在通信连接,所述锁服务处理装置包括:锁信息共享模块,设置第一元数据区,以作为所述存储系统向所述至少一个其他节点共享锁信息的数据通信缓冲区,其中所述锁信息为所述存储系统中各存储区对应的锁信息;锁信息存储模块,将所述锁信息存储于所述第一元数据区中。
10.本说明书实施例还提供一种锁服务处理装置,应用于第一网关节点,所述第一网关节点与至少一个其他节点存在通信连接,所述至少一个其他节点包括用于数据存储的至少一个存储系统,所述锁服务处理装置包括:获取模块,通过所述通信连接获取锁信息,其中所述锁信息存储于第一元数据区,所述第一元数据区设置于所述存储系统中,所述第一元数据区用于存储所述存储系统中各存储区对应的锁信息,以作为所述存储系统向所述第一网关节点和/或所述至少一个其他节点共享所述锁信息的数据通信缓冲区。
11.本说明书实施例还提供一种数据处理系统,包括服务器节点和存储节点,所述服务器节点与所述存储节点通信连接,所述存储节点被配置为执行前述任意一项所述的应用于存储系统的锁服务处理方法,以向所述服务器节点提供锁信息。
12.与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:通过在数据后端的存储系统中共享锁服务通道的共享方式,可以在数据处理中,无需去额外设置一个集中式管理模块,也不需要网关之间互相通信询问锁状态,以及锁信息的发送接收直接由存储系统通过共享方式提供,其他节点获取锁信息操作免锁,又不占用网关节点之间通信链路,各节点之间基于共享锁信息进行协同数据处理,提高各节点数据访问性能,避免各个节点对存储系统进行繁琐的加锁、解锁等操作,提高数据处理效率,降低数据处理延时,避免各个节点对数据中心建设带来的约束,使得锁服务方案可成为通用的锁服务方案,有利于加快不同应用场景下的数据中心建设。
13.还有,存储系统使用ssd存储数据,掉电数据不会消失,克服了集中式锁服务里面主从模块一旦毁坏系统无法运作的缺点,保证锁信息的持久化。
附图说明
14.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
15.图1是现有数据处理系统的结构示意图;图2是现有方案锁服务方案中数据访问冲突过程的示意图;图3是现有方案的中心化锁服务方案的结构示意图;图4是现有方案的非中心化锁服务方案的结构示意图;图5是本说明书实施例提供的一种锁服务处理方案的结构示意图;图6是本说明书实施例提供的一种锁服务处理方法的流程图;图7是本说明书实施例提供的一种锁服务处理方法中队列队头、队尾指针原子操作的示意图;
图8是本说明书实施例提供的一种锁服务处理方法中进行kv持久化存储的示意图;图9是本说明书实施例提供的一种锁服务处理装置的结构示意图;图10是本说明书实施例提供的一种锁服务处理方法中锁服务方案的结构示意图;图11是本说明书实施例提供的一种锁服务处理方法的流程图;图12是本说明书实施例提供的一种锁服务处理装置的结构示意图;图13是本说明书实施例提供的一种数据处理系统的结构示意图。
具体实施方式
16.下面结合附图对本技术实施例进行详细描述。
17.以下通过特定的具体实例说明本技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本技术的其他优点与功效。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。本技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
18.要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本技术,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目和方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
19.还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本技术的基本构想,图式中仅显示与本技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
20.另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等描述的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
21.目前,nvme(non-volatile memory express,非易失性内存主机控制器接口规范)是目前最新的存储设备通信协议,其定义了如何在计算机与存储设备之间传输数据,该协议应用于pcie接口(peripheral component interconnect express,高速串行计算机扩展总线标准接口);nvme-of(nvme over fabrics)使用rdma(remote direct memory access,远程直接数据存取)或光纤通道(fc)架构等fabrics技术取代pcie传输,描述了如何将 nvme 协议
由 pcie 接口的使用场景扩展至透过网络的使用场景,是一种架构以及包含rdma在内的数种相关网络协议。
22.基于nvme或者nvme-of协议的现有网络传输方案,需要依赖传统锁机制来保证数据一致性。但是中心化锁机制或者是非中心化锁机制,都对海量数据在网络透传中带来限制。
23.如图1所示,服务器池中的各个服务器可以通过网关(gateway)集群访问数据后端的存储系统池中的存储系统中的数据,比如存储系统为ebof(ethernet bunch of flash,下文可称为闪存簇、闪存扩展柜等,其中ebof可以基于以太网传输协议,也可以基于其他传输协议,如infiniband、fibre channel等)。
24.如图2所示,网关可以由多个网关交换机构成,如网关a、网关b、网关c等,其中每个网关交换器都包含有:nvme目标器(nvme target)、空间服务(space service)、缓存(cache)、存储池(storage pool)、块设备管理(bdm)、nvme启动器(nvme initiator)、数据镜像(data peering)和集群管理(cluster manager)等功能单元;存储集群(即存储系统)由多个ebof盘片构成,如ebof a disks、ebof b disks、ebof c disks等,每个ebof盘片都包含多个数据库用于存放数据。因此,当两个服务器通过相应网关同时访问存储集群中同一地址的数据时,服务器访问该数据的过程如下:服务器提出读取或者写入数据请求(下面以写请求为例),网关接到该请求后相应地访问某一块存储设备,其中网关中处理步骤如下:步骤1,网关中nvme target收到主机写请求后,将该请求转发到space service处理,nvme(non-volatile memory express)是一种协议,专门为闪存类存储设计的协议;步骤2,space service根据访问地址和长度,将请求分拆打散到各网关(如gatewaya、gatewayb、gatewayc)上, 通过data peering请求转发,data peering查询集群状态,将访问请求发送到各网关的cache中,进而对同一逻辑地址的aa进行写操作,此时将发生冲突(conflict);步骤3,各网关的cache将写数据保存本地内存的同时,并将脏数据同步到镜像节点的cache中,其中可根据数据可靠性要求选择2~4副本cache镜像;步骤4,回写流程完成后通过cache-》space servie-》nvme target-》主机返回写成功;步骤5,cache下刷脏数据到storage pool,即storage pool-》bdm-》nvme initialtor下发到各自归属ebof的ssd中,且网关cache镜像数据不用刷盘。
25.因此,需要依靠锁服务机制对数据访问进行协同处理,避免多个节点同时访问同一个地址的数据时发生访问冲突而产生数据一致性问题。
26.如图3所示,现有中心化锁服务机制是,即由主机节点(lockservicemaster)和从机节点(lockserviceslave)构成高可用(high availability,简称ha)的锁(lockha)方案,即分布式锁服务的连续性可以由高可用性保证,其中主机节点和从机节点提供分布式锁服务,服务集群(servicecluster)中各个节点(如node0、node1至noden等)分别连接主机节点和从机节点,以根据锁服务的锁消息(如lockmsg或者unlockmsg)进行协同工作,因而这种情况下如果提供分布式锁服务的工作节点(如主机节点)出现故障,需要启动备用节点(如从机节点)接管服务,而从故障主机节点切换到备用从机节点需要较长时间。因此,中心化
锁服务方案不仅需要设置主机、从机节点,结构复杂,建设成本高,而且主从机之间切换时间较长。
27.如图4所示,现有非中心化锁服务机制由服务集群中的各个节点提供锁服务,即各个节点需要专用的节点间消息通道,如节点开设lockservice通道来提供锁服务,以在各个节点之间基于专用消息通道,在读写一致性成员间进行分布式加解锁(如lockmsg、unlockmsg)的消息广播。因此,不仅增大了节点间的网络通信压力大,加解锁操作也增加开销,增大读写延迟。
28.因此,现有的锁服务机制在实际应用中均存在各自限制,如中心化锁机制中需要设置主从节点,并在主机故障时切换到备份从机,切换时间也大,比如非中心化锁机制需要专用的节点间消息通道,加大了各节点的开销、通信压力及读写延时等,使得现有锁服务方案以及基于锁服务的传输方案等在实际应用中存在诸多限制,应用灵活性不高,而且数据延时大。
29.另外,传统数据访问处理方案通常是基于传统网络进行访问协同,但传统网络在改造应用到海量数据场景时,目前改造进展缓慢且建设难度大、成本高,并不适合快速、低成本地灵活应用于各种新出现的海量数据处理应用场景。
30.有鉴于此,在对锁机制进行深入研究及改进后,基于现有的两种锁服务方式进行优化和改进,提出了一种灵活性高的通用锁服务方案:如图5所示,在现有的被访问存储节点(如图中示出的存储器集群nvmessds)上设置一块区域(如图中示出的lockstatus)用于存储锁信息,并作为多个网关节点之间的锁消息交流通道,使得所有的网关节点(如图中示出的控制器(controller)/网关(gateway)),都可以同时看到同一存储节点存储的所有锁信息,即各个节点内的锁服务(lockservice)进程都可以访问并得知同一块存储区域的锁信息,其中存储节点可为基于nvme或者nvme-of的ssd池。
31.通过在存储节点中设置一块共享区域用于存储该存储节点的锁信息,即通过处于后端的存储节点中设置锁信息共享通道实现锁服务共享方案,这样既不需要如中心化锁管理模式需要设置主从节点,又不需要如非中心化锁管理模式中依靠各网关节点之间互相通信访问,因而无需额外设置一个集中式管理模块,也不需要网关之间互相通信询问而占用网关节点之间链路,以及节点之间通信仍可基于传统传输网络进行通信,可充分发挥存储节点读写性能优势同时,可降低数据中心建设难度、成本,提高建设速度和效率。
32.另外,网关和存储节点(如ssd)之间可以透过网络进行数据访问传输,比如基于nvme-of架构来支持nvme协议在网络中透传,数据速度更快,节省更多通信时间,降低上下文传输延迟,避免了锁服务对数据处理中各节点的性能制约。
33.还有,在使用ssd作为存储系统,既可快速、低延时地读写海量数据,又可避免掉电后数据消失,克服了现有方案中可能因当前处理节点毁坏而导致整体系统无法顺利运行的不足。
34.因此,改进后的锁服务方案可为数据中心建设提供一种性能高、灵活性好的低成本快速应用方案。
35.需要说明的是,使用nvme协议意味着需要使用基于pcie交换机的服务器机架,虽然存储扩展的范围相对小一些,但也是一种完全有效的存储扩展方式;nvme-of是允许在数据中心范围内连接无数的存储空间,存储扩展范围不受限制,以及nvme-of的优势可以在计
算和存储完全分开的应用场景中可完全发挥出来,因而可通过以太网网络将一个nvme ssd池提供给一个服务器池实现用途更广的应用方案,比如可以允许按需提供计算和存储,计算和存储的分解提升了存储的可伸缩性和可共享性,并支持可组合性。因此,存储节点(如闪存柜)及其扩展方案可根据实际应用需要选用nvmessd池或者nvme-ofssd池。
36.以下结合附图,说明本技术各实施例提供的技术方案。
37.本说明书实施例提供应用于存储系统的一种锁服务处理方法,存储系统与至少一个其他节点存在通信连接,其中所述至少一个其他节点可以包括至少一个网关节点和/或服务器节点和/其他存储系统节点,作为优选实施方式,所述至少一个其他节点可以包括至少一个网关节点,以便存储系统通过网关节点向外广播共享锁信息。
38.如图6所示,所述锁服务处理方法,可包括:步骤s202、设置第一元数据区;步骤s204、将锁信息存储于所述第一元数据区中。
39.实施中,在存储系统中开辟出一个专用的元数据区,并可将该元数据区作为存储系统向外部共享锁信息的数据通信缓冲区,使得与存储系统通信连接的其他节点(比如服务器、网关、其他存储系统等),均可通过该元数据区获知该存储系统的锁信息,有利于其他节点在数据处理(如读数据、写数据等)中高效、可靠地协同。
40.实施中,锁信息可为所述存储系统中各存储区对应的锁信息,该锁信息用于锁服务中,外部其他节点对该存储系统的加锁、解锁等信息可反映于锁信息中,因而锁信息可用于在数据处理中,反映存储系统中各存储区被外部其他节点请求加解锁时的请求内容、锁状态等。
41.例如,在前述图5所示的nvmessds(即基于nvme协议的ssd池)构成的存储系统中,可在多个disk(存储盘片)构成的ssd池中开辟出一个lockstatus存储区,以作为用于存储锁信息的第一元数据区,这样存储系统可向与其具有数据通信连接的控制器(controller)或者网关(gateway)的锁服务(如服务线程)共享锁信息,使得各个锁服务都可以同时去获取锁信息。
42.实施中,锁信息可作为元数据存储于第一元数据区中。需要说明的是,元数据可指结构化数据,以用结构化数据表征另一数据的数据特征,这里将存储系统中各存储区的锁信息形成为结构化数据(即作为元数据),并存储于元数据区中。因此,元数据的具体结构形式、元数据区的组织形式、大小等,本领域的技术人员可根据实际应用需要进行设置,这里不作限定。
43.一些实施方式中,可在存储系统中的指定存储区中开辟第一元数据区,其中指定存储区可为存储系统中专门存储锁信息的存储区,比如指定存储区为指定的ssd(固体硬盘)。
44.通过在将第一元数据区在指定存储区中进行开辟,可有利于快速形成第一元数据区,并且有利于将第一元数据区域其他数据区分存放,也利于快速、准确地读写锁信息。
45.还有,在进行存储扩展时,也可方便地将扩展的存储区所对应锁信息,快速地从第一元数据区中读写,降低读写延时,提高读写效率。
46.需要说明的是,指定存储区可为某个存储区,也可为某个存储区中的某段地址对应的存储空间,这里不作限定。
47.一些实施方式中,锁信息可通过数据队列方式进行共享,即所述锁服务处理方法还可包括:在所述第一元数据区中设置第一数据传输队列。因此,将所述锁信息存储于所述第一元数据区,可包括:将所述锁信息存储于所述第一数据传输队列。
48.实施中,可在通信缓冲区内部,根据分布式集群的拓扑关系,生成节点p2p(peertopeer)的数据传输队列,比如可分成发送队列(如节点a向节点b发送信息的传输队列,记为a-》b),比如接收队列(如节点a接收节点b发送信息的传输队列,记为b-》a)。
49.需要说明的是,第一数据传输队列可为接收队列、发送队列,以及可根据实际应用需要设置该数据传输队列,比如队列地址、队列大小、队列结构等,这里不作限定。
50.一些实施方式中,可通过指针操作对队列的入列和出列进行操作处理。
51.实施中,所述第一数据传输队列设置有指向队列内部地址的队尾(tail)指针和队头(head)指针,这样对于每个队列,都有一个队头和队尾指针作为队列维护(即入列、出列)的操作指针。其中,指针均为指向队列内部的地址,队头指针指向队列头部,可作为接收者维护的对象;队尾指针指向队列尾部,作为发送者维护的对象。
52.通过设置队头指针、队尾指针后,存储系统可向外部其他节点提供队列维护接口,使得其他节点可在数据处理中直接操作指针,及时进行加锁、解锁请求及操作,降低数据处理的延时。
53.此时,所述锁服务处理方法还可包括:当接收到所述其他节点申请加锁请求时,由作为发送者的所述其他节点执行:将加锁消息加入所述第一数据传输队列和修改所述队尾指针;当向所述其他节点发送所述锁消息时,由作为接收者的所述其他节点执行:轮询读取所述队尾指针和在获取新的锁消息出队处理后修改所述队头指针。
54.例如,节点申请加锁时,由发送者线程将消息内容入队列后,修改队尾指针,完成入队操作;例如,节点接收消息,由接收者线程轮询读取队尾指针,获取新消息出队处理,修改队头指针,完成出队操作。
55.需要说明的是,这里的发送者和接收者均为相对存储系统来说,比如网关节点需要从存储系统获取共享的锁信息,则网关节点为接收者;比如网关节点请求加锁、解锁等操作,此时网关节点为发送者。
56.一些实施方式中,在元数据区内对发送队列和/或接收队列进行入列操作中,可采用顺序循环写模式。
57.实施中,将所述锁信息存储于所述第一数据传输队列,可包括:采用顺序循环写模式将所述锁信息存储于所述第一数据传输队列。
58.实施中,数据传输队列可为循环队列,可对该队列进行顺序循环写,可保证消息数据的高性能写入,降低延时,也可对介质的磨损进行均衡。
59.一些实施方式中,可将锁信息(即队列中的队列元素)放在不同的page中。
60.实施中,将所述锁信息存储于所述第一数据传输队列,可包括:将所述锁信息在队列中的每个元素存储于所述第一元数据区中不同存储页。
61.通过将队列中的每个元素放在不同的存储页(page)中,可方便存储扩展,也可保证每次写操作的磨损均衡。
62.一些实施方式中,在新的锁信息写入队列时,即新写入队列数据时,可将当前的事务id一起写入队列数据中。
63.实施中,将所述锁信息存储于所述第一元数据区,可包括:将所述锁信息和当前事务id存储于所述第一元数据区。
64.实施中,可将事务id写入到队列中的空域中,当队头和队尾数据损坏时,在锁信息对应的队列元素损坏时,可以扫描事务id数据对队列恢复,可保证队列数据的完整一致。
65.一些实施方式中,可将队头指针和队尾指针值和当前的事务id一起写入队列数据的空闲域中,当队头和队尾数据损坏时,可以扫描数据队列进行恢复,保证了队头和队尾指针内容和队列数据的完整一致。
66.一些实施方式中,可采用原子操作将所述锁信息存储于所述第一元数据区。由于是原子操作,使得读到写可以一气呵成,且不被中断,比如网关节点访问数据时,可在读完数据后,立刻(比如极短时间内)把下一个锁信息(如锁状态)写进元数据区中,使得加锁、解锁的时间可大幅度减少,同时数据一致性也得到保障。
67.在一些实施中,在队列的队头或者队尾指针维护中,可采用原子操作,保证修改队头或者队尾指针不被中断,即使修改队列数据的操作被打断,但是仍可以队头和队尾指向的内容为有效值,保证了数据一致性。
68.需要说明的是,原子操作(atomic operation)可指不可以被中断的一个或一系列操作,这里不作限定。
69.如图7所示,相关节点(如控制器/网关节点,如node0、noden)在对队头指针、队尾指针进行原子操作维护中,可以通过nvme ssd rw接口(即nvme ssd读写接口)对队尾和队头指针的原子读写操作,比如发送节点(如图中的noden)可以先从队列中读取队尾指针(read tail pointer),然后向数据区写锁请求(write lock request),接着通过原子写操作修改队列的队尾指针(atomic write tail pointer),比如接收节点从队列中读取队头指针(read head pointer),以及从数据区读取锁请求(read lock request),然后通过原子写操作修改队头指针(atomic write head pointer)。
70.一些实施方式中,可通过nvme ssd kv(key value,键值对)共享接口实现锁信息的持久化存储,其中kv中保存有加锁请求内容和状态,kv为键值、键值对。
71.通过kv持久化存储锁信息进行,既可以利用传统的分布式系统的配置实现方式,又能利用nvme kv接口,可以获取到更好的性能,实现加解锁状态持久化存储。
72.一些实施方式中,可以通过哈希(hash)算法确定合适的锁服务节点通过原子操作实现kv持久化存储。
73.具体地,锁客户节点对需要加锁的资源id,通过一致性hash算法在集群中选择一个锁服务节点,并向所述锁服务节点所在的kv中尝试写入加锁请求内容。
74.其中,各锁服务节点可以分配自身对应的唯一id标识(即资源id),这时锁客户节点可以通过hash算法来确定该id对应的锁服务节点是否适合用于进行kv持久化存储原子操作,当确定出适合时,锁客户节点向锁服务节点所在的kv中尝试写入加锁请求内容。
75.需要说明的是,锁服务节点和锁客户节点之间存储数据通信,因而基于该数据通信实现数据交互,具体通信方式不作限定。
76.一些实施方式中,锁客户节点可以通过所述资源id进行轮询,确定加锁是否就绪。
另外,在轮询到加锁请求就绪状态时,锁客户节点可以执行下一步业务流程,比如将需要锁服务节点处理的业务向锁服务节点发送等。
77.一些实施方式中,可采用数据版本号的方式检测冲突,实现get/set操作免锁。具体地,在所述锁客户节点尝试写入加锁请求内容时,所述锁服务节点读取加锁请求和版本号,并进行互斥判断,当判断出当前允许加锁时,则修改请求就绪状态和版本号后写入kv中。
78.一些实施方式中,在锁服务节点进行原子操作的kv持久化存储中,当出现故障、请求超时等处理,可以由锁服务节点内部完成。
79.一些实施方式中,如图8所示,基于nvme ssd kv共享接口进行锁信息持久化存储中,锁客户节点可以先获取锁数据(比如get lock data的数据版本为version1),当锁客户节点需要修改锁数据(change lock data)时,通过将锁数据设置为新版本,比如set lock data version1为version2,可以通过定期查询数据区中锁状态修改情况(subscribe the lock status change),及时获知锁状态;另外,锁服务节点获取到锁数据(get lock data)比如获取到新版本version2的锁数据,进而对锁数据进行冲突检查完成互斥检测判断,当判断出允许加锁时,则修改请求就绪状态和版本号后写入kv中,最后锁客户节点通过轮询而被告知锁已准备就绪,从而完成整个锁信息持久化存储。
80.一些实施方式中,前述任意一项实施例所述的锁服务处理方案,可应用于nvme-of全闪存系统。
81.实施中,所述存储系统包括nvme-of全闪存系统,所述存储系统与至少一个其他节点存在通信连接,可包括:所述nvme-of全闪存系统与至少一个其他节点存在以太网通信连接。
82.通过nvme-of全闪存系统与至少一个其他节点进行以太网通信连接,各网关和ssd之间可透过nvme-of架构来支持nvme协议,不仅可基于传统以太网(比如网关之间仍用tcp-ip协议)进行数据处理,而且nvme协议速度快,有效节省通信时间,降低延时,也可避免各节点对数据中心建设带来的约束,提高了锁服务方案在不同应用场景的灵活性。
83.一些实施方式中,处于数据中心后端的存储系统可使用智能ebof(智能的以太网闪存柜),提高数据读写效率的同时,可防止单点盘的单点故障造成数据丢失,也可提高存储扩展的灵活性。
84.实施中,nvme-of全闪存系统可包括以太网闪存柜(ebof),其中ebof中可包括若干ssd。
85.一些实施方式中,可通过智能ebof,使得存储节点对内部可作盘间数据冗余存储,对外部可提供跨盘的固态硬盘原子写操作,即所述以太网闪存柜用于在所述nvme-of全闪存系统中作为盘间数据冗余的存储单元;和/或,所述以太网闪存柜用于在所述nvme-of全闪存系统中对所述其他节点提供固态硬盘原子写操作的存储单元。
86.基于相同发明构思,本说明书实施例还提供与前述应用于存储系统的所述锁服务处理方法相对应的锁服务处理装置。
87.如图9所示,本说明书实施例提供的锁服务处理装置,应用于存储系统中,其中所述存储系统与至少一个其他节点200存在通信连接,其中所述锁服务处理装置110可包括:锁信息共享模块111,设置第一元数据区,以作为所述存储系统100向所述至少一个其他节
点200共享锁信息的数据通信缓冲区,其中所述锁信息为所述存储系统100中各存储区对应的锁信息;锁信息存储模块113,将所述锁信息存储于所述第一元数据区中。
88.通过将锁信息存储于第一元数据区,并通过第一元数据区对存储系统外部的其他节点进行共享,使得其他节点可同时获知该存储系统中的锁信息,从而在数据处理中高效协同工作,而且在数据中心建设中,仅需要存储系统共享锁信息,存储系统及其他节点改造工作小,建设难度和成本低,也可灵活满足不同应用场合需求。
89.可选地,锁信息共享模块111还被配置为执行:在所述第一元数据区中设置第一数据传输队列;将所述锁信息存储于所述第一元数据区,包括:将所述锁信息存储于所述第一数据传输队列。
90.可选地,所述第一数据传输队列设置有指向队列内部地址的队尾指针和队头指针;锁信息共享模块111还被配置为执行:当接收到所述其他节点申请加锁请求时,由作为发送者的所述其他节点执行:将加锁消息加入所述第一数据传输队列和修改所述队尾指针;当向所述其他节点发送所述锁消息时,由作为接收者的所述其他节点执行:轮询读取所述队尾指针和在获取新的锁消息出队处理后修改所述队头指针。
91.可选地,将所述锁信息存储于所述第一数据传输队列,包括:采用顺序循环写模式将所述锁信息存储于所述第一数据传输队列。
92.可选地,将所述锁信息存储于所述第一数据传输队列,包括:将所述锁信息在队列中的每个元素存储于所述第一元数据区中不同存储页。
93.可选地,将所述锁信息存储于所述第一元数据区,包括:采用原子操作将所述锁信息存储于所述第一元数据区。
94.可选地,将所述锁信息存储于所述第一元数据区,包括:将所述锁信息和当前事务id存储于所述第一元数据区。
95.可选地,所述存储系统包括nvme-of全闪存系统;所述存储系统与至少一个其他节点存在通信连接,包括:所述nvme-of全闪存系统与至少一个其他节点存在以太网通信连接。
96.可选地,所述nvme-of全闪存系统包括以太网闪存柜。
97.可选地,所述以太网闪存柜用于在所述nvme-of全闪存系统中作为盘间数据冗余的存储单元;和/或,所述以太网闪存柜用于在所述nvme-of全闪存系统中对所述其他节点提供固态硬盘原子写操作的存储单元。
98.可选地,设置第一元数据区,包括:在所述存储系统的指定存储区设置第一元数据区。
99.基于相同发明构思,本说明书实施例还提供应用于网关的锁服务处理方案。下面以应用于第一网关节点为例进行示意说明。
100.如图10所示,本说明书实施例提供的一种锁服务处理方法,可应用于第一网关节点(如图中的网关),所述第一网关节点与至少一个其他节点存在通信连接,所述至少一个
其他节点包括用于数据存储的至少一个存储系统(如图中的存储系统),其中存储系统可为被配置执行前述任意一个实施例中所述的应用于存储系统的锁服务处理方法。
101.实施中,应用于网关节点的所述锁服务处理方法,可包括:通过所述通信连接获取锁信息,其中所述锁信息存储于第一元数据区,所述第一元数据区设置于所述存储系统中,所述第一元数据区用于存储所述存储系统中各存储区对应的锁信息,以作为所述存储系统向所述第一网关节点和/或所述至少一个其他节点共享所述锁信息的数据通信缓冲区。
102.通过存储系统共享锁信息,以及网关节点通过与存储系统之间的通信连接(比如以太网的网络连接),可以获取到存储系统对外共享的所述锁信息,进而根据锁信息各个网关节点在数据处理中进行协同工作,提高数据处理效率,降低数据传输延时,同时可降低网关节点的建设难度和成本,提高数据中心建设中网关节点建设的灵活性。
103.需要说明的是,这里的通信连接可为数据中心建设中传统传输网络、专用传输网络等通信连接,这里不作限定。
104.一些实施方式中,网关节点可通过协同工作,提高数据处理效率,降低数据处理延时。
105.实施中,所述至少一个其他节点还可包括至少一个第二网关节点,即第一网关节点和第二网关节点协同工作;如图11所示,所述锁服务处理方法还可包括:步骤s402、接收第一服务器发送的待处理任务;步骤s404、根据所述锁信息,确定所述待处理任务需要使用的目标存储区是否被所述第二网关节点锁住;若是,则执行步骤s406;若否,则执行步骤s408;步骤s406、将所述待处理任务向所述第二网关节点分配,以使所述第二网关节点对所述待处理任务进行处理;步骤s408、按预设的处理策略处理所述待处理任务。
106.需要说明的是,步骤s408中预设的处理策略可为第一网关节点处理任务时对应的处理策略,比如加锁策略、解锁策略等,可根据实际应用进行预设、调整,这里不作限定。
107.如前述图7所示,在网关节点(如图中示出的控制器/网关节点,如noden)查到某一个需要使用到的存储节点被另一网关节点(如图中示出的控制器/网关节点,如node0)锁住时,可以把从服务器接收到的任务发送(send,也可称为分配)给具有该锁资源的node0去进行处理。
108.通过基于锁信息共享实现任务协同转移处理,既无需noden等待node0解锁后再进行加解锁处理后才进行任务处理,而且noden在将任务转移给node0后,还可以再去接收服务器给予的下一个新任务,提高任务处理效率,减低任务延时。
109.一些实施方式中,可将存储系统共享的锁信息存储于网关节点中,便于网关节点根据存储的锁信息进行协同工作。因此,所述锁服务处理方法还可包括:存储所述锁信息。
110.需要说明的是,锁信息在网关中存储的形式可根据实际应用而设置,这里不作限定。
111.一些实施方式中,可通过更新方案及时获取最新的锁信息,即通过所述通信连接获取锁信息,可包括:按预设的更新策略通过所述通信连接获取锁信息。其中,更新策略可根据实际应用进行设置,比如周期性地更新,比如接收存储系统在存在新的锁信息后向各
个网关节点广播锁信息的更新策略等等,这里不作限定。
112.一些实施方式中,可基于以太网采用nvme-of透传nvme协议,实现快速数据处理方案。
113.实施中,所述第一网关节点为以太网网关节点,所述存储系统包括nvme-of全闪存系统,所述通信连接包括以太网通信连接,通过以太网将各个节点进行通信连接,可兼容现有分布式锁服务在不同节点执行的情况,并将nvme-of下的ebof(以太网闪存柜)中所设置的第一元数据区,作为共享的加解锁消息存储转发通道,原有tcp消息卸载到nvme-of rdma通道上,并且将消息持久化到ebof上,而加锁解锁处理逻辑仍可以由原有的节点进行处理。
114.还有,该锁服务处理方案并不局限于分布式锁应用,所有节点间需要进行可靠收发的消息,其收发通信也可通过共享该锁信息的此通道进行,实现高可用性的数据处理方案。
115.基于相同发明构思,本说明书实施例还提供与前述应用于网关节点的所述锁服务处理方法相对应的锁服务处理装置。
116.如图12所示,本说明书实施例提供的锁服务处理装置310,应用于第一网关节点300,所述第一网关节点300与至少一个其他节点存在通信连接,所述至少一个其他节点包括用于数据存储的至少一个存储系统400,其中存储系统400可被配置执行前述任意一个实施例中所述的应用于存储系统的锁服务处理方法。
117.所述锁服务处理装置310可包括:获取模块311,通过所述通信连接获取锁信息,其中所述锁信息存储于第一元数据区,所述第一元数据区设置于所述存储系统中,所述第一元数据区用于存储所述存储系统中各存储区对应的锁信息,以作为所述存储系统向所述第一网关节点和/或所述至少一个其他节点共享所述锁信息的数据通信缓冲区。
118.可选地,所述至少一个其他节点还包括至少一个第二网关节点;所述锁服务处理方法还包括:接收第一服务器发送的待处理任务;根据所述锁信息,确定所述待处理任务需要使用的目标存储区是否被所述第二网关节点锁住;若是,则将所述待处理任务向所述第二网关节点分配,以使所述第二网关节点对所述待处理任务进行处理。
119.可选地,所述锁服务处理方法还包括:存储所述锁信息。
120.可选地,通过所述通信连接获取锁信息,包括:按预设的更新策略通过所述通信连接获取锁信息。
121.可选地,所述第一网关节点为以太网网关节点,所述存储系统包括nvme-of全闪存系统,所述通信连接包括以太网通信连接。
122.基于相同发明构思,本说明书实施例还提供一种基于前述任意一个实施例提供的锁信息共享方案进行数据处理的数据处理系统。
123.如图13所示,本说明书实施例提供的数据处理系统,包括服务器节点和存储节点,所述服务器节点与所述存储节点通信连接,所述存储节点被配置为执行前述任意一项应用于存储系统的所述锁服务处理方法的节点,以向所述服务器节点提供锁信息。
124.通过存储节点设置锁信息共享的通信通道,用于数据任务处理的服务器节点均可
获知存储系统中同一地址的数据是否被锁、被哪个处理节点加锁等锁信息,从而各个节点之间可高效地协同工作,降低数据处理延时,避免各个处理节点对数据中心建设带来的约束,简化建设难度和成本,提高数据中心在不同应用场景中灵活性。
125.一些实施方式中,所述数据处理系统还可包括至少一个网关节点,所述服务器节点通过所述网关节点与所述存储节点通信连接。
126.实施中,网关节点可被配置执行前述任意一个实施例中所述的应用于第一网关节点的锁服务处理方法。
127.通过网关节点,可高效地在服务器节点之间、服务器节点与存储节点之间、网关节点之间等进行协同工作,提高数据处理效率,降低数据处理延时。
128.一些实施方式中,所述数据处理系统还可包括roce节点,所述存储节点包括nvme-of全闪存系统,所述nvme-of全闪存系统通过roce节点通信连接于所述网关节点。
129.如图中所示,roce节点可包括位于网关前端的roce路由器(如图中示出的roce前端交换机,记为frontendroceswitch)和位于网关后端的roce路由器(如图中示出的roce后端交换机,记为backendroceswitch),可在nvme-of透传nvme协议中,原有tcp消息卸载到nvme-of rdma通道上,并且将消息持久化到存储系统(如ebof)上,而加锁解锁处理逻辑仍可以由原有的节点进行处理。
130.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例侧重说明的是与其他实施例的不同之处。尤其,对于后面说明的产品实施例而言,由于其与方法是对应的,描述比较简单,相关之处参见方法实施例的部分说明即可。
131.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
132.应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献