掌桥专利:专业的专利平台
掌桥专利
首页

分布式存储方法、系统、设备、存储介质及信息处理终端

文献发布时间:2023-06-19 16:04:54



技术领域

本申请涉及数据存储的领域,尤其是涉及一种分布式存储方法、系统、设备、存储介质及信息处理终端。

背景技术

传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器的存储容量成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

目前,基于云数据库的分布式存储系统中的云数据库服务器,其不仅可以用于分布式存储,还可用于本地存储。

在实现本申请的过程中,发明人发现上述技术至少存在以下问题:若本地存储的进程正在进行时,其他业务需求也想用此云数据库服务器进行分布式存储,在本地存储进程占用云数据库服务较多的资源的情况下,易于导致分布式存储的进程要排队,或者进行小规模的分布式存储,故而,在不知所需云数据库服务器状态的情况下便进行分布式存储,可能会导致分布式存储的效率较低。

发明内容

为了便于提升分布式存储的效率,本申请提供一种分布式存储方法、系统、设备、存储介质及信息处理终端。

第一方面,本申请提供一种分布式存储方法,采用如下的技术方案:

一种分布式存储方法,包括:

计算本地存储服务器中待处理的每个数据块的哈希值;

对所述哈希值相同的所述数据块进行择一处理,生成待发数据块群组;

向每个云存储服务器发射活跃度确认广播信号,获取每个所述云存储服务器的活跃度反馈信号;

解析所述活跃度反馈信号生成每个所述云存储服务器的活跃度数据和身份代码;

比较所述活跃度数据与预设的活跃度阈值的大小得到比较结果,依据所述比较结果排列所述身份代码生成身份代码群组;

匹配所述待发数据块群组和所述身份代码群组,将所述待发数据块群组中的所述数据块发送至相匹配的所述身份代码对应的云存储服务器中。

通过采用上述技术方案,通过计算每个数据块的哈希值,可便于判断是否有哈希值一致的数据块,若有哈希值一致的数据块则说明有数据块的重复,然后留下哈希值一致的数据块中的一个数据块,如此可在数据的分布式存储前将冗余的数据块删除,进而便于减少需分布式存储的数据量以提升数据分布式存储的效率;进一步,通过获取云存储服务器的活跃度,便于知晓每个云存储服务器的繁忙程度,进而便于将需分布式存储的数据优先分配给繁忙程度较低的云存储服务器进行存储,如此也已也便于提升数据分布式存储的效率,综上通过减少冗余的数据块以及根据云存储服务器分配待分布式存储的数据的方式的综合作用下,可便于提升分布式存储的效率。

在一个具体的可实施方案中,所述对所述哈希值相同的所述数据块进行择一处理,生成待发数据块群组,包括:

获取所述哈希值相同的所述数据块中的一个所述数据块;

按照所述数据块的数据量大小排列所述数据块,生成所述待发数据块群组。

通过采用上述技术方案,先将哈希值相同的数据块集中处理,然后只留下若干哈希值相同的数据块中的一个数据块,然后将留下的一个数据块存入待发数据块群组中,如此便于减少需要分布式存储的数据量以提升数据分布式存储的效率。

在一个具体的可实施方案中,每个所述云存储服务器可依据所述活跃度确认广播信号生成对应的所述活跃度反馈信号。

通过采用上述技术方案,云存储服务器在获取到活跃度确认广播信号后,再依据活跃度确认广播信号检测自身的活跃度,然后生成对应的活跃度反馈信号并反馈给客户端,从而便于客户端知晓云存储服务器的繁忙程度,进而便于客户端将数据优先分配繁忙程度较低的云存储服务器进行存储以提升数据分布式存储的效率。

在一个具体的可实施方案中,所述云存储服务器依据所述活跃度确认广播信号生成对应的所述活跃度反馈信号的步骤包括:

统计所述云存储服务器中处于工作状态的进程的数量,生成工作状态进程数量;

依据所述工作状态进程数量和对应的所述云存储服务器中最大进程数量生成每个所述云存储服务器的所述活跃度数据;

获取每个所述云存储服务器预设的身份代码;

