本发明涉及存储,特别是涉及一种分布式存储方法、系统、设备及介质。
背景技术:
1、随着近年来大数据和人工智能的发展,全球对数据的需求不断增加。数据存储决定着未来数字化转型的深度。分布式存储系统是一种存储和管理大容量数据的技术,用于人工智能和广泛的数据分析。这些数据以分布式方式跨多个节点保存,并像单个存储系统一样使用。
2、为了提供更大的存储容量,常常将大规模分布式存储部署到多个相互互连的数据中心(data center,dc)中。在这种情况下,数据中心之间的广域网(wide area network,wan)连接必须考虑相对高延迟和低带宽。然而,现有的分布式存储系统更关注数据的传输和优化数据的查找成本,很少考虑数据中心之间的网络延迟。但是wan环境的高延迟和低带宽,会增加数据检索,进而导致系统性能下降。上述问题阻碍了广域网场景下将分布式存储系统部署到多个数据中心,降低了分布式存储系统适应数据存储需求的可扩展性。
技术实现思路
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、将目标数据写入所述本地数据中心中的观测节点;
35、当目标数据写入完成后,将通知信息发送至其他数据中心,以使对其他数据中心保存的目标数据进行删除。
36、另一方面,在本发明提供的上述分布式存储方法中,所述对其他数据中心保存的目标数据进行删除,包括:
37、将其他数据中心中的存储节点保存的目标数据标记为无效,并加入删除队列中;
38、利用后台线程将所述删除队列中的目标数据进行删除。
39、另一方面,在本发明提供的上述分布式存储方法中,还包括:
40、利用候选节点维护所述第一热度表设定时间段;所述第一热度表临时保存有数据利用率最高的多个数据;
41、将候选节点统计的数据利用情况与之前的数据所在热数据节点的利用情况进行比较;
42、根据比较结果,重新选取新的热数据节点,并将候选节点临时保存的数据移动至新的热数据节点中。
43、另一方面,在本发明提供的上述分布式存储方法中,在所述重新选取新的热数据节点之后,还包括:
44、将所述新的热数据节点广播至其他数据中心的候选节点。
45、为了解决上述技术问题,本发明还提供一种分布式存储系统,所述系统包括通过广域网连接的本地数据中心和其他数据中心;
46、所述其他数据中心,用于向本地数据中心发送其他数据中心中的候选节点统计的目标数据利用率;
47、所述本地数据中心包括:
48、第一热度表创建模块,用于创建第一热度表;所述第一热度表用于收集本地数据中心中的候选节点统计的目标数据利用率;
49、第二热度表创建模块,用于创建第二热度表;所述第二热度表用于整合其他数据中心中的候选节点统计的目标数据利用率;
50、利用率判断模块,用于判断所述第一热度表中的目标数据利用率是否大于所述第二热度表中的目标数据利用率;若是,则将本地数据中心中的候选节点保存的目标数据移动至本地数据中心中的热数据节点中;若否,则对本地数据中心中的候选节点或热数据节点保存的目标数据进行删除。
51、为了解决上述技术问题,本发明还提供一种分布式存储设备,所述设备包括:
52、存储器,用于存储计算机程序;
53、处理器,用于执行所述计算机程序时实现上述的分布式存储方法的步骤。
54、为了解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的分布式存储方法的步骤。
55、从上述技术方案可以看出,本发明所提供的一种分布式存储方法,该方法包括:创建第一热度表;第一热度表用于收集本地数据中心中的候选节点统计的目标数据利用率;创建第二热度表;第二热度表用于整合其他数据中心中的候选节点统计的目标数据利用率;判断第一热度表中的目标数据利用率是否大于第二热度表中的目标数据利用率;若是,则将本地数据中心中的候选节点保存的目标数据移动至本地数据中心中的热数据节点中;若否,则对本地数据中心中的候选节点或热数据节点保存的目标数据进行删除。
56、本发明的有益效果如下:
57、由于建立数据中心之间的连接是克服单个数据中心存储容量限制的必要手段,但数据中心之间的广域网连接具有高延迟,这是一种物理限制,因此存储数据的位置对于减少延迟和带宽的影响至关重要。然而,现有的分布式存储方法并不关注数据中心之间的网络时延。但本发明提供的上述分布式存储方法考虑了网络延迟,每个数据中心的存储节点均含有候选节点,该候选节点可统计数据利用率和临时保存数据,通过创建用于收集本地数据中心中的候选节点统计的数据利用率的第一热度表,以及用于整合其他数据中心中的候选节点统计的数据利用率的第二热度表,并将两个热度表之间的数据利用率进行比较,若第一热度表的数据利用率较高时,可将对应的数据移动至本地数据中心中的热数据节点,反之则删除本地数据中心对应的数据,这样使得每个数据中心可跟踪候选节点统计的数据利用率,根据数据利用率可将数据存储在其利用率最高的数据中心中,进而有效放置数据,减少数据中心之间的信息交换,即使在广域网环境下也能提供低延迟的数据搜索,实现快速数据访问,有效提高数据搜索的效率,并且提升分布式存储系统适应数据存储需求的可扩展性。
58、此外,本发明还针对分布式存储方法提供了相应的分布式存储系统、分布式存储设备及计算机可读存储介质,与上述提到的分布式存储方法具有相同或相对应的技术特征,效果同上。