CN113986148B - 一种数据读取方法、装置及相关设备 - Google Patents
一种数据读取方法、装置及相关设备 Download PDFInfo
- Publication number
- CN113986148B CN113986148B CN202111607755.4A CN202111607755A CN113986148B CN 113986148 B CN113986148 B CN 113986148B CN 202111607755 A CN202111607755 A CN 202111607755A CN 113986148 B CN113986148 B CN 113986148B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- cache
- request
- reading
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000005215 recombination Methods 0.000 claims abstract description 24
- 230000006798 recombination Effects 0.000 claims abstract description 24
- 238000012217 deletion Methods 0.000 claims description 39
- 230000037430 deletion Effects 0.000 claims description 39
- 238000004891 communication Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 17
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 230000008521 reorganization Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种数据读取方法,应用于缓存镜像对,所述缓存镜像对包括互为镜像的第一节点和第二节点,包括当所述第一节点接收到数据读取请求时,确定自身当前状态;当所述自身当前状态为镜像重组状态时,判断所述数据读取请求对应的请求数据是否命中自身缓存;若是,则从所述自身缓存读取所述请求数据;若否,则从所述第二节点的缓存读取所述请求数据;将所述请求数据反馈至请求终端。应用本申请所提供的技术方案,可以在重组缓存镜像对时,使新增节点可以立即分担前端业务压力,同时避免重组过程中节点间数据不一致的问题。本申请还公开了一种数据读取装置、缓存镜像系统及计算机可读存储介质,均具有上述有益效果。
Description
技术领域
本申请涉及数据存储技术领域,特别涉及一种数据读取方法,还涉及一种数据读取装置、缓存镜像系统及计算机可读存储介质。
背景技术
高端存储领域对“容错、高性能、可扩展”有极高的要求,典型的如,对于一个有四个节点的系统:要求在任意节点发生故障的情况下,性能下降不超过20%;当三个节点发生故障时,要求业务不中断。
例如,在一个存储系统内,原本节点1与节点2组建镜像对,维护缓存双副本,当节点1发生故障后,节点2将会与节点3重组镜像对,此时,节点2上存储有节点3没有的缓存数据,因此,需要将节点2上“独有的缓存”落盘或copy到节点3后,节点2和节点3的缓存才可达成一致。
然而,缓存当前重组镜像对方案存在的问题是:需要等待新加入的节点与原节点的缓存达成一致后,新加入的节点才可以接收前端请求,否则前端主机只能在新节点上读取到新节点原来存储的老数据。但是,在等待两个节点达成缓存一致的时间窗口内,实事上牺牲了新加入节点的服务能力,使得所有前端业务压力都在单一节点上,对业务性能、数据安全等造成了不良影响。
因此,如何在重组缓存镜像对时,使新增节点可以立即分担前端业务压力,同时避免重组过程中节点间数据不一致的问题是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种数据读取方法,该数据读取方法可以在重组缓存镜像对时,使新增节点可以立即分担前端业务压力,同时避免重组过程中节点间数据不一致的问题;本申请的另一目的是提供一种数据读取装置、缓存镜像系统及计算机可读存储介质,均具有上述有益效果。
第一方面,本申请提供了一种数据读取方法,应用于缓存镜像对,所述缓存镜像对包括互为镜像的第一节点和第二节点,包括:
当所述第一节点接收到数据读取请求时,确定自身当前状态;
当所述自身当前状态为镜像重组状态时,判断所述数据读取请求对应的请求数据是否命中自身缓存;
若是,则从所述自身缓存读取所述请求数据;
若否,则从所述第二节点的缓存读取所述请求数据;
将所述请求数据反馈至请求终端。
优选的,所述数据读取方法还包括:
当所述自身当前状态为镜像重组完成状态时,从所述自身缓存读取所述请求数据,并将所述请求数据反馈至所述请求终端。
优选的,所述数据读取方法还包括:
当接收到数据写入请求时,根据所述数据写入请求确定待写入数据;
将所述待写入数据写入所述自身缓存;
将所述待写入数据发送至所述第二节点,以使所述第二节点将所述待写入数据写入自身缓存。
优选的,所述数据读取方法还包括:
当所述自身当前状态为所述镜像重组状态时,从所述第二节点的缓存中读取独有缓存数据;
将所述独有缓存数据写入所述自身缓存。
优选的,所述数据读取方法还包括:
当接收到数据删除请求时,根据所述数据删除请求确定目标删除数据;
将所述目标删除数据从所述自身缓存删除;
将所述数据删除请求发送至所述第二节点,以使所述第二节点根据所述数据删除请求将自身缓存中的目标删除数据删除。
优选的,所述从所述第二节点的缓存读取所述请求数据,包括:
通过预设通信链接将所述数据读取请求发送至所述第二节点,以使所述第二节点从自身缓存中读取所述请求数据;
接收所述第二节点反馈的所述请求数据。
第二方面,本申请还公开了一种数据读取装置,应用于缓存镜像对,所述缓存镜像对包括互为镜像的第一节点和第二节点,包括:
当前状态确定模块,用于当所述第一节点接收到数据读取请求时,确定自身当前状态;
缓存命中判断模块,用于当所述自身当前状态为镜像重组状态时,判断所述数据读取请求对应的请求数据是否命中自身缓存;
第一数据读取模块,用于若所述请求数据命中所述自身缓存,则从所述自身缓存读取所述请求数据;
第二数据读取模块,用于若所述请求数据未命中所述自身缓存,则从所述第二节点的缓存读取所述请求数据;
请求数据反馈模块,用于将所述请求数据反馈至请求终端。
优选的,所述第二数据读取模块具体用于通过预设通信链接将所述数据读取请求发送至所述第二节点,以使所述第二节点从自身缓存中读取所述请求数据;接收所述第二节点反馈的所述请求数据。
第三方面,本申请还公开了一种缓存镜像系统,所述缓存镜像系统包括互为镜像的第一节点和第二节点,所述第一节点包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的任一种数据读取方法的步骤。
第四方面,本申请还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任一种数据读取方法的步骤。
本申请所提供的一种数据读取方法,应用于缓存镜像对,所述缓存镜像对包括互为镜像的第一节点和第二节点,包括当所述第一节点接收到数据读取请求时,确定自身当前状态;当所述自身当前状态为镜像重组状态时,判断所述数据读取请求对应的请求数据是否命中自身缓存;若是,则从所述自身缓存读取所述请求数据;若否,则从所述第二节点的缓存读取所述请求数据;将所述请求数据反馈至请求终端。
应用本申请所提供的技术方案,对于处于重组缓存镜像对状态的两个节点,当新节点(即第一节点)接收到数据读取请求时,可以通过访问两个节点的方式获取请求数据,即当请求数据命中自身缓存时,从自身缓存读取数据,当未命中自身缓存时,则从第二节点的缓存获取数据,因此,在缓存镜像对重组过程中,新节点无需等待两个节点缓存达成一致之后再为前端提供服务,而是在缓存镜像对重组过程中可以立即为前端提供服务,避免由于等待两个节点缓存达成一致的时间窗口内对于新节点服务能力的牺牲,可以大幅度优化缓存镜像对重组过程中的前端性能和数据安全性。
本申请所提供的一种数据读取装置、缓存镜像系统及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。
图1为本申请所提供的一种数据读取方法的流程示意图;
图2为本申请所提供的一种数据读取装置的结构示意图;
图3为本申请所提供的一种计算机设备的结构示意图。
具体实施方式
本申请的核心是提供一种数据读取方法,该数据读取方法可以在重组缓存镜像对时,使新增节点可以立即分担前端业务压力,同时避免重组过程中节点间数据不一致的问题;本申请的另一核心是提供一种数据读取装置、缓存镜像系统及计算机可读存储介质,也具有上述有益效果。
为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据读取方法。
请参考图1,图1为本申请所提供的一种数据读取方法的流程示意图,该数据读取方法应用于缓存镜像对,缓存镜像对包括互为镜像的第一节点和第二节点,可包括:
S101:当第一节点接收到数据读取请求时,确定自身当前状态;
本申请所提供的数据方法,应用于缓存镜像对,该缓存镜像对包括第一节点和第二节点,且第一节点和第二节点互为镜像节点,因此,第一节点和第二节点应当存储有相同的数据信息。然而,当处于镜像对重组状态时,二者之间需要进行缓存同步,因此,在第一节点接收到数据读取请求时,可以先判断自身当前状态,以确定当前处于镜像对重组状态,还是镜像对重组完成状态,从而可以根据自身当前状态对接收到的读取数据请求进行处理。
可以理解的是,镜像对重组是在原始缓存镜像对中的任意一个节点发生故障时,加入新的节点与未发生故障的节点组成新的缓存镜像对,为便于介绍,上述第一节点是指新加入的节点,第二节点为原始缓存镜像对中未发生故障的节点。
其中,数据读取请求即为前端(即下述请求终端)发送的获取数据信息的请求,可以由用户根据实际需要发起。具体而言,当第一节点接收到数据读取请求时,可以先确定自身所处状态,即确定当前是处于镜像对重组状态还是镜像对重组已完成的状态,然后根据该自身当前状态对数据读取请求进行后续处理。
S102:当自身当前状态为镜像重组状态时,判断数据读取请求对应的请求数据是否命中自身缓存;若是,则执行S103;若否,则执行S104;
S103:从自身缓存读取请求数据;
S104:从第二节点的缓存读取请求数据;
当第一节点的自身当前状态为镜像重组状态,也即镜像对重组状态时,可以采用访问两个节点的方式实现请求数据的获取。具体而言,若数据读取请求对应的请求数据(即读取数据)命中自身缓存,即自身缓存中存储有请求数据,则可以直接从自身缓存中读取该请求数据;若请求数据未命中自身缓存,即自身缓存中未存储有请求数据,则可以向第二节点的缓存获取请求数据。
可以理解的是,虽然当前只是处于镜像对重组状态,两个节点并未完成数据同步,但是,对于前端而言,第一节点和第二节点已经是缓存镜像对,因此,当前端向第一节点发送数据读取请求时,是默认第一节点中存储有第二节点中的数据信息的,基于此,即便请求数据未命中第一节点的缓存,第一节点仍然可以向第二节点的缓存获取请求数据。由此,即便两个节点处于镜像对重组状态,新增的第一节点依然可以为前端提供服务,且第一节点向第二节点获取请求数据的过程对于前段而言是无感知的。
S104:将请求数据反馈至请求终端。
本步骤旨在实现请求数据的反馈。如前所述,数据读取请求是指由前端,也即请求终端发起的读取数据信息的请求,因此,在获得相应的请求数据之后,即可将该请求数据反馈给请求终端。更进一步地,可以通过前端可视化界面对其进行展示,便于用户更加直观的查看请求数据。
可见,本申请所提供的数据读取方法,对于处于重组缓存镜像对状态的两个节点,当新节点(即第一节点)接收到数据读取请求时,可以通过访问两个节点的方式获取请求数据,即当请求数据命中自身缓存时,从自身缓存读取数据,当未命中自身缓存时,则从第二节点的缓存获取数据,因此,在缓存镜像对重组过程中,新节点无需等待两个节点缓存达成一致之后再为前端提供服务,而是在缓存镜像对重组过程中可以立即为前端提供服务,避免由于等待两个节点缓存达成一致的时间窗口内对于新节点服务能力的牺牲,可以大幅度优化缓存镜像对重组过程中的前端性能和数据安全性。
在本申请的一个实施例中,该数据读取方法还可以包括:当自身当前状态为镜像重组完成状态时,从自身缓存读取请求数据,并将请求数据反馈至请求终端。
如前所述,当第一节点的自身当前状态为镜像重组状态时,可以采用访问两个节点的方式实现请求数据的获取,那么,当自身当前状态为镜像重组完成状态时,说明第一节点与第二节点之间已经完成数据同步,也就是说,第一节点缓存所存储的数据与第二节点缓存所存储的数据是完全相同的。在此基础上,第一节点对于接收到的数据读取请求,则可以直接从自身缓存中读取获得请求数据,即只需访问自身缓存,无需访问两个节点缓存,更加快速高效。进一步,在读取获得请求数据之后,将其反馈至请求终端即可。
在本申请的一个实施例中,该数据读取方法还可以包括:当接收到数据写入请求时,根据数据写入请求确定待写入数据;将待写入数据写入自身缓存;将待写入数据发送至第二节点,以使第二节点将待写入数据写入自身缓存。
可以理解的是,系统节点除为前端提供数据读取服务之外,还可以提供数据写入服务。具体而言,请求终端可以将待写入数据附加于数据写入请求,并将数据写入请求发送至第一节点,当第一节点接收到数据写入请求时,则可以先根据数据写入请求确定待写入数据,然后将待写入数据写入自身缓存;与此同时,由于第一节点与第二节点互为镜像节点,二者需要数据同步,因此,第一节点还可以将待写入数据发送给第二节点,由第二节点将待写入数据写入自身缓存,以保证第一节点缓存与第二节点缓存中的存储数据一致。
在本申请的一个实施例中,该数据读取方法还可以包括:当自身当前状态为镜像重组状态时,从第二节点的缓存中读取独有缓存数据;将独有缓存数据写入自身缓存。
如上所述,在镜像重组过程中,需要进行两节点之间的数据同步,以保证两节点存储数据的一致性,因此,当第一节点的自身当前状态为镜像重组状态时,则可向第一节点的缓存中获取独有缓存数据,该独有缓存数据是指第一节点缓存中未存储、但第二节点缓存中存储的数据信息,进一步,在从第二节点缓存中读取获得其中的独有缓存数据之后,即可将其存储至自身缓存,即第一节点的缓存,由此,实现第一节点与第二节点之间的数据同步,实现将镜像重组状态转换为镜像重组完成状态。
在本申请的一个实施例中,该数据读取方法还可以包括:当接收到数据删除请求时,根据数据删除请求确定目标删除数据;将目标删除数据从自身缓存删除;将数据删除请求发送至第二节点,以使第二节点根据数据删除请求将自身缓存中的目标删除数据删除。
更进一步地,系统节点除为前端提供数据读取服务、数据写入服务之外,还可以提供数据删除服务,即将缓存中的指定数据删除。具体而言,请求终端可以将目标删除数据的数据信息附加于数据删除请求,并将数据删除请求发送至第一节点,其中,目标删除数据的数据信息具体可以为其在缓存中的存储位置信息、标识符信息等;进一步,当第一节点接收到数据删除请求时,则可以先根据数据删除请求将目标删除数据从自身缓存中删除;与此同时,由于第一节点与第二节点互为镜像节点,二者所存储的数据信息完全一致,因此,第一节点还可以将待删除数据发送给第二节点,由第二节点将自身缓存中的目标删除数据删除,以保证第一节点缓存与第二节点缓存中的存储数据一致。
在本申请的一个实施例中,上述从第二节点的缓存读取请求数据,可以包括:通过预设通信链接将数据读取请求发送至第二节点,以使第二节点从自身缓存中读取请求数据;接收第二节点反馈的请求数据。
在本申请实施例中,提供了一种第一节点与第二节点之间进行数据同步的实现方法,具体而言,可以在第一节点和第二节点之间建立通信链(即上述预设通信链),该通信链可以遵从相应的数据协议,由此,即可基于该通信链实现两个节点之间的数据同步。在此基础上,当需要从第二节点的缓存读取请求数据时,第一节点则可以通过预设通信链将数据读取请求发送给第二节点,由第二节点从自身缓存中读取获得请求数据,并将其反馈给第一节点。
在上述各实施例的基础上,可参考如下举例中的数据读写方法流程:
假设:节点1为第二节点,即原始缓存镜像对中未发生故障的节点;节点2为第一节点,即需要与节点1重新组成镜像对的节点。其中,节点1上存储有独有缓存数据A、B、C,节点1和2上存储有相同的数据C和D。
在节点1与节点2重组镜像对的过程中,节点2可立即为前端提供读写服务。在此基础上:
当节点1接收到数据写入请求时,将会根据数据写入请求将待写入数据写入自身缓存,同时将数据写入请求发送给节点2,使得节点2根据数据写入请求将待写入数据写入自身缓存;
当节点2接收到数据写入请求时,将会根据数据写入请求将待写入数据写入自身缓存,同时将数据写入请求发送给节点1,使得节点1根据数据写入请求将待写入数据写入自身缓存;
当节点1接收到数据读取请求时,将会根据数据读取请求确定请求数据,并从自身缓存中读取请求数据,并反馈给前端;
当节点2接收到数据读取请求时,将会根据数据读取请求确定请求数据是否命中自身缓存,若命中自身缓存,则直接从自身缓存中读取请求数据,并反馈给前端;若未命中自身缓存,则向节点1发送数据读取请求,以使节点1从自身缓存中读取请求数据并反馈给节点2,节点2再将请求数据反馈给前端。
在节点1与节点2完成镜像对重组之后,与上述业务流程不同之处在于:
当节点2接收到数据读取请求时,直接根据数据读取请求从自身缓存中读取请求数据,并将请求数据反馈给前端。
由此可见,本申请实施例所提供的数据读取方法,对于处于重组缓存镜像对状态的两个节点,当新节点(即第一节点)接收到数据读取请求时,可以通过访问两个节点的方式获取请求数据,即当请求数据命中自身缓存时,从自身缓存读取数据,当未命中自身缓存时,则从第二节点的缓存获取数据,因此,在缓存镜像对重组过程中,新节点无需等待两个节点缓存达成一致之后再为前端提供服务,而是在缓存镜像对重组过程中可以立即为前端提供服务,避免由于等待两个节点缓存达成一致的时间窗口内对于新节点服务能力的牺牲,可以大幅度优化缓存镜像对重组过程中的前端性能和数据安全性。
本申请还提供了一种数据读取装置,请参考图2,图2为本申请所提供的一种数据读取装置的结构示意图,该数据读取装置应用于缓存镜像对,缓存镜像对包括互为镜像的第一节点和第二节点,可包括:
当前状态确定模块1,用于当第一节点接收到数据读取请求时,确定自身当前状态;
缓存命中判断模块2,用于当自身当前状态为镜像重组状态时,判断数据读取请求对应的请求数据是否命中自身缓存;
第一数据读取模块3,用于若请求数据命中自身缓存,则从自身缓存读取请求数据;
第二数据读取模块4,用于若请求数据未命中自身缓存,则从第二节点的缓存读取请求数据;
请求数据反馈模块5,用于将请求数据反馈至请求终端。
可见,本申请实施例所提供的数据读取装置,对于处于重组缓存镜像对状态的两个节点,当新节点(即第一节点)接收到数据读取请求时,可以通过访问两个节点的方式获取请求数据,即当请求数据命中自身缓存时,从自身缓存读取数据,当未命中自身缓存时,则从第二节点的缓存获取数据,因此,在缓存镜像对重组过程中,新节点无需等待两个节点缓存达成一致之后再为前端提供服务,而是在缓存镜像对重组过程中可以立即为前端提供服务,避免由于等待两个节点缓存达成一致的时间窗口内对于新节点服务能力的牺牲,可以大幅度优化缓存镜像对重组过程中的前端性能和数据安全性。
在本申请的一个实施例中,该数据读取装置还可以包括第三数据读取模块,用于当自身当前状态为镜像重组完成状态时,从自身缓存读取请求数据,并将请求数据反馈至请求终端。
在本申请的一个实施例中,该数据读取装置还可以包括数据写入模块,用于当接收到数据写入请求时,根据数据写入请求确定待写入数据;将待写入数据写入自身缓存;将待写入数据发送至第二节点,以使第二节点将待写入数据写入自身缓存。
在本申请的一个实施例中,该数据读取装置还可以包括缓存同步模块,用于当自身当前状态为镜像重组状态时,从第二节点的缓存中读取独有缓存数据;将独有缓存数据写入自身缓存。
在本申请的一个实施例中,该数据读取装置还可以包括数据删除模块,用于当接收到数据删除请求时,根据数据删除请求确定目标删除数据;将目标删除数据从自身缓存删除;将数据删除请求发送至第二节点,以使第二节点根据数据删除请求将自身缓存中的目标删除数据删除。
在本申请的一个实施例中,上述第二数据读取模块4可具体用于通过预设通信链接将数据读取请求发送至第二节点,以使第二节点从自身缓存中读取请求数据;接收第二节点反馈的请求数据。
对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。
本申请还提供了一种缓存镜像系统,缓存镜像系统包括互为镜像的第一节点和第二节点,请参考图3,图3为本申请所提供的一种计算机设备的结构示意图,该计算机设备可以为第一节点或第二节点,可包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时可实现如上述任意一种数据读取方法的步骤。
如图3所示,为计算机设备的组成结构示意图,计算机设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
在本申请实施例中,处理器10可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行数据读取方法的实施例中的操作。
存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:
当第一节点接收到数据读取请求时,确定自身当前状态;
当自身当前状态为镜像重组状态时,判断数据读取请求对应的请求数据是否命中自身缓存;
若是,则从自身缓存读取请求数据;
若否,则从第二节点的缓存读取请求数据;
将请求数据反馈至请求终端。
在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
当然,需要说明的是,图3所示的结构并不构成对本申请实施例中计算机设备的限定,在实际应用中计算机设备可以包括比图3所示的更多或更少的部件,或者组合某些部件。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种数据读取方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。
Claims (9)
1.一种数据读取方法,其特征在于,应用于缓存镜像对,所述缓存镜像对包括互为镜像的第一节点和第二节点,包括:
当所述第一节点接收到数据读取请求时,确定自身当前状态;
当所述自身当前状态为镜像重组状态时,判断所述数据读取请求对应的请求数据是否命中自身缓存;
若是,则从所述自身缓存读取所述请求数据;
若否,则从所述第二节点的缓存读取所述请求数据;
将所述请求数据反馈至请求终端;
当所述自身当前状态为镜像重组完成状态时,从所述自身缓存读取所述请求数据,并将所述请求数据反馈至所述请求终端。
2.根据权利要求1所述的数据读取方法,其特征在于,还包括:
当接收到数据写入请求时,根据所述数据写入请求确定待写入数据;
将所述待写入数据写入所述自身缓存;
将所述待写入数据发送至所述第二节点,以使所述第二节点将所述待写入数据写入自身缓存。
3.根据权利要求1所述的数据读取方法,其特征在于,还包括:
当所述自身当前状态为所述镜像重组状态时,从所述第二节点的缓存中读取独有缓存数据;
将所述独有缓存数据写入所述自身缓存。
4.根据权利要求1所述的数据读取方法,其特征在于,还包括:
当接收到数据删除请求时,根据所述数据删除请求确定目标删除数据;
将所述目标删除数据从所述自身缓存删除;
将所述数据删除请求发送至所述第二节点,以使所述第二节点根据所述数据删除请求将自身缓存中的目标删除数据删除。
5.根据权利要求1所述的数据读取方法,其特征在于,所述从所述第二节点的缓存读取所述请求数据,包括:
通过预设通信链接将所述数据读取请求发送至所述第二节点,以使所述第二节点从自身缓存中读取所述请求数据;
接收所述第二节点反馈的所述请求数据。
6.一种数据读取装置,其特征在于,应用于缓存镜像对,所述缓存镜像对包括互为镜像的第一节点和第二节点,包括:
当前状态确定模块,用于当所述第一节点接收到数据读取请求时,确定自身当前状态;
缓存命中判断模块,用于当所述自身当前状态为镜像重组状态时,判断所述数据读取请求对应的请求数据是否命中自身缓存;
第一数据读取模块,用于若所述请求数据命中所述自身缓存,则从所述自身缓存读取所述请求数据;
第二数据读取模块,用于若所述请求数据未命中所述自身缓存,则从所述第二节点的缓存读取所述请求数据;
请求数据反馈模块,用于将所述请求数据反馈至请求终端;
第三数据读取模块,用于当所述自身当前状态为镜像重组完成状态时,从所述自身缓存读取所述请求数据,并将所述请求数据反馈至所述请求终端。
7.根据权利要求6所述的数据读取装置,其特征在于,所述第二数据读取模块具体用于通过预设通信链接将所述数据读取请求发送至所述第二节点,以使所述第二节点从自身缓存中读取所述请求数据;接收所述第二节点反馈的所述请求数据。
8.一种缓存镜像系统,其特征在于,所述缓存镜像系统包括互为镜像的第一节点和第二节点,所述第一节点包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的数据读取方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的数据读取方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111607755.4A CN113986148B (zh) | 2021-12-27 | 2021-12-27 | 一种数据读取方法、装置及相关设备 |
US18/692,553 US20240264943A1 (en) | 2021-12-27 | 2022-06-07 | Data reading method and apparatus and related device |
PCT/CN2022/097428 WO2023123872A1 (zh) | 2021-12-27 | 2022-06-07 | 一种数据读取方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111607755.4A CN113986148B (zh) | 2021-12-27 | 2021-12-27 | 一种数据读取方法、装置及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986148A CN113986148A (zh) | 2022-01-28 |
CN113986148B true CN113986148B (zh) | 2022-03-22 |
Family
ID=79734381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111607755.4A Active CN113986148B (zh) | 2021-12-27 | 2021-12-27 | 一种数据读取方法、装置及相关设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240264943A1 (zh) |
CN (1) | CN113986148B (zh) |
WO (1) | WO2023123872A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986148B (zh) * | 2021-12-27 | 2022-03-22 | 苏州浪潮智能科技有限公司 | 一种数据读取方法、装置及相关设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167828A (zh) * | 2018-08-22 | 2019-01-08 | 杭州领智云画科技有限公司 | Cdn缓存方法和系统 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7149787B1 (en) * | 2001-06-07 | 2006-12-12 | Emc Corporation | Apparatus and method for mirroring and restoring data |
US7120824B2 (en) * | 2003-05-09 | 2006-10-10 | International Business Machines Corporation | Method, apparatus and program storage device for maintaining data consistency and cache coherency during communications failures between nodes in a remote mirror pair |
US7028156B1 (en) * | 2003-07-01 | 2006-04-11 | Veritas Operating Corporation | Use of read data tracking and caching to recover from data corruption |
US7831750B2 (en) * | 2007-01-31 | 2010-11-09 | Hewlett-Packard Development Company, L.P. | Method, apparatus and software for processing input or output requests for a mirrored storage volume |
CN102053802B (zh) * | 2010-12-31 | 2012-09-05 | 中国科学院计算技术研究所 | 网络独立冗余磁盘阵列系统 |
US8904231B2 (en) * | 2012-08-08 | 2014-12-02 | Netapp, Inc. | Synchronous local and cross-site failover in clustered storage systems |
CN105573857A (zh) * | 2014-10-10 | 2016-05-11 | 北京计算机技术及应用研究所 | 一种多控磁盘阵列缓存镜像方法及系统 |
US9372631B1 (en) * | 2014-12-24 | 2016-06-21 | Infinidat Ltd. | Managing volume updates received during an execution of a volume migration process |
CN105739924B (zh) * | 2016-01-29 | 2018-05-11 | 华为技术有限公司 | 基于缓存集群的缓存方法和系统 |
CN105872040B (zh) * | 2016-03-30 | 2018-11-30 | 华中科技大学 | 一种利用网关节点缓存优化分布式块存储写性能的方法 |
CN106325768B (zh) * | 2016-08-19 | 2019-08-13 | 华中科技大学 | 一种双机存储系统及方法 |
CN109344011B (zh) * | 2018-10-22 | 2022-03-08 | 郑州云海信息技术有限公司 | 一种数据备份方法及装置 |
CN109407998B (zh) * | 2018-11-09 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种缓存中io流同步的方法、系统及相关组件 |
US11016697B2 (en) * | 2019-07-02 | 2021-05-25 | International Business Machines Corporation | Prefetching data blocks from a primary storage to a secondary storage system while data is being synchronized between the primary storage and secondary storage |
CN112256657B (zh) * | 2019-07-22 | 2023-03-28 | 华为技术有限公司 | 日志镜像方法及系统 |
US11269745B2 (en) * | 2019-10-29 | 2022-03-08 | International Business Machines Corporation | Two-node high availability storage system |
US11392464B2 (en) * | 2019-11-01 | 2022-07-19 | EMC IP Holding Company LLC | Methods and systems for mirroring and failover of nodes |
CN112131046B (zh) * | 2020-09-04 | 2022-11-08 | 苏州浪潮智能科技有限公司 | 一种数据缓存方法、系统、设备以及介质 |
US11693565B2 (en) * | 2021-08-10 | 2023-07-04 | Hewlett Packard Enterprise Development Lp | Storage volume synchronizations responsive to communication link recoveries |
CN113986148B (zh) * | 2021-12-27 | 2022-03-22 | 苏州浪潮智能科技有限公司 | 一种数据读取方法、装置及相关设备 |
-
2021
- 2021-12-27 CN CN202111607755.4A patent/CN113986148B/zh active Active
-
2022
- 2022-06-07 US US18/692,553 patent/US20240264943A1/en active Pending
- 2022-06-07 WO PCT/CN2022/097428 patent/WO2023123872A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167828A (zh) * | 2018-08-22 | 2019-01-08 | 杭州领智云画科技有限公司 | Cdn缓存方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023123872A1 (zh) | 2023-07-06 |
US20240264943A1 (en) | 2024-08-08 |
CN113986148A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112637346B (zh) | 代理方法、装置、代理服务器及存储介质 | |
JP4809040B2 (ja) | ストレージ装置及びスナップショットのリストア方法 | |
US7069393B2 (en) | Storage system providing file aware caching and file aware remote copy | |
US7587627B2 (en) | System and method for disaster recovery of data | |
CN109905457B (zh) | 主从服务器数据同步方法、装置、计算机设备和存储介质 | |
US11307776B2 (en) | Method for accessing distributed storage system, related apparatus, and related system | |
US9361309B2 (en) | File synchronization method, electronic device and synchronization system | |
CN108322533A (zh) | 基于操作日志的分布式集群节点间配置同步方法 | |
CN109783014B (zh) | 一种存储数据的方法及装置 | |
JP2006011848A (ja) | レプリケーションシステム、装置、方法、およびプログラム | |
CN114443364B (zh) | 一种分布式块存储数据处理方法、装置、设备及存储介质 | |
US8275951B2 (en) | Local bitmaps for an array of redundant storage devices | |
CN113986148B (zh) | 一种数据读取方法、装置及相关设备 | |
CN113568566A (zh) | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 | |
CN116560904A (zh) | Nas数据备份容灾方法、系统、终端及存储介质 | |
CN113157487A (zh) | 数据恢复方法及其设备 | |
CN111309799A (zh) | 数据合并的实现方法、装置、系统及存储介质 | |
CN113485874A (zh) | 数据处理方法及分布式存储系统 | |
CN111966531B (zh) | 数据快照方法、装置、计算机设备及存储介质 | |
CN101841425A (zh) | 一种无代理的网络备份方法、装置和系统 | |
CN110879760B (zh) | 一种统一存储系统及方法、电子设备 | |
CN102143614A (zh) | 升级方法和家庭网关设备 | |
CN115858419A (zh) | 元数据管理方法、装置、设备、服务器及可读存储介质 | |
CN114218317B (zh) | 进度信息管控方法、微服务装置、电子设备及存储介质 | |
CN113810463A (zh) | 一种下发cdn服务器配置方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |