一种数据存储方法、装置、设备及计算机可读存储介质与流程

文档序号:33103303发布日期:2023-02-01 01:03阅读:63来源:国知局
一种数据存储方法、装置、设备及计算机可读存储介质与流程

1.本发明涉及分布式存储领域,特别是涉及一种数据存储方法,本发明还涉及一种数据存储装置、设备及计算机可读存储介质。


背景技术:

2.分布式存储系统是目前常用的存储系统,其能够将数据分散地存储在多台独立的设备上,分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
3.通过客户端可以将待存储数据存储至分布式存储系统,然而现有技术中缺少一种成熟的数据存储方法,导致通过客户端向分布式存储系统存储数据时,效率较低,影响了用户体验。
4.因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。


技术实现要素:

5.本发明的目的是提供一种数据存储方法,将纠删计算工作转移到分布式存储系统的客户端进行,随后可以将每份待存储数据一一对应地传输至分布式存储系统的多个存储节点即可,省去了由主存储节点进行转发的流程,从而降低了数据传输量,提升了存储效率以及用户体验;本发明的另一目的是提供一种数据存储装置、设备及计算机可读存储介质,将纠删计算工作转移到分布式存储系统的客户端进行,随后可以将每份待存储数据一一对应地传输至分布式存储系统的多个存储节点即可,省去了由主存储节点进行转发的流程,从而降低了数据传输量,提升了存储效率以及用户体验。
6.为解决上述技术问题,本发明提供了一种数据存储方法,应用于分布式存储系统的客户端,包括:
7.对待存储数据进行纠删计算;
8.将经过纠删计算的所述待存储数据分割为预设份数;
9.将经过分割的各份所述待存储数据一一对应地传输至所述分布式存储系统的多个存储节点。
10.优选地,所述对待存储数据进行纠删计算具体为:
11.申请远程直接数据存取rdma内存;
12.将待存储数据拷贝至申请的所述rdma内存;
13.对位于所述rdma内存的所述待存储数据进行纠删计算;
14.所述将经过分割的各份所述待存储数据一一对应地传输至所述分布式存储系统的多个存储节点具体为:
15.将各份所述待存储数据在所述rdma内存中的存储地址均发送至所述分布式存储系统,以便所述分布式存储系统控制自身的多个存储节点一一对应地读取各份所述待存储
数据。
16.优选地,所述将待存储数据拷贝至申请的所述rdma内存具体为:
17.利用多个拷贝线程将所述待存储数据拷贝至申请的所述rdma内存。
18.优选地,所述对位于所述rdma内存的所述待存储数据进行纠删计算具体为:
19.利用区别于所述拷贝线程的多个计算线程对位于所述rdma内存的所述待存储数据进行纠删计算。
20.优选地,所述利用区别于所述拷贝线程的多个计算线程对位于所述rdma内存的所述待存储数据进行纠删计算具体为:
21.在利用多个拷贝线程将所述待存储数据拷贝至申请的所述rdma内存时,判断所述rdma内存中是否接收到所述待存储数据中新的单位数据;
22.若接收到,则利用区别于所述拷贝线程的多个计算线程中空闲的计算线程对所述rdma内存中最新接收到的所述单位数据进行纠删计算;
23.判断所述待存储数据中所有的单位数据是否均已完成纠删计算;
24.若均已完成,则判定所述待存储数据的纠删计算已完成。
25.优选地,该数据存储方法还包括:
26.在自身被卸载时,释放所有的所述拷贝线程以及计算线程。
27.优选地,所述计算线程的数量大于所述拷贝线程的数量。
28.为解决上述技术问题,本发明还提供了一种数据存储装置,应用于分布式存储系统的客户端,包括:
29.计算模块,用于对待存储数据进行纠删计算;
30.分割模块,用于将经过纠删计算的所述待存储数据分割为预设份数;
31.传输模块,用于将经过分割的各份所述待存储数据一一对应地传输至分布式存储系统的多个节点。
32.为解决上述技术问题,本发明还提供了一种数据存储设备,包括:
33.存储器,用于存储计算机程序;
34.处理器,用于执行所述计算机程序时实现如上所述数据存储方法的步骤。
35.为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述数据存储方法的步骤。
36.本发明提供了一种数据存储方法,考虑到若在存储节点上进行纠删计算,首先需要将所有待存储数据均发送至主存储节点,主存储节点完成纠删计算后还需要向其他各个存储节点分发经过纠删计算的待存储数据,数据传输量较大,本技术将纠删计算工作转移到分布式存储系统的客户端进行,随后可以将每份待存储数据一一对应地传输至分布式存储系统的多个存储节点即可,省去了由主存储节点进行转发的流程,从而降低了数据传输量,提升了存储效率以及用户体验。
37.本发明还提供了一种数据存储装置、设备及计算机可读存储介质,具有如上数据存储方法相同的有益效果。
附图说明
38.为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本发明提供的一种数据存储方法的流程示意图;
40.图2为本发明提供的一种数据存储装置的结构示意图;
41.图3为本发明提供的一种数据存储设备的结构示意图。
具体实施方式
42.本发明的核心是提供一种数据存储方法,将纠删计算工作转移到分布式存储系统的客户端进行,随后可以将每份待存储数据一一对应地传输至分布式存储系统的多个存储节点即可,省去了由主存储节点进行转发的流程,从而降低了数据传输量,提升了存储效率以及用户体验;本发明的另一核心是提供一种数据存储装置、设备及计算机可读存储介质,将纠删计算工作转移到分布式存储系统的客户端进行,随后可以将每份待存储数据一一对应地传输至分布式存储系统的多个存储节点即可,省去了由主存储节点进行转发的流程,从而降低了数据传输量,提升了存储效率以及用户体验。
43.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.请参考图1,图1为本发明提供的一种数据存储方法的流程示意图,该数据存储方法应用于分布式存储系统的客户端,包括:
45.s101:对待存储数据进行纠删计算;
46.具体的,考虑到如上背景技术中的技术问题,又结合考虑到若在存储节点上进行纠删计算,首先需要将所有待存储数据均发送至主存储节点,主存储节点完成纠删计算后还需要向其他各个存储节点分发经过纠删计算的待存储数据,数据传输量较大,因此本技术欲将纠删计算工作转移到分布式存储系统的客户端进行,以起到降低数据转发量的效果,因此本发明实施例中的数据存储方法应用于分布式存储系统的客户端,本步骤中首先对待存储数据进行纠删计算,也即在客户端中即完成了纠删计算。
47.其中,纠删计算为将数据存储至分布式存储系统之前所必要进行的计算过程,对于纠删计算的具体过程本发明实施例在此不再赘述。
48.s102:将经过纠删计算的待存储数据分割为预设份数;
49.具体的,分布式存储系统的本身特点为将待存储数据分别存放在多个存储节点上,且本发明实施例中欲直接从客户端上将各份待存储数据直接传输至对应的存储节点上,因此本步骤中可以将经过纠删计算的待存储数据分割为预设份数。
50.其中,预设份数可以进行自主设定,其数量可以为分布式存储系统的存储节点的数量,本发明实施例在此不做限定。
51.s103:将经过分割的各份待存储数据一一对应地传输至分布式存储系统的多个存
储节点。
52.具体的,在分割过后,便可以将将经过分割的各份待存储数据一一对应地传输至分布式存储系统的多个存储节点,例如将第一份待存储数据直接传输至第一个存储节点,将第二份待存储数据直接传输至第二个存储节点...以此类推。
53.其中,正是由于本发明实施例中将纠删计算以及分割的动作均放在了客户端进行,因此本发明实施例中可以直接将各份待存储数据发送至各个存储节点,省去了不少的数据转发量,从而提高了数据存储效率,提高了用户体验。
54.其中,本发明实施例中的客户端可以为多种类型,例如可以为内核态客户端等,本发明实施例在此不做限定。
55.本发明提供了一种数据存储方法,考虑到若在存储节点上进行纠删计算,首先需要将所有待存储数据均发送至主存储节点,主存储节点完成纠删计算后还需要向其他各个存储节点分发经过纠删计算的待存储数据,数据传输量较大,本技术将纠删计算工作转移到分布式存储系统的客户端进行,随后可以将每份待存储数据一一对应地传输至分布式存储系统的多个存储节点即可,省去了由主存储节点进行转发的流程,从而降低了数据传输量,提升了存储效率以及用户体验。
56.在上述实施例的基础上:
57.作为一种优选的实施例,对待存储数据进行纠删计算具体为:
58.申请rdma(remote direct memory access,远程直接数据存取)内存;
59.将待存储数据拷贝至申请的rdma内存;
60.对位于rdma内存的待存储数据进行纠删计算;
61.将经过分割的各份待存储数据一一对应地传输至分布式存储系统的多个存储节点具体为:
62.将各份待存储数据在rdma内存中的存储地址均发送至分布式存储系统,以便分布式存储系统控制自身的多个存储节点一一对应地读取各份待存储数据。
63.具体的,考虑到若由客户端主动将各份待存储数据发送至分布式存储系统的多个存储节点,那么需要客户端提供资源持续发送数据并关注数据的发送结果,加大了对于客户端计算资源的占用,因此本发明实施例中可以首先申请远程直接数据存取rdma内存,将待存储数据拷贝至申请的rdma内存,然后对位于rdma内存的待存储数据进行纠删计算,到这一步,便可以将各份待存储数据在rdma内存中的存储地址均发送至分布式存储系统即可,分布式存储系统则可以根据接收到的存储地址,通知自身的多个存储节点去与自身对应的一份待存储数据的存储地址中获取数据,不再需要客户端提供计算资源用以持续发送数据并关注数据的发送结果,降低了对客户端计算资源的占用。
64.作为一种优选的实施例,将待存储数据拷贝至申请的rdma内存具体为:
65.利用多个拷贝线程将待存储数据拷贝至申请的rdma内存。
66.具体的,为了进一步提升数据存储效率,本发明实施例中可以利用多个拷贝线程同时将待存储数据拷贝至申请的rdma内存。
67.其中,拷贝线程的具体数量可以进行自主设定,本发明实施例在此不做限定。
68.作为一种优选的实施例,对位于rdma内存的待存储数据进行纠删计算具体为:
69.利用区别于拷贝线程的多个计算线程对位于rdma内存的待存储数据进行纠删计
算。
70.具体的,为了进一步提升数据存储效率,本发明实施例中可以利用多个计算线程同时对位于rdma内存的待存储数据进行纠删计算。
71.其中,计算线程的具体数量可以进行自主设定,本发明实施例在此不做限定。
72.作为一种优选的实施例,利用区别于拷贝线程的多个计算线程对位于rdma内存的待存储数据进行纠删计算具体为:
73.在利用多个拷贝线程将待存储数据拷贝至申请的rdma内存时,判断rdma内存中是否接收到待存储数据中新的单位数据;
74.若接收到,则利用区别于拷贝线程的多个计算线程中空闲的计算线程对rdma内存中最新接收到的单位数据进行纠删计算;
75.判断待存储数据中所有的单位数据是否均已完成纠删计算;
76.若均已完成,则判定待存储数据的纠删计算已完成。
77.具体的,为了进一步提升数据存储效率,本发明实施例中的拷贝线程以及计算线程可以同步进行工作,也即无需等到拷贝线程将所有的待存储数据均拷贝完毕后才控制计算线程进行工作,每当rdma内存中接收到待存储数据中的一个新的单位数据后,空闲的计算线程立马可以投入工作。
78.作为一种优选的实施例,该数据存储方法还包括:
79.在自身被卸载时,释放所有的拷贝线程以及计算线程。
80.具体的,考虑到若在卸载客户端时,占用的拷贝线程以及计算线程依然存在,那么即浪费了计算资源,为了确保卸载客户端后计算资源的再利用,本发明实施例中的客户端可以在自身被卸载时,释放所有的拷贝线程以及计算线程。
81.作为一种优选的实施例,计算线程的数量大于拷贝线程的数量。
82.具体的,考虑到拷贝工作的执行速度通常要快于纠删计算的执行速度,因此为了减少对于线程的浪费,本发明实施例中的计算线程的数量可以大于拷贝线程的数量,从而尽量减少对于线程的占用,同时保证了数据存储工作的高效展开。
83.当然,除了该种数量关系外,计算线程以及拷贝线程的数量关系还可以为其他多种类型,本发明实施例在此不做限定。
84.请参考图2,图2为本发明提供的一种数据存储装置的结构示意图,该数据存储装置应用于分布式存储系统的客户端,包括:
85.计算模块21,用于对待存储数据进行纠删计算;
86.分割模块22,用于将经过纠删计算的待存储数据分割为预设份数;
87.传输模块23,用于将经过分割的各份待存储数据一一对应地传输至分布式存储系统的多个节点。
88.具体的,考虑到如上背景技术中的技术问题,又结合考虑到若在存储节点上进行纠删计算,首先需要将所有待存储数据均发送至主存储节点,主存储节点完成纠删计算后还需要向其他各个存储节点分发经过纠删计算的待存储数据,数据传输量较大,因此本技术欲将纠删计算工作转移到分布式存储系统的客户端进行,以起到降低数据转发量的效果,因此本发明实施例中的数据存储方法应用于分布式存储系统的客户端,本步骤中首先对待存储数据进行纠删计算,也即在客户端中即完成了纠删计算。
89.其中,纠删计算为将数据存储至分布式存储系统之前所必要进行的计算过程,对于纠删计算的具体过程本发明实施例在此不再赘述。
90.具体的,分布式存储系统的本身特点为将待存储数据分别存放在多个存储节点上,且本发明实施例中欲直接从客户端上将各份待存储数据直接传输至对应的存储节点上,因此本步骤中可以将经过纠删计算的待存储数据分割为预设份数。
91.其中,预设份数可以进行自主设定,其数量可以为分布式存储系统的存储节点的数量,本发明实施例在此不做限定。
92.具体的,在分割过后,便可以将将经过分割的各份待存储数据一一对应地传输至分布式存储系统的多个存储节点,例如将第一份待存储数据直接传输至第一个存储节点,将第二份待存储数据直接传输至第二个存储节点...以此类推。
93.其中,正是由于本发明实施例中将纠删计算以及分割的动作均放在了客户端进行,因此本发明实施例中可以直接将各份待存储数据发送至各个存储节点,省去了不少的数据转发量,从而提高了数据存储效率,提高了用户体验。
94.其中,本发明实施例中的客户端可以为多种类型,例如可以为内核态客户端等,本发明实施例在此不做限定。
95.本发明提供了一种数据存储方法,考虑到若在存储节点上进行纠删计算,首先需要将所有待存储数据均发送至主存储节点,主存储节点完成纠删计算后还需要向其他各个存储节点分发经过纠删计算的待存储数据,数据传输量较大,本技术将纠删计算工作转移到分布式存储系统的客户端进行,随后可以将每份待存储数据一一对应地传输至分布式存储系统的多个存储节点即可,省去了由主存储节点进行转发的流程,从而降低了数据传输量,提升了存储效率以及用户体验。
96.作为一种优选的实施例,计算模块21包括:
97.申请模块,用于申请远程直接数据存取rdma内存;
98.拷贝模块,用于将待存储数据拷贝至申请的rdma内存;
99.计算子模块,用于对位于rdma内存的待存储数据进行纠删计算;
100.传输模块具体用于:
101.将各份待存储数据在rdma内存中的存储地址均发送至分布式存储系统,以便分布式存储系统控制自身的多个存储节点一一对应地读取各份待存储数据。
102.具体的,考虑到若由客户端主动将各份待存储数据发送至分布式存储系统的多个存储节点,那么需要客户端提供资源持续发送数据并关注数据的发送结果,加大了对于客户端计算资源的占用,因此本发明实施例中可以首先申请远程直接数据存取rdma内存,将待存储数据拷贝至申请的rdma内存,然后对位于rdma内存的待存储数据进行纠删计算,到这一步,便可以将各份待存储数据在rdma内存中的存储地址均发送至分布式存储系统即可,分布式存储系统则可以根据接收到的存储地址,通知自身的多个存储节点去与自身对应的一份待存储数据的存储地址中获取数据,不再需要客户端提供计算资源用以持续发送数据并关注数据的发送结果,降低了对客户端计算资源的占用。
103.作为一种优选的实施例,拷贝模块具体用于:
104.利用多个拷贝线程将待存储数据拷贝至申请的rdma内存。
105.具体的,为了进一步提升数据存储效率,本发明实施例中可以利用多个拷贝线程
同时将待存储数据拷贝至申请的rdma内存。
106.其中,拷贝线程的具体数量可以进行自主设定,本发明实施例在此不做限定。
107.作为一种优选的实施例,计算子模块具体用于:
108.利用区别于拷贝线程的多个计算线程对位于rdma内存的待存储数据进行纠删计算。
109.具体的,为了进一步提升数据存储效率,本发明实施例中可以利用多个计算线程同时对位于rdma内存的待存储数据进行纠删计算。
110.其中,计算线程的具体数量可以进行自主设定,本发明实施例在此不做限定。
111.作为一种优选的实施例,计算子模块包括:
112.第一判断模块,用于在利用多个拷贝线程将待存储数据拷贝至申请的rdma内存时,判断rdma内存中是否接收到待存储数据中新的单位数据,若接收到,则触发第一执行模块;
113.第一执行模块,用于利用区别于拷贝线程的多个计算线程中空闲的计算线程对rdma内存中最新接收到的单位数据进行纠删计算;
114.第二判断模块,用于判断待存储数据中所有的单位数据是否均已完成纠删计算,若均已完成,则触发判定模块;
115.具体的,为了进一步提升数据存储效率,本发明实施例中的拷贝线程以及计算线程可以同步进行工作,也即无需等到拷贝线程将所有的待存储数据均拷贝完毕后才控制计算线程进行工作,每当rdma内存中接收到待存储数据中的一个新的单位数据后,空闲的计算线程立马可以投入工作。
116.判定模块,用于判定待存储数据的纠删计算已完成。
117.作为一种优选的实施例,该数据存储制造还包括:
118.释放模块,用于在自身被卸载时,释放所有的拷贝线程以及计算线程。
119.具体的,考虑到若在卸载客户端时,占用的拷贝线程以及计算线程依然存在,那么即浪费了计算资源,为了确保卸载客户端后计算资源的再利用,本发明实施例中的客户端可以在自身被卸载时,释放所有的拷贝线程以及计算线程。
120.作为一种优选的实施例,计算线程的数量大于拷贝线程的数量。
121.具体的,考虑到拷贝工作的执行速度通常要快于纠删计算的执行速度,因此为了减少对于线程的浪费,本发明实施例中的计算线程的数量可以大于拷贝线程的数量,从而尽量减少对于线程的占用,同时保证了数据存储工作的高效展开。
122.当然,除了该种数量关系外,计算线程以及拷贝线程的数量关系还可以为其他多种类型,本发明实施例在此不做限定。
123.请参考图3,图3为本发明提供的一种数据存储设备的结构示意图,该数据存储设备,包括:
124.存储器31,用于存储计算机程序;
125.处理器32,用于执行计算机程序时实现如前述实施例中数据存储方法的步骤。
126.具体的,存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器执行存储器中保存的计算机程序时,可以实现以下步骤:对待存
储数据进行纠删计算;将经过纠删计算的待存储数据分割为预设份数;将经过分割的各份待存储数据一一对应地传输至分布式存储系统的多个存储节点。
127.具体的,考虑到如上背景技术中的技术问题,又结合考虑到若在存储节点上进行纠删计算,首先需要将所有待存储数据均发送至主存储节点,主存储节点完成纠删计算后还需要向其他各个存储节点分发经过纠删计算的待存储数据,数据传输量较大,因此本技术欲将纠删计算工作转移到分布式存储系统的客户端进行,以起到降低数据转发量的效果,因此本发明实施例中的数据存储方法应用于分布式存储系统的客户端,本步骤中首先对待存储数据进行纠删计算,也即在客户端中即完成了纠删计算。
128.其中,纠删计算为将数据存储至分布式存储系统之前所必要进行的计算过程,对于纠删计算的具体过程本发明实施例在此不再赘述。
129.具体的,分布式存储系统的本身特点为将待存储数据分别存放在多个存储节点上,且本发明实施例中欲直接从客户端上将各份待存储数据直接传输至对应的存储节点上,因此本步骤中可以将经过纠删计算的待存储数据分割为预设份数。
130.其中,预设份数可以进行自主设定,其数量可以为分布式存储系统的存储节点的数量,本发明实施例在此不做限定。
131.具体的,在分割过后,便可以将将经过分割的各份待存储数据一一对应地传输至分布式存储系统的多个存储节点,例如将第一份待存储数据直接传输至第一个存储节点,将第二份待存储数据直接传输至第二个存储节点...以此类推。
132.其中,正是由于本发明实施例中将纠删计算以及分割的动作均放在了客户端进行,因此本发明实施例中可以直接将各份待存储数据发送至各个存储节点,省去了不少的数据转发量,从而提高了数据存储效率,提高了用户体验。
133.其中,本发明实施例中的客户端可以为多种类型,例如可以为内核态客户端等,本发明实施例在此不做限定。
134.本发明提供了一种数据存储方法,考虑到若在存储节点上进行纠删计算,首先需要将所有待存储数据均发送至主存储节点,主存储节点完成纠删计算后还需要向其他各个存储节点分发经过纠删计算的待存储数据,数据传输量较大,本技术将纠删计算工作转移到分布式存储系统的客户端进行,随后可以将每份待存储数据一一对应地传输至分布式存储系统的多个存储节点即可,省去了由主存储节点进行转发的流程,从而降低了数据传输量,提升了存储效率以及用户体验。
135.作为一种优选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
136.申请远程直接数据存取rdma内存;
137.将待存储数据拷贝至申请的rdma内存;
138.对位于rdma内存的待存储数据进行纠删计算;
139.将经过分割的各份待存储数据一一对应地传输至分布式存储系统的多个存储节点具体为:
140.将各份待存储数据在rdma内存中的存储地址均发送至分布式存储系统,以便分布式存储系统控制自身的多个存储节点一一对应地读取各份待存储数据。
141.作为一种优选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现
以下步骤:
142.利用多个拷贝线程将待存储数据拷贝至申请的rdma内存。
143.作为一种优选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
144.利用区别于拷贝线程的多个计算线程对位于rdma内存的待存储数据进行纠删计算。
145.作为一种优选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
146.在利用多个拷贝线程将待存储数据拷贝至申请的rdma内存时,判断rdma内存中是否接收到待存储数据中新的单位数据;
147.若接收到,则利用区别于拷贝线程的多个计算线程中空闲的计算线程对rdma内存中最新接收到的单位数据进行纠删计算;
148.判断待存储数据中所有的单位数据是否均已完成纠删计算;
149.若均已完成,则判定待存储数据的纠删计算已完成。
150.作为一种优选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
151.在自身被卸载时,释放所有的拷贝线程以及计算线程。
152.作为一种优选的实施例,计算线程的数量大于拷贝线程的数量。
153.对于本发明实施例提供的数据存储设备的介绍请参照前述的数据存储方法的实施例,本发明实施例在此不再赘述。
154.本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述实施例中数据存储方法的步骤。
155.具体的,该可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:对待存储数据进行纠删计算;将经过纠删计算的待存储数据分割为预设份数;将经过分割的各份待存储数据一一对应地传输至分布式存储系统的多个存储节点。
156.本发明提供了一种数据存储方法,考虑到若在存储节点上进行纠删计算,首先需要将所有待存储数据均发送至主存储节点,主存储节点完成纠删计算后还需要向其他各个存储节点分发经过纠删计算的待存储数据,数据传输量较大,本技术将纠删计算工作转移到分布式存储系统的客户端进行,随后可以将每份待存储数据一一对应地传输至分布式存储系统的多个存储节点即可,省去了由主存储节点进行转发的流程,从而降低了数据传输量,提升了存储效率以及用户体验。
157.作为一种优选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
158.申请远程直接数据存取rdma内存;
159.将待存储数据拷贝至申请的rdma内存;
160.对位于rdma内存的待存储数据进行纠删计算;
161.将经过分割的各份待存储数据一一对应地传输至分布式存储系统的多个存储节
点具体为:
162.将各份待存储数据在rdma内存中的存储地址均发送至分布式存储系统,以便分布式存储系统控制自身的多个存储节点一一对应地读取各份待存储数据。
163.作为一种优选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
164.利用多个拷贝线程将待存储数据拷贝至申请的rdma内存。
165.作为一种优选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
166.利用区别于拷贝线程的多个计算线程对位于rdma内存的待存储数据进行纠删计算。
167.作为一种优选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
168.在利用多个拷贝线程将待存储数据拷贝至申请的rdma内存时,判断rdma内存中是否接收到待存储数据中新的单位数据;
169.若接收到,则利用区别于拷贝线程的多个计算线程中空闲的计算线程对rdma内存中最新接收到的单位数据进行纠删计算;
170.判断待存储数据中所有的单位数据是否均已完成纠删计算;
171.若均已完成,则判定待存储数据的纠删计算已完成。
172.作为一种优选的实施例,处理器执行存储器中保存的计算机子程序时,可以实现以下步骤:
173.在自身被卸载时,释放所有的拷贝线程以及计算线程。
174.作为一种优选的实施例,计算线程的数量大于拷贝线程的数量。
175.对于本发明实施例提供的计算机可读存储介质的介绍请参照前述的数据存储方法的实施例,本发明实施例在此不再赘述。
176.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。还需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。
177.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1