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

一种数据读取方法、装置及相关设备与流程

2022-02-22 04:45:38 来源:中国专利 TAG:


1.本技术涉及数据存储技术领域,特别涉及一种数据读取方法,还涉及一种数据读取装置、缓存镜像系统及计算机可读存储介质。


背景技术:

2.高端存储领域对“容错、高性能、可扩展”有极高的要求,典型的如,对于一个有四个节点的系统:要求在任意节点发生故障的情况下,性能下降不超过20%;当三个节点发生故障时,要求业务不中断。
3.例如,在一个存储系统内,原本节点1与节点2组建镜像对,维护缓存双副本,当节点1发生故障后,节点2将会与节点3重组镜像对,此时,节点2上存储有节点3没有的缓存数据,因此,需要将节点2上“独有的缓存”落盘或copy到节点3后,节点2和节点3的缓存才可达成一致。
4.然而,缓存当前重组镜像对方案存在的问题是:需要等待新加入的节点与原节点的缓存达成一致后,新加入的节点才可以接收前端请求,否则前端主机只能在新节点上读取到新节点原来存储的老数据。但是,在等待两个节点达成缓存一致的时间窗口内,实事上牺牲了新加入节点的服务能力,使得所有前端业务压力都在单一节点上,对业务性能、数据安全等造成了不良影响。
5.因此,如何在重组缓存镜像对时,使新增节点可以立即分担前端业务压力,同时避免重组过程中节点间数据不一致的问题是本领域技术人员亟待解决的问题。


技术实现要素:

