一种数据存储方法、装置、电子设备及存储介质与流程



1.本发明涉及数据存储领域,尤其涉及一种数据存储方法、装置、电子设备及存储介质。


背景技术:



2.分布式存储系统为了保障数据的可用性,通常会采用副本模式进行数据冗余存储,即以多个副本形式存储相同数据,以实现数据备份。
3.为了降低读写接口的响应时间,通常会在存储节点上部署缓存,待存储数据通过缓存存储至硬盘中,显然在副本模式下,一份待存储数据需要写入到多个存储节点的缓存中。
4.然而,上述数据存储方式,各个存储节点的缓存中保存了相同的存储数据,但事实上一份存储数据即可满足管理节点的读取调用需求,上述冗余数据的出现占用了缓存中大量的存储空间,极大地造成了缓存资源的浪费。


技术实现要素:



5.本发明提供了一种数据存储方法及装置,以解决冗余数据占用较多缓存资源的问题。
6.根据本发明的一方面,提供了一种数据存储方法,应用于分布式存储系统的存储节点,包括:
7.响应于获取到管理节点发送的对象创建指令,根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;
8.通过所述副本对象保存所述管理节点发送的待存储数据,以使所述副本对象中的各所述副本子对象,与所述待存储数据中的各个待存储子数据一一匹配;
9.根据所述副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。
10.在根据所述副本编号,在各所述副本子对象中确定目标副本子对象之后,还包括:将所述副本对象中的所述待存储数据存储至缓存模块,并通过所述缓存模块将所述待存储数据复制到硬盘模块;在所述缓存模块中,继续存储所述目标副本子对象对应的待存储子数据,并删除非目标副本子对象对应的待存储子数据。在使得存储节点的缓存模块中不包括重复数据,避免分布式存储系统中缓存资源浪费的同时,实现了数据的异步存储,提高了数据存储效率。
11.在通过所述副本对象保存所述管理节点发送的待存储数据,以使所述副本对象中的各所述副本子对象,与所述待存储数据中的各个待存储子数据一一匹配之后,还包括:根据修正系数、所述副本数量、所述副本编号以及各所述副本子对象的副本子编号,为各所述副本子对象设置权重;所述根据所述副本编号,在各所述副本子对象中确定目标副本子对
象,包括:根据各所述副本子对象的权重以及与预设权重阈值,在各所述副本子对象中确定目标副本子对象;其中,若当前副本子对象的权重大于等于预设权重阈值,则当前副本子对象为目标副本子对象;若当前副本子对象的权重小于预设权重阈值,则当前副本子对象为非目标副本子对象;所述预设权重阈值与缓存模块的剩余存储容量相关。存储节点通过为当前副本对象中的副本子对象设置权重,使得在缓存模块中剩余存储空间较大时,在缓存模块中存储了较多数量的待存储子数据,充分利用了缓存模块读写速率较快的特点,实现了数据的快速写入和读取;而在缓存模块中剩余存储空间较小时,仅在缓存模块中存储较少数量的待存储子数据,以实现数据的精准存储,在减少缓存资源浪费的同时,仍然确保了分布式存储系统的缓存模块中当前待存储数据的完整性。
12.所述数据存储方法,还包括:响应于检测到所述缓存模块的剩余存储容量小于等于第一存储阈值,则获取所述缓存模块中各个已存储数据对应的权重;根据各所述已存储数据的权重的排序结果,依次删除权重最低的目标已存储数据,直至所述缓存模块的剩余存储容量大于等于第二存储阈值为止;其中,所述第二存储阈值大于所述第一存储阈值。通过各个已存储数据对应的权重,不但实现了相同数据内部各个子数据之间的重要性比对,还可以实现不同数据之间各个子数据之间的重要性比对,相比于现有技术中,存储节点仅能依靠已有的缓存淘汰算法,基于自身单一存储节点的数据记录进行缓存淘汰,上述技术方案基于分布式存储系统的整体性存储,为各个副本子对象分配了对应的权重,更加准确的反应了每个已存储数据的重要程度,提高了缓存淘汰结果的准确性。
13.根据本发明的另一方面,提供了一种数据存储方法,应用于分布式存储系统的管理节点,包括:
14.响应于获取到待存储数据,向对应的多个存储节点分别发出对象创建指令,以使各所述存储节点根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;其中,不同的存储节点对应不同的副本编号;
15.根据所述副本数量对所述待存储数据进行数据拆分;其中,数据拆分后的待存储数据包括多个待存储子数据;
16.将数据拆分后的待存储数据发送给各所述存储节点,以使各所述存储节点根据获取到的副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。
17.所述数据存储方法,还包括:响应于获取到数据读取指令,获取与所述数据读取指令匹配的多个目标存储节点以及各所述目标存储节点中的目标副本对象;通过各所述目标存储节点中的目标副本对象,分别获取与当前目标副本对象的副本编号匹配的目标副本子对象;通过各所述目标存储节点的目标副本子对象,分别从对应的缓存模块中获取匹配的已存储数据;将各所述已存储数据进行数据拼接,以获取拼接完成的目标存储数据,并基于所述目标存储数据响应所述数据读取指令。管理节点通过从多个存储节点的缓存模块中,获取到完整的存储数据,提高了已存储数据的读取效率,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费。
18.根据本发明的另一方面,提供了一种数据存储装置,应用于分布式存储系统的存储节点,包括:
19.副本对象创建模块,用于响应于获取到管理节点发送的对象创建指令,根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;
20.匹配存储执行模块,用于通过所述副本对象保存所述管理节点发送的待存储数据,以使所述副本对象中的各所述副本子对象,与所述待存储数据中的各个待存储子数据一一匹配;
21.数据存储执行模块,用于根据所述副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。
22.根据本发明的另一方面,提供了一种数据存储装置,应用于分布式存储系统的管理节点,包括:
23.对象创建指令发送模块,用于响应于获取到待存储数据,向对应的多个存储节点分别发出对象创建指令,以使各所述存储节点根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;其中,不同的存储节点对应不同的副本编号;
24.数据拆分执行模块,用于根据所述副本数量对所述待存储数据进行数据拆分;其中,数据拆分后的待存储数据包括多个待存储子数据;
25.数据发送执行模块,用于将数据拆分后的待存储数据发送给各所述存储节点,以使各所述存储节点根据获取到的副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。
26.根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
27.至少一个处理器;以及
28.与所述至少一个处理器通信连接的存储器;其中,
29.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明实施例一所述的数据存储方法,或者执行本发明实施例二所述的数据存储方法。
30.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明实施例一所述的数据存储方法,或者实现本发明实施例二所述的数据存储方法。
31.本发明实施例的技术方案,存储节点在创建副本对象和副本子对象之后,通过各个副本子对象一一存储待存储数据的各个待存储子数据,并将目标副本子对象中的待存储子数据存储至缓存模块,以及非目标副本子对象中的待存储子数据存储至硬盘模块,不但实现了待存储数据的副本存储,即实现了数据备份,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费,另外,管理节点可以通过多个存储节点的缓存模块读取完整的存储数据,提高了存储数据的读取效率。
32.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
33.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1a是根据本发明实施例提供的一种分布式存储系统的结构示意图;
35.图1b是根据本发明实施例一提供的一种数据存储方法的流程图;
36.图2是根据本发明实施例二提供的一种数据存储方法的流程图;
37.图3是根据本发明实施例三提供的分布式存储系统执行数据存储操作的流程图;
38.图4是根据本发明实施例四提供的分布式存储系统执行数据读取操作的流程图;
39.图5是根据本发明实施例五提供的一种数据存储装置的结构示意图;
40.图6是根据本发明实施例六提供的一种数据存储装置的结构示意图;
41.图7是实现本发明实施例的数据存储方法的电子设备的结构示意图。
具体实施方式
42.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
43.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
44.图1a是本发明实施例中的分布式存储系统的结构示意图,如图1a所示,分布式存储系统包括一个管理节点(即机头节点)100和至少一个存储节点200;其中管理节点100本身也可以作为一个存储节点200使用,因此,分布式存储系统的最小结构由两台电子设备组成,一台电子设备用于作为管理节点100,另一台电子设备用于作为存储节点200。
45.外部数据写入上述分布式存储系统时,首先写入到管理节点100,管理节点100为当前写入数据分配多个存储节点200,以用于执行副本存储;再将当前写入数据发送给分配后的各个存储节点200;存储节点200则用于存储上述外部写入数据;而外部设备从上述分布式存储系统读取数据时,数据读取指令同样先写入到管理节点100,管理节点100再从对应的多个存储节点200中取出存储数据,以响应该数据读取指令。
46.存储节点包括缓存模块201和硬盘模块202,缓存模块201连接硬盘模块202;缓存模块201可以包括内存,硬盘模块202可以包括机械硬盘(hard disk drive,hdd);缓存模块201相比于机械硬盘202具有更高的读写效率,而机械硬盘202相比于缓存模块201则具备更
大的存储容量;特别的,由于固态硬盘(solid state disk或solid state drive,ssd)相比于机械硬盘具有更好的读取效率,还可以将固态硬盘作为缓存模块201,即缓存模块201可以包括内存和/或固态硬盘,内存和固态硬盘以串联或者并联方式连接。
47.实施例一
48.图1b为本发明实施例一提供的一种数据存储方法的流程图,本实施例可适用于存储节点通过创建的副本对象以及副本子对象,管理待存储数据,该方法可以由实施例五中的数据存储装置来执行,该数据存储装置可以采用硬件和/或软件的形式实现,该数据存储装置可配置于服务器等电子设备中。
49.如图1b所示,该方法包括:
50.s101、响应于获取到管理节点发送的对象创建指令,根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象。
51.副本数量是分布式存储系统进行数据存储时,需要同时保存的数据份数;在本发明实施例中,管理节点可以设置为固定副本模式,即副本数量固定,管理节点获取到各个待存储数据时,均以相同的副本数量为当前待存储数据分配存储节点;例如,将管理节点设置为三副本模式,即副本数量为三个,管理节点获取每个待存储数据时,均需要通过三个存储节点分别存储该数据,每个存储节点中均保存一份完整数据。
52.管理节点还可以设置为非固定副本模式,即副本数量不固定,管理节点获取到各个待存储数据时,根据不同待存储数据的副本需求不同,以不同的副本数量为当前待存储数据分配存储节点;例如,待存储数据a以两副本模式存储,待存储数据b则以三副本模式存储;特别的,不同待存储数据的副本数量,可以由当前待存储数据的重要程度决定,重要程度与副本数量为正相关关系;其中,待存储数据的重要程度可以根据待存储数据的数据类型和/或数据来源(即数据发出方)确定。
53.管理节点通过哈希算法等分配方式,为当前待存储数据分配上述数量的存储节点,以确保分布式存储系统中所有存储节点之间的存储空间平衡;副本编号,则是存储当前待存储数据的各个副本的编号;管理节点向各个存储节点发送的对象创建指令中包括了副本数量和待创建副本的副本编号;以上述技术方案为例,待处理数据b以三副本模式存储,副本编号分别为1、2、3,而通过上述哈希算法为待处理数据b分配存储节点c、存储节点d和存储节点e进行副本存储,由此将副本数量(即3个)和副本编号1发送给存储节点c,将副本数量(即3个)和副本编号2发送给存储节点d,将副本数量(即3个)和副本编号3发送给存储节点e。
54.存储节点在获取到对象创建指令后,根据副本编号创建副本对象;其中,副本对象,即用于执行副本存储的对象,也是存储节点中用于管理数据的离散单元;在本发明实施例中,分布式存储系统以对象存储的方式将待存储数据的副本进行存储;副本子对象是副本对象中的子单元,每个副本子对象用于存储当前副本对象对应的待存储数据的一部分,即待存储子数据,所有副本子对象存储的待存储子数据组成了完整的待存储数据;在本发明实施例中,副本子对象的数量与副本数量相同,存储节点根据获取到的副本数量,在当前副本对象中创建上述数量的副本子对象。
55.上述技术方案为例,针对待存储数据b,存储节点c获取到副本数量(即3个)和副本编号(即副本编号1)后,创建副本编号为1的副本对象,并在该副本对象中创建3个副本子对
象,即副本子对象1、副本子对象2、副本子对象3。
56.s102、通过所述副本对象保存所述管理节点发送的待存储数据,以使所述副本对象中的各所述副本子对象,与所述待存储数据中的各个待存储子数据一一匹配。
57.管理节点在获取到待存储数据后,将待存储数据进行了数据拆分,以将待存储数据拆分为多个待存储子数据;其中,待存储子数据的数量与副本数量相同;管理节点可以根据待存储数据的数据大小,等比例进行拆分,也可以根据待存储数据中数据之间的关联性,将关联性较强的连续数据划分在同一个待存储数据中,在本发明实施例中,对待存储数据的拆分方式不作具体限定;管理节点将完整的待存储数据发送给每个副本对象。
58.存储节点在获取到管理节点发送的待存储数据后,将待存储子数据与副本子对象,以一一匹配的方式依次进行存储,且对每个副本子对象依次进行编号;例如,存储节点c在获取到待存储数据b之前,已创建了副本对象1,由此通过副本对象1存储待存储数据b时,通过副本子对象1存储待存储数据b1、通过副本子对象2存储待存储数据b2,通过副本子对象3存储待存储数据b3;显然,一个副本对象(即副本对象1)中包括了完整的待存储数据(即待存储数据b),而一个副本对象中的每个副本子对象中均承载了不同的待存储子数据。
59.s103、根据所述副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。
60.存储节点在将待存储数据存储至副本对象后,在各个副本子对象中,可以将副本子对象的编号(即副本子编号)与副本对象的编号(即副本编号)进行比对,将与当前副本编号相同的副本子编号对应的副本子对象,作为目标副本子对象;以上述技术方案为例,针对待存储数据b,存储节点c将副本对象1中的副本子对象1作为目标副本子对象,而副本子对象1中存储了待存储子数据b1;存储节点d将副本对象2中的副本子对象2作为目标副本子对象,而副本子对象2中存储了待存储子数据b2;存储节点e将副本对象3中的副本子对象3作为目标副本子对象,而副本子对象3中存储了待存储子数据b3。
61.存储节点在获取到目标副本子对象中的目标待存储子数据后,将其存储至缓存模块,将除目标副本子对象之外的其它副本子对象(即非目标副本子对象)中的待存储子数据,直接存储至硬盘模块;以上述技术方案为例,针对待存储数据b,存储节点c将副本对象1的副本子对象1中的待存储子数据b1存储至缓存模块,将副本对象1的副本子对象2中的待存储子数据b2,以及副本对象1的副本子对象3中的待存储子数据b3直接存储至硬盘模块;特别的,存储节点还可以通过数据回刷等方式,再将缓存模块中的目标待存储子数据复制后存储于硬盘模块中,以在硬盘模块中存储完整的待存储数据b。
62.同样的,存储节点d将副本对象2的副本子对象2中的待存储子数据b2存储至缓存模块,并且将副本对象2的副本子对象1中的待存储子数据b,以及副本对象2的副本子对象3中的待存储子数据b3存储至硬盘模块;存储节点e将副本对象3的副本子对象3中的待存储子数据b3存储至缓存模块,并且将副本对象3的副本子对象1中的待存储子数据b1,以及副本对象3的副本子对象2中的待存储子数据b2存储至硬盘模块。
63.显然,上述技术方案中,不但实现了待存储数据的副本存储,即通过多个存储节点分别存储了完整的待存储数据,实现了数据备份;同时,每个存储节点的缓存模块中仅保留了待存储数据的一部分,即待存储子数据,且各个存储节点的缓存模块中的待存储子数据
均不相同,同时各个存储节点的缓存模块中的待存储子数据,共同组成了完整的上述待存储数据,使得管理节点可以通过多个存储节点的缓存模块,读取到完整的存储数据,提高了已存储数据的读取效率,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费。
64.可选的,在本发明实施例中,在根据所述副本编号,在各所述副本子对象中确定目标副本子对象之后,还包括:将所述副本对象中的所述待存储数据存储至缓存模块,并通过所述缓存模块将所述待存储数据复制到硬盘模块;在所述缓存模块中,继续存储所述目标副本子对象对应的待存储子数据,并删除非目标副本子对象对应的待存储子数据。
65.具体的,存储节点还可以将保存在副本对象中的待存储数据,先全部存储至缓存模块中,再通过缓存模块利用数据回刷等方式,将上述待存储数据复制并存储到硬盘模块中,而在缓存模块中,仅保留目标副本子对象中的目标待存储子数据,删除非目标副本子对象中的待存储子数据;在使得存储节点的缓存模块中不包括重复数据,避免分布式存储系统中缓存资源浪费的同时,实现了数据的异步存储,提高了数据存储效率。
66.可选的,在本发明实施例中,在通过所述副本对象保存所述管理节点发送的待存储数据,以使所述副本对象中的各所述副本子对象,与所述待存储数据中的各个待存储子数据一一匹配之后,还包括:根据修正系数、所述副本数量、所述副本编号以及各所述副本子对象的副本子编号,为各所述副本子对象设置权重;所述根据所述副本编号,在各所述副本子对象中确定目标副本子对象,包括:根据各所述副本子对象的权重以及与预设权重阈值,在各所述副本子对象中确定目标副本子对象;其中,若当前副本子对象的权重大于等于预设权重阈值,则当前副本子对象为目标副本子对象;若当前副本子对象的权重小于预设权重阈值,则当前副本子对象为非目标副本子对象;所述预设权重阈值与缓存模块的剩余存储容量相关。
67.具体的,存储节点可以根据如下公式设置当前副本对象中各个副本子对象的权重;
[0068][0069]
其中,i是副本子对象的编号,即副本子编号;x是副本对象的编号,即副本编号;mi是第i个副本子对象的权重;δ是修正系数,用于调整同一个副本对象中各个副本子对象之间权重的比例或者差值,可以根据需要设定为任意正数值,例如,可以将δ设定为1;n是当前待存储数据对应的副本数量;显然,当每个待存储数据对应相同的修正系数和副本数量时,每个副本子对象的权重仅与副本编号(即副本对象的编号)和副本子编号(即副本子对象的编号)的差值的绝对值相关。以上述技术方案为例,待存储数据b的修正系数为1,副本数量为3,存储节点e对应副本对象3,在副本对象3中,副本子对象1的权重为17(结果保留整数位);副本子对象2的权重为33;副本子对象3的权重为100。
[0070]
预设权重阈值是预先设定的筛选数值,用于对各个副本子对象的权重进行筛选;当预设权重阈值设定为较小数值时,目标副本子对象的数量可能为多个,即将多个副本子对象中的待存储子数据同时保存于缓存模块中,以充分利用缓存模块读写数据较快的特点;特别的,当δ设定为1,预设权重阈值设定为100时,每个副本对象中仅存在一个目标副本子对象;预设权重阈值可以根据缓存模块当前的剩余存储容量决定,剩余存储容量与预设
权重阈值为负相关关系,即当缓存模块的剩余存储容量较大时,则将预设权重阈值设置较小数值,以在缓存模块中尽可能多的存储较多数量的待存储子数据,即向缓存模块中写入较多数据量;当缓存模块的剩余存储容量较小时,则将预设权重阈值设置较大数值,以在缓存模块中减少待存储子数据的数量,即向缓存模块中写入较少数据量。
[0071]
存储节点通过为当前副本对象中的副本子对象设置权重,使得在缓存模块中剩余存储空间较大时,在缓存模块中存储了较多数量的待存储子数据,充分利用了缓存模块读写速率较快的特点,实现了数据的快速写入和读取;而在缓存模块中剩余存储空间较小时,仅在缓存模块中存储较少数量的待存储子数据,以实现数据的精准存储,在减少缓存资源浪费的同时,仍然确保了分布式存储系统的缓存模块中当前待存储数据的完整性。特别的,副本对象中各个副本子对象的权重,还可以由管理节点计算获取,并将计算获取的各个副本对象中每个副本权重,发送给对应的存储节点。
[0072]
可选的,在本发明实施例中,所述数据存储方法,还包括:响应于检测到所述缓存模块的剩余存储容量小于等于第一存储阈值,则获取所述缓存模块中各个已存储数据对应的权重;根据各所述已存储数据的权重的排序结果,依次删除权重最低的目标已存储数据,直至所述缓存模块的剩余存储容量大于等于第二存储阈值为止;其中,所述第二存储阈值大于所述第一存储阈值。
[0073]
具体的,随着存储节点不断的执行各个数据的存储操作,缓存模块中的剩余存储容量也在不断的减小,由此需要通过对各个已存储数据进行排序、删除,确保缓存模块为后续待存储数据提供足够的数据存储空间;当缓存模块中的剩余存储容量较小,即小于等于第一存储阈值时,存储节点可以直接基于缓存模块中各个已存储数据对应的权重进行筛选,也可以基于已有的缓存淘汰算法,例如,lfu(least frequently used,最近最不常用算法)、lru(least recently user,最近最少使用算法)、arc(adaptive replacement cache),自适应缓存替换算法)、fifo(first in first out,先进先出算法)以及2q(two queues,两队列)等,计算各个已存储数据的不淘汰概率后,再与对应的权重进行乘积,进而根据乘积结果进行排序、删除。
[0074]
通过各个已存储数据对应的权重,不但实现了相同数据内部各个子数据之间的重要性比对,还可以实现不同数据之间各个子数据之间的重要性比对,相比于现有技术中,存储节点仅能依靠已有的缓存淘汰算法,基于自身单一存储节点的数据记录进行缓存淘汰,上述技术方案基于分布式存储系统的整体性存储方式,为各个副本子对象分配了对应的权重,更加准确的反应了每个已存储数据的重要程度,提高了缓存淘汰结果的准确性。
[0075]
本发明实施例的技术方案,存储节点在创建副本对象和副本子对象之后,通过各个副本子对象一一存储待存储数据的各个待存储子数据,并将目标副本子对象中的待存储子数据存储至缓存模块,以及非目标副本子对象中的待存储子数据存储至硬盘模块,不但实现了待存储数据的副本存储,即实现了数据备份,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费,另外,管理节点可以通过多个存储节点的缓存模块读取完整的存储数据,提高了存储数据的读取效率。
[0076]
实施例二
[0077]
图2为本发明实施例二提供的一种数据存储方法的流程图,本实施例可适用于管理节点通过将待存储数据进行拆分,以使各个存储节点基于拆分后的待存储数据,执行数
据存储,该方法可以由实施例六中的数据存储装置来执行,该数据存储装置可以采用硬件和/或软件的形式实现,该数据存储装置可配置于服务器等电子设备中。如图2所示,该方法包括:
[0078]
s201、响应于获取到待存储数据,向对应的多个存储节点分别发出对象创建指令,以使各所述存储节点根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;其中,不同的存储节点对应不同的副本编号。
[0079]
s202、根据所述副本数量对所述待存储数据进行数据拆分;其中,数据拆分后的待存储数据包括多个待存储子数据。
[0080]
管理节点可以通过设置拆分标记的方式,在待存储数据的指定位置设置拆分标记,以通过拆分标记标注待存储数据如何划分为多个待存储子数据。
[0081]
s203、将数据拆分后的待存储数据发送给各所述存储节点,以使各所述存储节点根据获取到的副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。
[0082]
可选的,在本发明实施例中,所述数据存储方法,还包括:响应于获取到数据读取指令,获取与所述数据读取指令匹配的多个目标存储节点以及各所述目标存储节点中的目标副本对象;通过各所述目标存储节点中的目标副本对象,分别获取与当前目标副本对象的副本编号匹配的目标副本子对象;通过各所述目标存储节点的目标副本子对象,分别从对应的缓存模块中获取匹配的已存储数据;将各所述已存储数据进行数据拼接,以获取拼接完成的目标存储数据,并基于所述目标存储数据响应所述数据读取指令。
[0083]
具体的,以上述技术方案为例,管理节点根据数据读取指令,确定该数据读取数据为数据b时,确定数据b存储于存储节点c的副本对象1、存储节点e的副本对象2以及存储节点f的副本对象2中;然后根据上述副本编号,在副本对象1中确定副本子对象1,在副本对象2中确定副本子对象2,在副本对象3中确定副本子对象3;再在存储节点c中通过副本子对象1获取已存储数据b1,在存储节点d中通过副本子对象2获取已存储数据b2,在存储节点e中通过副本子对象3获取已存储数据b3;最终将已存储数据b1、已存储数据b2、已存储数据b3进行数据拼接后,获取到完整的数据b,进而依据数据b响应上述数据读取指令;管理节点通过从多个存储节点的缓存模块中,获取到完整的存储数据,提高了已存储数据的读取效率,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费。
[0084]
本发明实施例的技术方案,管理节点在向存储节点分别发出对象创建指令,以使上述存储节点创建副本对象和副本子对象之后,将待存储数据拆分为多个待存储子数据,以使各个存储节点根据将目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块,不但实现了待存储数据的副本存储,即实现了数据备份,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费,另外,管理节点可以通过多个存储节点的缓存模块读取完整的存储数据,提高了存储数据的读取效率。
[0085]
实施例三
[0086]
图3是本发明实施例的分布式存储系统在执行数据存储操作(即获取到待存储数
据)时的流程图,如图3所示:
[0087]
管理节点响应于获取到待存储数据,根据副本数量分配对应的多个存储节点;管理节点向上述多个存储节点发出对象创建指令,对象创建指令包括副本编号和副本数量;存储节点在获取到管理节点发出的对象创建指令后,根据获取到的副本编号创建副本对象,并根据获取到的副本数量在副本对象中创建副本子对象;存储节点向管理节点反馈对象创建完成。
[0088]
管理节点获取到存储节点的对象创建完成,则根据副本数量对所述待存储数据进行数据拆分,数据拆分后的待存储数据包括多个待存储子数据;管理节点将数据拆分后的待存储数据发送给上述各个存储节点;存储节点通过副本对象保存管理节点发送的待存储数据,以使副本对象中的各个副本子对象,与待存储数据中的各个待存储子数据一一匹配。
[0089]
存储节点根据副本编号,在各个副本子对象中确定目标副本子对象;存储节点将目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。
[0090]
本发明实施例的技术方案,不但实现了待存储数据的副本存储,即实现了数据备份,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费,另外,管理节点可以通过多个存储节点的缓存模块读取完整的存储数据,提高了存储数据的读取效率。
[0091]
实施例四
[0092]
图4是本发明实施例的分布式存储系统在执行数据读取操作(即获取到数据读取指令)时的流程图,如图4所示:
[0093]
管理节点获取到外部设备发送的数据读取指令,根据该数据读取指令确定待读取数据对应的目标存储节点以及各个目标存储节点中的目标副本对象;管理节点根据各个目标副本对象的副本编号,在各个目标副本对象中分别获取目标副本子对象;管理节点向各个目标存储节点的目标副本子对象发送数据读取指令。
[0094]
存储节点获取上述数据读取指令后,通过对应的目标副本子对象确定已存储数据的存储位置;存储节点若确定当前已存储数据位于缓存模块中,则通过缓存模块获取该已存储数据,若确定当前已存储数据不位于缓存模块中,则通过硬盘模块获取该已存储数据。
[0095]
管理节点获取到各个目标存储节点反馈的已存储数据后,将各个已存储数据进行数据拼接,以获取拼接完成的目标存储数据;管理节点基于目标存储数据响应数据读取指令。
[0096]
本发明实施例的技术方案,管理节点通过从多个存储节点的缓存模块中,获取到完整的存储数据,提高了已存储数据的读取效率,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费。
[0097]
实施例五
[0098]
图5是本发明实施例五所提供的一种数据存储装置的结构框图,该装置具体包括:
[0099]
副本对象创建模块501,用于响应于获取到管理节点发送的对象创建指令,根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;
[0100]
匹配存储执行模块502,用于通过所述副本对象保存所述管理节点发送的待存储
数据,以使所述副本对象中的各所述副本子对象,与所述待存储数据中的各个待存储子数据一一匹配;
[0101]
数据存储执行模块503,用于根据所述副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。
[0102]
本发明实施例的技术方案,存储节点在创建副本对象和副本子对象之后,通过各个副本子对象一一存储待存储数据的各个待存储子数据,并将目标副本子对象中的待存储子数据存储至缓存模块,以及非目标副本子对象中的待存储子数据存储至硬盘模块,不但实现了待存储数据的副本存储,即实现了数据备份,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费,另外,管理节点可以通过多个存储节点的缓存模块读取完整的存储数据,提高了存储数据的读取效率。
[0103]
可选的,数据存储执行模块503,还用于将所述副本对象中的所述待存储数据存储至缓存模块,并通过所述缓存模块将所述待存储数据复制到硬盘模块;在所述缓存模块中,继续存储所述目标副本子对象对应的待存储子数据,并删除非目标副本子对象对应的待存储子数据。
[0104]
可选的,数据存储装置,还包括:
[0105]
权重设置模块,用于根据修正系数、所述副本数量、所述副本编号以及各所述副本子对象的副本子编号,为各所述副本子对象设置权重;
[0106]
数据存储执行模块503,具体用于根据各所述副本子对象的权重以及与预设权重阈值,在各所述副本子对象中确定目标副本子对象;其中,若当前副本子对象的权重大于等于预设权重阈值,则当前副本子对象为目标副本子对象;若当前副本子对象的权重小于预设权重阈值,则当前副本子对象为非目标副本子对象;所述预设权重阈值与缓存模块的剩余存储容量相关。
[0107]
可选的,数据存储装置,还包括:
[0108]
权重获取模块,用于响应于检测到所述缓存模块的剩余存储容量小于等于第一存储阈值,则获取所述缓存模块中各个已存储数据对应的权重;
[0109]
排序执行模块,用于根据各所述已存储数据的权重的排序结果,依次删除权重最低的目标已存储数据,直至所述缓存模块的剩余存储容量大于等于第二存储阈值为止;其中,所述第二存储阈值大于所述第一存储阈值。
[0110]
上述装置可执行本发明任意实施例一所提供的数据存储方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例一提供的数据存储方法。
[0111]
实施例六
[0112]
图6是本发明实施例六所提供的一种数据存储装置的结构框图,该装置具体包括:
[0113]
对象创建指令发送模块601,用于响应于获取到待存储数据,向对应的多个存储节点分别发出对象创建指令,以使各所述存储节点根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;其中,不同的存储节点对应不同的副本编号;
[0114]
数据拆分执行模块602,用于根据所述副本数量对所述待存储数据进行数据拆分;
其中,数据拆分后的待存储数据包括多个待存储子数据;
[0115]
数据发送执行模块603,用于将数据拆分后的待存储数据发送给各所述存储节点,以使各所述存储节点根据获取到的副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。
[0116]
本发明实施例的技术方案,管理节点在向存储节点分别发出对象创建指令,以使上述存储节点创建副本对象和副本子对象之后,将待存储数据拆分为多个待存储子数据,以使各个存储节点根据将目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块,不但实现了待存储数据的副本存储,即实现了数据备份,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费,另外,管理节点可以通过多个存储节点的缓存模块读取完整的存储数据,提高了存储数据的读取效率。
[0117]
可选的,数据存储装置,还包括:
[0118]
目标副本对象获取模块,用于响应于获取到数据读取指令,获取与所述数据读取指令匹配的多个目标存储节点以及各所述目标存储节点中的目标副本对象;
[0119]
目标副本子对象获取模块,用于通过各所述目标存储节点中的目标副本对象,分别获取与当前目标副本对象的副本编号匹配的目标副本子对象;
[0120]
已存储数据获取模块,用于通过各所述目标存储节点的目标副本子对象,分别从对应的缓存模块中获取匹配的已存储数据;
[0121]
数据拼接模块,用于将各所述已存储数据进行数据拼接,以获取拼接完成的目标存储数据,并基于所述目标存储数据响应所述数据读取指令。
[0122]
上述装置可执行本发明任意实施例二所提供的数据存储方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例二提供的数据存储方法。
[0123]
实施例七
[0124]
图7示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
[0125]
如图7所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
[0126]
电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通
信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0127]
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据存储方法。
[0128]
在一些实施例中,数据存储方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元。在一些实施例中,计算机程序的部分或者全部可以经由rom和/或通信单元而被载入和/或安装到异构硬件加速器上。当计算机程序加载到ram并由处理器执行时,可以执行上文描述的数据存储方法的一个或多个步骤。备选地,在其他实施例中,处理器可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据存储方法。
[0129]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0130]
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0131]
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0132]
为了提供与用户的交互,可以在异构硬件加速器上实施此处描述的系统和技术,该异构硬件加速器具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给异构硬件加速器。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、
或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0133]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0134]
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0135]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
[0136]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