组合所述活跃度数据和所述身份代码生成所述活跃度反馈信号。

通过采用上述技术方案,依据云存储服务器中正在使用的进程数与总的进程数便于知晓云存储服务器的繁忙程度,从而便于客户端将数据优先分配繁忙程度较低的云存储服务器进行存储。

在一个具体的可实施方案中,所述比较所述活跃度数据与预设的活跃度阈值的大小得到比较结果,依据所述比较结果排列所述身份代码生成身份代码群组,包括:

比较所述活跃度数据和所述活跃度阈值的大小,获取所述活跃度数据小于所述活跃度阈值的所述跃度数据,生成第一活跃度数据;

按大小顺序排列所述第一活跃度数据;

按所述第一活跃度数据的排列顺序列出对应的所述身份代码,生成身份代码群组。

通过采用上述技术方案,比较活跃度数据与预设的活跃度阈值的大小,从而便于依据比较结果获知云存储服务器是否适宜进行数据的分布式存储。

在一个具体的可实施方案中,所述匹配所述待发数据块群组和所述身份代码群组,将所述待发数据块群组中的所述数据块发送至相匹配的所述身份代码对应的云存储服务器中,包括:

按顺序匹配所述待发数据块群组中的所述数据块和所述身份代码群组中的所述身份代码;

依据所述数据块和所述身份代码的匹配关系将所述数据块发送至所述身份代码对应的云存储服务器中。

通过采用上述技术方案,每个云存储服务器均有其对应的身份代码,在确定一个云存储服务器可便于进行数据的分布式存储后,通过获取该云存储服务器的身份代码,可便于将需要分布式存储的数据存储至该云存储服务器中。

第二方面,本申请提供一种分布式存储系统,采用如下的技术方案:

一种分布式存储系统,包括:

哈希值计算模块,用于计算本地存储服务器中待处理的每个数据块的哈希值;

待发数据块群组生成模块,用于对所述哈希值相同的所述数据块进行择一处理,生成待发数据块群组;

活跃度反馈信号获取模块,用于向每个云存储服务器发射活跃度确认广播信号,获取每个所述云存储服务器的活跃度反馈信号;

活跃度反馈信号解析模块,用于解析所述活跃度反馈信号生成每个所述云存储服务器的活跃度数据和身份代码;

身份代码群组生成模块,用于比较所述活跃度数据与预设的活跃度阈值的大小得到比较结果,依据所述比较结果排列所述身份代码生成身份代码群组;

数据块匹配发送模块,用于匹配所述待发数据块群组和所述身份代码群组,将所述待发数据块群组中的所述数据块发送至相匹配的所述身份代码对应的云存储服务器中。

通过采用上述技术方案,若通过待发数据块群组生成模块发现有哈希值一致的数据块则说明有数据块的重复,然后留下哈希值一致的数据块中的一个数据块,如此可在数据的分布式存储前将冗余的数据块删除,进而便于减少需分布式存储的数据量以提升数据分布式存储的效率;进一步,通过获取云存储服务器的活跃度,便于知晓每个云存储服务器的繁忙程度,进而便于将需分布式存储的数据优先分配给繁忙程度较低的云存储服务器进行存储,如此也已也便于提升数据分布式存储的效率,综上通过减少冗余的数据块以及根据云存储服务器分配待分布式存储的数据的方式的综合作用下,可便于提升分布式存储的效率。

第三方面,本申请提供一种计算机设备,采用如下技术方案:包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如上述任意一种分布式存储方法的计算机程序。

通过采用上述技术方案,通过减少冗余的数据块以及根据云存储服务器分配待分布式存储的数据的方式的综合作用下,可便于提升分布式存储的效率。

第四方面,本申请提供一种计算机可读存储介质,采用如下技术方案:存储有能够被处理器加载并执行上述任意一种分布式存储方法的计算机程序。

通过采用上述技术方案,通过减少冗余的数据块以及根据云存储服务器分配待分布式存储的数据的方式的综合作用下,可便于提升分布式存储的效率。

第五方面,本申请提供一种信息处理终端,采用如下技术方案:能执行上述任意一种分布式存储方法。