6.本技术的目的是提供一种数据读取方法,该数据读取方法可以在重组缓存镜像对时,使新增节点可以立即分担前端业务压力,同时避免重组过程中节点间数据不一致的问题;本技术的另一目的是提供一种数据读取装置、缓存镜像系统及计算机可读存储介质,均具有上述有益效果。
7.第一方面,本技术提供了一种数据读取方法,应用于缓存镜像对,所述缓存镜像对包括互为镜像的第一节点和第二节点,包括:当所述第一节点接收到数据读取请求时,确定自身当前状态;当所述自身当前状态为镜像重组状态时,判断所述数据读取请求对应的请求数据是否命中自身缓存;若是,则从所述自身缓存读取所述请求数据;若否,则从所述第二节点的缓存读取所述请求数据;将所述请求数据反馈至请求终端。
8.优选的,所述数据读取方法还包括:当所述自身当前状态为镜像重组完成状态时,从所述自身缓存读取所述请求数据,并将所述请求数据反馈至所述请求终端。
9.优选的,所述数据读取方法还包括:当接收到数据写入请求时,根据所述数据写入请求确定待写入数据;将所述待写入数据写入所述自身缓存;将所述待写入数据发送至所述第二节点,以使所述第二节点将所述待写入数据写入自身缓存。
10.优选的,所述数据读取方法还包括:当所述自身当前状态为所述镜像重组状态时,从所述第二节点的缓存中读取独有缓存数据;将所述独有缓存数据写入所述自身缓存。
11.优选的,所述数据读取方法还包括:当接收到数据删除请求时,根据所述数据删除请求确定目标删除数据;将所述目标删除数据从所述自身缓存删除;将所述数据删除请求发送至所述第二节点,以使所述第二节点根据所述数据删除请求将自身缓存中的目标删除数据删除。
12.优选的,所述从所述第二节点的缓存读取所述请求数据,包括:通过预设通信链接将所述数据读取请求发送至所述第二节点,以使所述第二节点从自身缓存中读取所述请求数据;接收所述第二节点反馈的所述请求数据。
13.第二方面,本技术还公开了一种数据读取装置,应用于缓存镜像对,所述缓存镜像对包括互为镜像的第一节点和第二节点,包括:当前状态确定模块,用于当所述第一节点接收到数据读取请求时,确定自身当前状态;缓存命中判断模块,用于当所述自身当前状态为镜像重组状态时,判断所述数据读取请求对应的请求数据是否命中自身缓存;第一数据读取模块,用于若所述请求数据命中所述自身缓存,则从所述自身缓存读取所述请求数据;第二数据读取模块,用于若所述请求数据未命中所述自身缓存,则从所述第二节点的缓存读取所述请求数据;请求数据反馈模块,用于将所述请求数据反馈至请求终端。
14.优选的,所述第二数据读取模块具体用于通过预设通信链接将所述数据读取请求发送至所述第二节点,以使所述第二节点从自身缓存中读取所述请求数据;接收所述第二节点反馈的所述请求数据。
15.第三方面,本技术还公开了一种缓存镜像系统,所述缓存镜像系统包括互为镜像的第一节点和第二节点,所述第一节点包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上所述的任一种数据读取方法的步骤。
16.第四方面,本技术还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任一种数据读取方
法的步骤。
17.本技术所提供的一种数据读取方法,应用于缓存镜像对,所述缓存镜像对包括互为镜像的第一节点和第二节点,包括当所述第一节点接收到数据读取请求时,确定自身当前状态;当所述自身当前状态为镜像重组状态时,判断所述数据读取请求对应的请求数据是否命中自身缓存;若是,则从所述自身缓存读取所述请求数据;若否,则从所述第二节点的缓存读取所述请求数据;将所述请求数据反馈至请求终端。
18.应用本技术所提供的技术方案,对于处于重组缓存镜像对状态的两个节点,当新节点(即第一节点)接收到数据读取请求时,可以通过访问两个节点的方式获取请求数据,即当请求数据命中自身缓存时,从自身缓存读取数据,当未命中自身缓存时,则从第二节点的缓存获取数据,因此,在缓存镜像对重组过程中,新节点无需等待两个节点缓存达成一致之后再为前端提供服务,而是在缓存镜像对重组过程中可以立即为前端提供服务,避免由于等待两个节点缓存达成一致的时间窗口内对于新节点服务能力的牺牲,可以大幅度优化缓存镜像对重组过程中的前端性能和数据安全性。
19.本技术所提供的一种数据读取装置、缓存镜像系统及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
20.为了更清楚地说明现有技术和本技术实施例中的技术方案,下面将对现有技术和本技术实施例描述中需要使用的附图作简要的介绍。当然,下面有关本技术实施例的附图描述的仅仅是本技术中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本技术的保护范围。
21.图1为本技术所提供的一种数据读取方法的流程示意图;图2为本技术所提供的一种数据读取装置的结构示意图;图3为本技术所提供的一种计算机设备的结构示意图。
具体实施方式
22.本技术的核心是提供一种数据读取方法,该数据读取方法可以在重组缓存镜像对时,使新增节点可以立即分担前端业务压力,同时避免重组过程中节点间数据不一致的问题;本技术的另一核心是提供一种数据读取装置、缓存镜像系统及计算机可读存储介质,也具有上述有益效果。
23.为了对本技术实施例中的技术方案进行更加清楚、完整地描述,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
24.本技术实施例提供了一种数据读取方法。
25.请参考图1,图1为本技术所提供的一种数据读取方法的流程示意图,该数据读取方法应用于缓存镜像对,缓存镜像对包括互为镜像的第一节点和第二节点,可包括:s101:当第一节点接收到数据读取请求时,确定自身当前状态;
本技术所提供的数据方法,应用于缓存镜像对,该缓存镜像对包括第一节点和第二节点,且第一节点和第二节点互为镜像节点,因此,第一节点和第二节点应当存储有相同的数据信息。然而,当处于镜像对重组状态时,二者之间需要进行缓存同步,因此,在第一节点接收到数据读取请求时,可以先判断自身当前状态,以确定当前处于镜像对重组状态,还是镜像对重组完成状态,从而可以根据自身当前状态对接收到的读取数据请求进行处理。
26.可以理解的是,镜像对重组是在原始缓存镜像对中的任意一个节点发生故障时,加入新的节点与未发生故障的节点组成新的缓存镜像对,为便于介绍,上述第一节点是指新加入的节点,第二节点为原始缓存镜像对中未发生故障的节点。
27.其中,数据读取请求即为前端(即下述请求终端)发送的获取数据信息的请求,可以由用户根据实际需要发起。具体而言,当第一节点接收到数据读取请求时,可以先确定自身所处状态,即确定当前是处于镜像对重组状态还是镜像对重组已完成的状态,然后根据该自身当前状态对数据读取请求进行后续处理。
28.s102:当自身当前状态为镜像重组状态时,判断数据读取请求对应的请求数据是否命中自身缓存;若是,则执行s103;若否,则执行s104;s103:从自身缓存读取请求数据;s104:从第二节点的缓存读取请求数据;当第一节点的自身当前状态为镜像重组状态,也即镜像对重组状态时,可以采用访问两个节点的方式实现请求数据的获取。具体而言,若数据读取请求对应的请求数据(即读取数据)命中自身缓存,即自身缓存中存储有请求数据,则可以直接从自身缓存中读取该请求数据;若请求数据未命中自身缓存,即自身缓存中未存储有请求数据,则可以向第二节点的缓存获取请求数据。
29.可以理解的是,虽然当前只是处于镜像对重组状态,两个节点并未完成数据同步,但是,对于前端而言,第一节点和第二节点已经是缓存镜像对,因此,当前端向第一节点发送数据读取请求时,是默认第一节点中存储有第二节点中的数据信息的,基于此,即便请求数据未命中第一节点的缓存,第一节点仍然可以向第二节点的缓存获取请求数据。由此,即便两个节点处于镜像对重组状态,新增的第一节点依然可以为前端提供服务,且第一节点向第二节点获取请求数据的过程对于前段而言是无感知的。
30.s104:将请求数据反馈至请求终端。
31.本步骤旨在实现请求数据的反馈。如前所述,数据读取请求是指由前端,也即请求终端发起的读取数据信息的请求,因此,在获得相应的请求数据之后,即可将该请求数据反馈给请求终端。更进一步地,可以通过前端可视化界面对其进行展示,便于用户更加直观的查看请求数据。
32.可见,本技术所提供的数据读取方法,对于处于重组缓存镜像对状态的两个节点,当新节点(即第一节点)接收到数据读取请求时,可以通过访问两个节点的方式获取请求数据,即当请求数据命中自身缓存时,从自身缓存读取数据,当未命中自身缓存时,则从第二节点的缓存获取数据,因此,在缓存镜像对重组过程中,新节点无需等待两个节点缓存达成一致之后再为前端提供服务,而是在缓存镜像对重组过程中可以立即为前端提供服务,避免由于等待两个节点缓存达成一致的时间窗口内对于新节点服务能力的牺牲,可以大幅度优化缓存镜像对重组过程中的前端性能和数据安全性。
33.在本技术的一个实施例中,该数据读取方法还可以包括:当自身当前状态为镜像重组完成状态时,从自身缓存读取请求数据,并将请求数据反馈至请求终端。
34.如前所述,当第一节点的自身当前状态为镜像重组状态时,可以采用访问两个节点的方式实现请求数据的获取,那么,当自身当前状态为镜像重组完成状态时,说明第一节点与第二节点之间已经完成数据同步,也就是说,第一节点缓存所存储的数据与第二节点缓存所存储的数据是完全相同的。在此基础上,第一节点对于接收到的数据读取请求,则可以直接从自身缓存中读取获得请求数据,即只需访问自身缓存,无需访问两个节点缓存,更加快速高效。进一步,在读取获得请求数据之后,将其反馈至请求终端即可。
35.在本技术的一个实施例中,该数据读取方法还可以包括:当接收到数据写入请求时,根据数据写入请求确定待写入数据;将待写入数据写入自身缓存;将待写入数据发送至第二节点,以使第二节点将待写入数据写入自身缓存。
36.可以理解的是,系统节点除为前端提供数据读取服务之外,还可以提供数据写入服务。具体而言,请求终端可以将待写入数据附加于数据写入请求,并将数据写入请求发送至第一节点,当第一节点接收到数据写入请求时,则可以先根据数据写入请求确定待写入数据,然后将待写入数据写入自身缓存;与此同时,由于第一节点与第二节点互为镜像节点,二者需要数据同步,因此,第一节点还可以将待写入数据发送给第二节点,由第二节点将待写入数据写入自身缓存,以保证第一节点缓存与第二节点缓存中的存储数据一致。
37.在本技术的一个实施例中,该数据读取方法还可以包括:当自身当前状态为镜像重组状态时,从第二节点的缓存中读取独有缓存数据;将独有缓存数据写入自身缓存。
38.如上所述,在镜像重组过程中,需要进行两节点之间的数据同步,以保证两节点存储数据的一致性,因此,当第一节点的自身当前状态为镜像重组状态时,则可向第一节点的缓存中获取独有缓存数据,该独有缓存数据是指第一节点缓存中未存储、但第二节点缓存中存储的数据信息,进一步,在从第二节点缓存中读取获得其中的独有缓存数据之后,即可将其存储至自身缓存,即第一节点的缓存,由此,实现第一节点与第二节点之间的数据同步,实现将镜像重组状态转换为镜像重组完成状态。
39.在本技术的一个实施例中,该数据读取方法还可以包括:当接收到数据删除请求时,根据数据删除请求确定目标删除数据;将目标删除数据从自身缓存删除;将数据删除请求发送至第二节点,以使第二节点根据数据删除请求将自身缓存中的目标删除数据删除。
40.更进一步地,系统节点除为前端提供数据读取服务、数据写入服务之外,还可以提供数据删除服务,即将缓存中的指定数据删除。具体而言,请求终端可以将目标删除数据的数据信息附加于数据删除请求,并将数据删除请求发送至第一节点,其中,目标删除数据的数据信息具体可以为其在缓存中的存储位置信息、标识符信息等;进一步,当第一节点接收到数据删除请求时,则可以先根据数据删除请求将目标删除数据从自身缓存中删除;与此同时,由于第一节点与第二节点互为镜像节点,二者所存储的数据信息完全一致,因此,第一节点还可以将待删除数据发送给第二节点,由第二节点将自身缓存中的目标删除数据删除,以保证第一节点缓存与第二节点缓存中的存储数据一致。
41.在本技术的一个实施例中,上述从第二节点的缓存读取请求数据,可以包括:通过预设通信链接将数据读取请求发送至第二节点,以使第二节点从自身缓存中读取请求数据;接收第二节点反馈的请求数据。
42.在本技术实施例中,提供了一种第一节点与第二节点之间进行数据同步的实现方法,具体而言,可以在第一节点和第二节点之间建立通信链(即上述预设通信链),该通信链可以遵从相应的数据协议,由此,即可基于该通信链实现两个节点之间的数据同步。在此基础上,当需要从第二节点的缓存读取请求数据时,第一节点则可以通过预设通信链将数据读取请求发送给第二节点,由第二节点从自身缓存中读取获得请求数据,并将其反馈给第一节点。
43.在上述各实施例的基础上,可参考如下举例中的数据读写方法流程:假设:节点1为第二节点,即原始缓存镜像对中未发生故障的节点;节点2为第一节点,即需要与节点1重新组成镜像对的节点。其中,节点1上存储有独有缓存数据a、b、c,节点1和2上存储有相同的数据c和d。
44.在节点1与节点2重组镜像对的过程中,节点2可立即为前端提供读写服务。在此基础上:当节点1接收到数据写入请求时,将会根据数据写入请求将待写入数据写入自身缓存,同时将数据写入请求发送给节点2,使得节点2根据数据写入请求将待写入数据写入自身缓存;当节点2接收到数据写入请求时,将会根据数据写入请求将待写入数据写入自身缓存,同时将数据写入请求发送给节点1,使得节点1根据数据写入请求将待写入数据写入自身缓存;当节点1接收到数据读取请求时,将会根据数据读取请求确定请求数据,并从自身缓存中读取请求数据,并反馈给前端;当节点2接收到数据读取请求时,将会根据数据读取请求确定请求数据是否命中自身缓存,若命中自身缓存,则直接从自身缓存中读取请求数据,并反馈给前端;若未命中自身缓存,则向节点1发送数据读取请求,以使节点1从自身缓存中读取请求数据并反馈给节点2,节点2再将请求数据反馈给前端。
45.在节点1与节点2完成镜像对重组之后,与上述业务流程不同之处在于:当节点2接收到数据读取请求时,直接根据数据读取请求从自身缓存中读取请求数据,并将请求数据反馈给前端。
46.由此可见,本技术实施例所提供的数据读取方法,对于处于重组缓存镜像对状态的两个节点,当新节点(即第一节点)接收到数据读取请求时,可以通过访问两个节点的方式获取请求数据,即当请求数据命中自身缓存时,从自身缓存读取数据,当未命中自身缓存时,则从第二节点的缓存获取数据,因此,在缓存镜像对重组过程中,新节点无需等待两个节点缓存达成一致之后再为前端提供服务,而是在缓存镜像对重组过程中可以立即为前端提供服务,避免由于等待两个节点缓存达成一致的时间窗口内对于新节点服务能力的牺牲,可以大幅度优化缓存镜像对重组过程中的前端性能和数据安全性。
47.本技术还提供了一种数据读取装置,请参考图2,图2为本技术所提供的一种数据读取装置的结构示意图,该数据读取装置应用于缓存镜像对,缓存镜像对包括互为镜像的第一节点和第二节点,可包括:当前状态确定模块1,用于当第一节点接收到数据读取请求时,确定自身当前状态;
缓存命中判断模块2,用于当自身当前状态为镜像重组状态时,判断数据读取请求对应的请求数据是否命中自身缓存;第一数据读取模块3,用于若请求数据命中自身缓存,则从自身缓存读取请求数据;第二数据读取模块4,用于若请求数据未命中自身缓存,则从第二节点的缓存读取请求数据;请求数据反馈模块5,用于将请求数据反馈至请求终端。
48.可见,本技术实施例所提供的数据读取装置,对于处于重组缓存镜像对状态的两个节点,当新节点(即第一节点)接收到数据读取请求时,可以通过访问两个节点的方式获取请求数据,即当请求数据命中自身缓存时,从自身缓存读取数据,当未命中自身缓存时,则从第二节点的缓存获取数据,因此,在缓存镜像对重组过程中,新节点无需等待两个节点缓存达成一致之后再为前端提供服务,而是在缓存镜像对重组过程中可以立即为前端提供服务,避免由于等待两个节点缓存达成一致的时间窗口内对于新节点服务能力的牺牲,可以大幅度优化缓存镜像对重组过程中的前端性能和数据安全性。
49.在本技术的一个实施例中,该数据读取装置还可以包括第三数据读取模块,用于当自身当前状态为镜像重组完成状态时,从自身缓存读取请求数据,并将请求数据反馈至请求终端。
50.在本技术的一个实施例中,该数据读取装置还可以包括数据写入模块,用于当接收到数据写入请求时,根据数据写入请求确定待写入数据;将待写入数据写入自身缓存;将待写入数据发送至第二节点,以使第二节点将待写入数据写入自身缓存。
51.在本技术的一个实施例中,该数据读取装置还可以包括缓存同步模块,用于当自身当前状态为镜像重组状态时,从第二节点的缓存中读取独有缓存数据;将独有缓存数据写入自身缓存。
52.在本技术的一个实施例中,该数据读取装置还可以包括数据删除模块,用于当接收到数据删除请求时,根据数据删除请求确定目标删除数据;将目标删除数据从自身缓存删除;将数据删除请求发送至第二节点,以使第二节点根据数据删除请求将自身缓存中的目标删除数据删除。
53.在本技术的一个实施例中,上述第二数据读取模块4可具体用于通过预设通信链接将数据读取请求发送至第二节点,以使第二节点从自身缓存中读取请求数据;接收第二节点反馈的请求数据。
54.对于本技术提供的装置的介绍请参照上述方法实施例,本技术在此不做赘述。
55.本技术还提供了一种缓存镜像系统,缓存镜像系统包括互为镜像的第一节点和第二节点,请参考图3,图3为本技术所提供的一种计算机设备的结构示意图,该计算机设备可以为第一节点或第二节点,可包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时可实现如上述任意一种数据读取方法的步骤。
56.如图3所示,为计算机设备的组成结构示意图,计算机设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
57.在本技术实施例中,处理器10可以为中央处理器(central processing unit,cpu)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
58.处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行数据读取方法的实施例中的操作。
59.存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本技术实施例中,存储器11中至少存储有用于实现以下功能的程序:当第一节点接收到数据读取请求时,确定自身当前状态;当自身当前状态为镜像重组状态时,判断数据读取请求对应的请求数据是否命中自身缓存;若是,则从自身缓存读取请求数据;若否,则从第二节点的缓存读取请求数据;将请求数据反馈至请求终端。
60.在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
61.此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
62.通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
63.当然,需要说明的是,图3所示的结构并不构成对本技术实施例中计算机设备的限定,在实际应用中计算机设备可以包括比图3所示的更多或更少的部件,或者组合某些部件。
64.本技术还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种数据读取方法的步骤。
65.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
66.对于本技术提供的计算机可读存储介质的介绍请参照上述方法实施例,本技术在此不做赘述。
67.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
68.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应
认为超出本技术的范围。
69.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom或技术领域内所公知的任意其它形式的存储介质中。
70.以上对本技术所提供的技术方案进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献