技术特征:


1.一种数据存储方法,其特征在于,应用于分布式存储系统的存储节点,包括:响应于获取到管理节点发送的对象创建指令,根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;通过所述副本对象保存所述管理节点发送的待存储数据,以使所述副本对象中的各所述副本子对象,与所述待存储数据中的各个待存储子数据一一匹配;根据所述副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。2.根据权利要求1所述的方法,其特征在于,在根据所述副本编号,在各所述副本子对象中确定目标副本子对象之后,还包括:将所述副本对象中的所述待存储数据存储至缓存模块,并通过所述缓存模块将所述待存储数据复制到硬盘模块;在所述缓存模块中,继续存储所述目标副本子对象对应的待存储子数据,并删除非目标副本子对象对应的待存储子数据。3.根据权利要求1或2所述的方法,其特征在于,在通过所述副本对象保存所述管理节点发送的待存储数据,以使所述副本对象中的各所述副本子对象,与所述待存储数据中的各个待存储子数据一一匹配之后,还包括:根据修正系数、所述副本数量、所述副本编号以及各所述副本子对象的副本子编号,为各所述副本子对象设置权重;所述根据所述副本编号,在各所述副本子对象中确定目标副本子对象,包括:根据各所述副本子对象的权重以及与预设权重阈值,在各所述副本子对象中确定目标副本子对象;其中,若当前副本子对象的权重大于等于预设权重阈值,则当前副本子对象为目标副本子对象;若当前副本子对象的权重小于预设权重阈值,则当前副本子对象为非目标副本子对象;所述预设权重阈值与缓存模块的剩余存储容量相关。4.根据权利要求3所述的方法,其特征在于,所述数据存储方法,还包括:响应于检测到所述缓存模块的剩余存储容量小于等于第一存储阈值,则获取所述缓存模块中各个已存储数据对应的权重;根据各所述已存储数据的权重的排序结果,依次删除权重最低的目标已存储数据,直至所述缓存模块的剩余存储容量大于等于第二存储阈值为止;其中,所述第二存储阈值大于所述第一存储阈值。5.一种数据存储方法,其特征在于,应用于分布式存储系统的管理节点,包括:响应于获取到待存储数据,向对应的多个存储节点分别发出对象创建指令,以使各所述存储节点根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;其中,不同的存储节点对应不同的副本编号;根据所述副本数量对所述待存储数据进行数据拆分;其中,数据拆分后的待存储数据包括多个待存储子数据;将数据拆分后的待存储数据发送给各所述存储节点,以使各所述存储节点根据获取到的副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的
待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。6.根据权利要求5所述的方法,其特征在于,所述数据存储方法,还包括:响应于获取到数据读取指令,获取与所述数据读取指令匹配的多个目标存储节点以及各所述目标存储节点中的目标副本对象;通过各所述目标存储节点中的目标副本对象,分别获取与当前目标副本对象的副本编号匹配的目标副本子对象;通过各所述目标存储节点的目标副本子对象,分别从对应的缓存模块中获取匹配的已存储数据;将各所述已存储数据进行数据拼接,以获取拼接完成的目标存储数据,并基于所述目标存储数据响应所述数据读取指令。7.一种数据存储装置,其特征在于,应用于分布式存储系统的存储节点,包括:副本对象创建模块,用于响应于获取到管理节点发送的对象创建指令,根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;匹配存储执行模块,用于通过所述副本对象保存所述管理节点发送的待存储数据,以使所述副本对象中的各所述副本子对象,与所述待存储数据中的各个待存储子数据一一匹配;数据存储执行模块,用于根据所述副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。8.一种数据存储装置,其特征在于,应用于分布式存储系统的管理节点,包括:对象创建指令发送模块,用于响应于获取到待存储数据,向对应的多个存储节点分别发出对象创建指令,以使各所述存储节点根据获取到的副本编号创建副本对象,并根据获取到的副本数量在所述副本对象中创建副本子对象;其中,不同的存储节点对应不同的副本编号;数据拆分执行模块,用于根据所述副本数量对所述待存储数据进行数据拆分;其中,数据拆分后的待存储数据包括多个待存储子数据;数据发送执行模块,用于将数据拆分后的待存储数据发送给各所述存储节点,以使各所述存储节点根据获取到的副本编号,在各所述副本子对象中确定目标副本子对象,并将所述目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的数据存储方法,或者执行权利要求5或6所述的数据存储方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-4中任一项所述的数据存储方法,
或者实现权利要求5或6所述的数据存储方法。

技术总结


本发明公开了一种数据存储方法,应用于分布式存储系统的存储节点,包括:响应于获取到管理节点发送的对象创建指令,创建副本对象和副本子对象;通过副本对象保存管理节点发送的待存储数据;根据副本编号,在各副本子对象中确定目标副本子对象,并将目标副本子对象中的待存储子数据存储至缓存模块,以及将非目标副本子对象中的待存储子数据存储至硬盘模块。本发明实施例的技术方案,不但实现了待存储数据的副本存储,即实现了数据备份,同时,各个存储节点的缓存模块中不包括重复数据,避免了分布式存储系统中缓存资源的浪费,另外,管理节点可以通过多个存储节点的缓存模块读取完整的存储数据,提高了存储数据的读取效率。提高了存储数据的读取效率。提高了存储数据的读取效率。


技术研发人员:

张廷全 纪志祥 吴瑞强 惠润海 卜庆忠

受保护的技术使用者:

天津中科曙光存储科技有限公司

技术研发日:

2022.09.16

技术公布日:

2022/12/9

本文发布于:2024-09-20 17:27:39,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/34889.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:副本   数据   所述   本子
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议