通过采用上述技术方案,通过减少冗余的数据块以及根据云存储服务器分配待分布式存储的数据的方式的综合作用下,可便于提升分布式存储的效率。

综上所述,本申请包括以下至少一种有益技术效果:

1.通过计算每个数据块的哈希值,可便于判断是否有哈希值一致的数据块,若有哈希值一致的数据块则说明有数据块的重复,然后留下哈希值一致的数据块中的一个数据块,如此可在数据的分布式存储前将冗余的数据块删除,进而便于减少需分布式存储的数据量以提升数据分布式存储的效率;进一步,通过获取云存储服务器的活跃度,便于知晓每个云存储服务器的繁忙程度,进而便于将需分布式存储的数据优先分配给繁忙程度较低的云存储服务器进行存储,如此也已也便于提升数据分布式存储的效率,综上通过减少冗余的数据块以及根据云存储服务器分配待分布式存储的数据的方式的综合作用下,可便于提升分布式存储的效率;

2.在云存储服务器在获取到活跃度确认广播信号后,再依据活跃度确认广播信号检测自身的活跃度,然后生成对应的活跃度反馈信号并反馈给客户端,从而便于客户端知晓云存储服务器的繁忙程度,进而便于客户端将数据优先分配繁忙程度较低的云存储服务器进行存储;

3.比较活跃度数据与预设的活跃度阈值的大小,从而便于依据比较结果获知云存储服务器是否适宜进行数据的分布式存储。

附图说明

图1是本申请实施例1中一种分布式存储方法的流程示意图。

图2是本申请实施例1中一种分布式存储硬件结构示意图。

图3是本申请实施例2中一种分布式存储系统的结构框图。

附图标记说明:100、哈希值计算模块;200、待发数据块群组生成模块;300、活跃度反馈信号获取模块;400、活跃度反馈信号解析模块;500、身份代码群组生成模块;600、数据块匹配发送模块。

具体实施方式

以下结合附图1-2对本申请作进一步详细说明。

实施例1

本申请实施例1公开了一种分布式存储方法。参照图1,分布式存储方法包括:

S100、计算本地存储服务器中待处理的每个数据块的哈希值。

参照图2,在数据分布存储的实施中,为了便于提升数据存储时的可靠性,用户可将本地存储服务器中的存储数据分布式存储至若干个与本地存储服务器通信连接的云存储服务器中,每个云端的云存储服务器可通过有线或者无线的方式与本地的本地存储服务器建立通信连接,每个云存储服务器均可作为一个存储节点,且所有云存储服务器中的有用存储空间可用于共同出组建云数据库存储空间。

在实施中,用户可根据自己的意愿在本地存储服务器中依据存储数据的元数据,或者存储数据的所属关系对存储数据进行分块处理,即在本地存储服务器中将存储数据划分为若干数据块,且为了便于防止单个数据块上的存储数据意外丢失,在本地存储服务器中会设置与每个数据块对应的备份数据块,对于一些比较重要的数据块,可能备份有若干个备份数据块。需要说明的是,备份数据块中的存储数据与源数据块(与备份数据块对应的数据块)中的存储数据一致;备份数据块中的元数据与源数据块中的元数据一致。

在进行存储数据的分布式存储前,客户端计算本地存储服务器中的每个数据块(包括备份数据块)中存储的数据的哈希值。在实施中,计算哈希值可以采用的算法包括但不限于SHA256以及SHA512,可以理解的是,由于源数据块以及对应的备份数据块中存储的数据一致,故而,在基于相同的HASH算法的前提下,计算出的源数据块以及对应的备份数据块哈希值是一致的。

S200、对哈希值相同的数据块进行择一处理,生成待发数据块群组。

由于源数据块中的数据(包含存储数据以及存储数据对应的元数据)和对应的备份数据块中的数据一致,若是在进行分布式存储的时候将源数据块和备份数据块中的数据均进行传输,则不仅会浪费传输资源,还会增大分布式存储进程的压力,进而会降低本地存储服务器中的数据分布式存储的效率。

为了便于增加本地存储服务器中数据分布式存储的效率,先对本地存储服务器中的数据块(包括所有的源数据块以及相应的备份数据块)进行择一处理。

具体的,依次串行或者并行获取(根据本地存储服务器的运算能力选择依次或者并行)源数据块以及对应的所有备份数据块,然后只留取哈希值相同的数据块中的一个数据块,并将其余数据块进行删除处理。

在另一个实施例中,亦可依次串行或者并行获取(根据本地存储服务器的运算能力选择依次或者并行)源数据块以及对应的所有备份数据块,待本地存储服务器选择哈希值相同的数据块中的一个数据块进行分布式存储后,再将本地存储服务器中的源数据块以及若干对应的备份数据块进行删除处理。这种择一处理方式相较于上述的一种择一处理方式,优势在于,数据安全性高,即使存储数据和对应的元数据在分布式存储的过程中由于某些因素出现丢失等不利状况,由于本地存储服务器中还暂时留存有源数据块以及若干对应的备份数据块,故而可便于进行数据的恢复,或者视情况重新进行源数据块以及若干对应的备份数据块分布式存储。

在实施中,将每个源数据块以及若干对应的备份数据块先进行择一处理,然后会根据每个数据块中的数据量从大到小的顺序排列上述数据块,如此可在本地存储服务器中生成由哈希值不同的数据块构成的待发数据块群组。

S300、向每个云存储服务器发射活跃度确认广播信号,获取每个云存储服务器的活跃度反馈信号。

在实施中,每个云存储服务器可能不仅用于存储由本地存储服务器发来的数据块,还可能用于其他业务的数据存储、以及数据处理。每个云存储服务器上的最大进程数量是确定的,在实施中,云存储服务器上的某些进程可能会用于其他业务的数据存储、以及数据处理,为了便于了解云存储服务器进程使用情况,可以使用活跃度对云存储服务器进程使用情况进行量化,活跃度=工作状态进程数量/最大进程数量×100%,活跃度用以表征云数据服务器的繁忙程度,若活跃度偏高,则说明云数据服务器的繁忙程度较高;若活跃度偏低,则说明云数据服务器的繁忙程度较低,需要说明的是,当云数据服务器的活跃度偏高时不适宜用于数据的分布式存储,因为当云数据服务器的活跃度偏高时,云数据服务器仅能分出较少的进程用于数据的存储,如此易于导致待存储的数据出现排队,或者仅能进行小规模数据存储的状况,进而易于降低分布式存储的效率。

为了便于提前知晓每个云数据服务器的活跃度情况,在客户端进行生成待发数据块群组的过程中,客户端可同时向与之通信连接的若干云存储服务器广播活跃度确认广播信号。在实施中,每个云存储服务器在接收到上述活跃度确认广播信号后,会对自身当前一段时间的活跃度进行计算,生成对应的活跃度数据。具体的,将当前一段时间划分为若干时间段,然后统计每个时间段的工作状态进程数量,记为第一工作状态进程数量,然后将统计出的若干第一工作状态进程数量的均值,且将此均值作为云存储服务器当前一段时间的工作状态进程数量。获取工作状态进程数量后,再依据其与云存储服务器的最大进程数量计算出对应的活跃度数据。

云存储服务器计算出其自身的活跃度数据(二进制数)后,先暂存活跃度数据;为了便于区分不同的云存储服务器,每个云存储服务器上均预设有对应的身份代码(二进制码串);进一步,云存储服务器组合自身活跃度数据和自身的身份代码,从而生成对应的活跃度反馈信号,然后,云存储服务器组将活跃度反馈信号发送至本地存储服务器中。

S400、解析活跃度反馈信号生成每个云存储服务器的活跃度数据和身份代码。

本地存储服务器在接收到上述活跃度反馈信号后,立即对活跃度反馈信号进解析,然后获取对应的活跃度数据以及身份代码,接着建立活跃度数据与对应的身份代码之间映射关系,并按照映射关系将活跃度数据与对应的身份代码存储至本地存储服务器中预设的解析数据暂存数据库中。

S500、比较活跃度数据与预设的活跃度阈值的大小得到比较结果,依据比较结果排列身份代码生成身份代码群组。

为了便于判断云存储服务器是否适宜用于数据的分布式存储,需要有一个衡量标准,在本地存储服务器中预设有用于用作衡量标准的活跃度阈值。

从解析数据暂存数据库中并行获取活跃度数据,并将所有的活跃度数据均与上述活跃度阈值进行大小比较,得到相应的比较结果;

若比较结果为:活跃度数据小于活跃度阈值,则暂存此活跃度数据,生成第一活跃度数据;

若比较结果为:活跃度数据不小于活跃度阈值,则不暂存此活跃度数据;

进一步,按照数值从小到大的顺序排列第一活跃度数据,然后按照这个顺序以及活跃度数据与对应的身份代码之间映射关系,从解析数据暂存数据库中提取对应的身份代码,并将提取的若干身份代码也按照上述第一活跃度数据的排列顺序进行排列,生成对应的身份代码群组。

S600、匹配待发数据块群组和身份代码群组,将待发数据块群组中的数据块发送至相匹配的身份代码对应的云存储服务器中。

本地存储服务器中的待发数据块群组中的数据块按照数据量从大到小的顺序进行排列,身份代码群组中的身份代码按照活跃度从小到大顺序进行排列,如此,使待发数据块群组中的数据块与依次与身份代码群组中的身份代码依次建立匹配关系,待发数据块群组中排列第一的数据块与身份代码群组中的排列第一的身份代码建立匹配关系,然后依次类推,经过第一轮的关系的匹配后,若待发数据块群组中的数据块仍有尚存的数据块未与身份代码建立匹配关系,则将第一轮中未与身份代码建立匹配关系的数据块再次按照上述匹配关系依次与身份代码群组中的身份代码建立匹配关系,直至待发数据块群组中的数据块完全与身份代码群组中的身份代码建立匹配关系。如此,一个身份代码可能与多个数据块建立匹配关系。

进一步,按照数据块与身份代码之间的匹配关系,客户端将数据块发送至与之匹配的身份代码对应的云存储服务器进行存储,当云存储服务器接收到对应的数据块后,不仅对数据块进行存储,还对该数据块进行备份,从而增加该数据块的安全性以及可靠性。

图1为一个实施例中分布式存储方法的流程示意图。应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行;除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行;并且图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

实施例2

本申请实施例2公开了一种分布式存储系统。参照图3,分布式存储系统包括:

哈希值计算模块100,用于计算本地存储服务器中待处理的每个数据块的哈希值;

待发数据块群组生成模块200,用于对所述哈希值相同的所述数据块进行择一处理,生成待发数据块群组;

活跃度反馈信号获取模块300,用于向每个云存储服务器发射活跃度确认广播信号,获取每个所述云存储服务器的活跃度反馈信号;

活跃度反馈信号解析模块400,用于解析所述活跃度反馈信号生成每个所述云存储服务器的活跃度数据和身份代码;

身份代码群组生成模块500,用于比较所述活跃度数据与预设的活跃度阈值的大小得到比较结果,依据所述比较结果排列所述身份代码生成身份代码群组;

数据块匹配发送模块600,用于匹配所述待发数据块群组和所述身份代码群组,将所述待发数据块群组中的所述数据块发送至相匹配的所述身份代码对应的云存储服务器中。

实施例3

在本实施例3中公开了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述一种分布式存储方法的步骤。此处一种分布式存储方法的步骤可以是上述各个实施例的一种分布式存储方法中的步骤。

实施例4

在本实施例4中公开了一种计算机可读存储介质,其存储有能够被处理器加载并执行如上述一种分布式存储方法的计算机程序,该计算机可读存储介质例如包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

实施例5

在本实施例5中公开了一种信息处理终端,该信息处理终端可用于执行上述任意一种分布式存储方法。

本具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。

相关技术
  • 分布式存储方法、系统、设备、存储介质及信息处理终端
  • 信息处理系统、信息处理方法、信息处理设备、信息处理设备控制方法、信息处理终端、信息处理终端控制方法、信息存储介质以及程序
技术分类

06120114696488