数据的管理方法、装置以及电子设备与流程

文档序号:19064310发布日期:2019-11-06 02:08阅读:170来源:国知局
数据的管理方法、装置以及电子设备与流程

本申请涉及数据管理技术领域,尤其是涉及一种数据的管理方法、装置以及电子设备。



背景技术:

数据管理是利用计算机硬件和软件技术对数据进行有效的收集、储存、处理和应用的过程,目的在于充分有效的发挥数据的作用。

其中,数据的储存是将经过加工整理序化后的数据按照一定的格式和顺序,储存在特定的载体中。例如,数据以某种格式记录在计算机内部或外部储存介质上。其目的是为了便于数据管理者能够快速准确的识别、定位和检索到数据。

数据储存的对象包括数据流在加工过程中产生的临时文件、加工过程中需要查找的信息等等多种数据。因此,一般的储存节点中会储存有大量数据,这些大量数据需要占用的储存空间也会较大,使储存资源的浪费情况较为严重。对于现有技术而言,急需一种较为合理的数据管理方法,以对数据进行合理的储存。



技术实现要素:

本申请的目的在于提供一种数据的管理方法、装置以及电子设备,以解决数据储存的合理度较低的技术问题。

本发明提供的一种数据的管理方法,应用于第一储存节点,所述第一储存节点中储存有第一哈希值集合,所述第一哈希值集合中的每个哈希值与本地储存的数据块一一对应,所述方法包括:

接收第二储存节点传输的待处理数据块;所述待处理数据块对应有待处理哈希值;

对所述第一哈希值集合中的所有哈希值进行遍历;

若所述所有哈希值中,不存在与所述待处理哈希值相同的哈希值,则将所述待处理数据块储存至本地。

进一步的,所述待处理数据块的数量为多个;

多个所述待处理数据块中的每个待处理数据块对应有待处理哈希值;

所述将所述待处理数据块储存至本地,包括:

将所述所有哈希值中不存在的待处理哈希值所对应的待处理数据块,储存至本地。

进一步的,若干个所述本地储存的数据块是由所述第一储存节点中的数据控制器,对第一文件中的数据进行拆分而生成;所述第一文件储存于所述第一储存节点中。

进一步的,所述第一储存节点中设置有第一数据列表,所述第一数据列表用于记录所述第一哈希值集合;

所述对所述第一哈希值集合中的所有哈希值进行遍历,包括:

对所述第一数据列表进行遍历,判断所述第一数据列表中是否存在与所述待处理哈希值相同的哈希值。

进一步的,所述对所述第一哈希值集合中的所有哈希值进行遍历之后,还包括:

若所述所有哈希值中,不存在与所述待处理哈希值相同的哈希值,则将所述待处理哈希值记录于所述第一数据列表中。

进一步的,所述将所述待处理哈希值记录于所述第一数据列表中之后,还包括:

将记录所述待处理哈希值后的第一数据列表传输至所有储存节点,以使所述所有储存节点对第二数据列表进行更新;所述第二数据列表用于记录每个储存节点的数据储存情况;所述数据储存情况用于为数据的获取过程提供获取地址。

进一步的,所述所有储存节点中均设置有所述第二数据列表;所述所有储存节点包括所述第一储存节点和所述第二储存节点。

本发明提供的一种数据的管理装置,应用于第一储存节点,所述第一储存节点中储存有第一哈希值集合,所述第一哈希值集合中的每个哈希值与本地储存的数据块一一对应,所述装置包括:

接收模块,用于接收第二储存节点传输的待处理数据块;所述待处理数据块对应有待处理哈希值;

遍历模块,用于对所述第一哈希值集合中的所有哈希值进行遍历;

储存模块,用于在所述所有哈希值中不存在与所述待处理哈希值相同的哈希值时,将所述待处理数据块储存至本地。

本发明提供的一种电子设备,包括储存器、处理器,所述储存器中储存有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。

本发明提供的一种具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行上述的方法。

本方案中,第一储存节点中储存的第一哈希值集合中的每个哈希值与本地储存的数据块一一对应,在接收第二储存节点传输的待处理数据块时,便对第一哈希值集合进行遍历,若其中不存在与待处理数据块对应的待处理哈希值相同的哈希值,说明第一储存节点中没有储存有待处理数据块,便将该待处理数据块储存至本地。因此,如果第一哈希值集合中存在与待处理哈希值相同的哈希值,则说明第一储存节点中储存有待处理数据块,便无需再将该待处理数据块储存至第一储存节点中,避免了数据块的重复储存,从而节省了相同数据的副本所占用的储存空间,使数据储存方式更为合理,减轻了储存资源的浪费情况。

附图说明

为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请实施例所提供的数据的管理方法的流程图;

图2示出了本申请实施例所提供的每个分布式储存节点的内部结构示意图;

图3示出了本申请实施例所提供的一种数据的管理装置的结构示意图;

图4示出了本申请实施例所提供的一种电子设备的结构示意图。

具体实施方式

下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明造成不必要的模糊。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

在本申请的描述中,除非另有说明,“至少一个”的含义是指一个或一个以上。例如,至少一个同步帧是指一个同步帧或一个以上同步帧。

此外,本发明的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

目前,一般的储存节点中会储存有大量数据,这些大量数据需要占用的储存空间也会较大,使储存资源的浪费情况较为严重。对于现有技术而言,急需一种较为合理的数据管理方法,以对数据进行合理的储存。基于此,本申请实施例提供的一种数据的管理方法、装置以及电子设备,可以解决现有技术中存在的数据储存的合理度较低的技术问题。

为便于对本实施例进行理解,首先对本申请实施例所公开的一种数据的管理方法、装置以及电子设备进行详细介绍。

本申请实施例提供的一种数据的管理方法,应用于第一储存节点,第一储存节点中储存有第一哈希值集合,第一哈希值集合中的每个哈希值与本地储存的数据块一一对应,如图1所示,方法包括:

s11:接收第二储存节点传输的待处理数据块,待处理数据块对应有待处理哈希值。

其中,待处理数据块是第二储存节点传输至第一储存节点的数据块,该待处理数据块可以是第一储存节点需要储存的数据块,也可以是第一储存节点经过判断后确认是否需要储存的数据块。因此,第一储存节点对待处理数据块的处理方式可以为储存、经判断后储存或经判断后删除等多种处理方法。

需要说明的是,哈希值(hashfunction)也称为哈希函数、散列函数、散列算法等,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hashvalues,hashcodes,hashsums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。

s12:对第一哈希值集合中的所有哈希值进行遍历。

在实际应用中,第一哈希值集合储存于第一储存节点中,第一哈希值集合中的每个哈希值与第一储存节点中储存的数据块一一对应。也可以理解为,第一哈希值集合中的哈希值表示第一储存节点中储存的数据块经过压缩后的摘要,这些哈希值便代表第一储存节点中储存的这些数据块。

s13:判断所有哈希值中,是否存在与待处理哈希值相同的哈希值。若否,则进行步骤s14。

作为本实施例的优选实施方式,对第一哈希值集合中的所有哈希值进行遍历,并在遍历过程中,判断在这些哈希值中是否存在与步骤s11中的待处理哈希值相同的哈希值。

s14:将待处理数据块储存至本地。

如果第一哈希值集合中不存在与待处理哈希值相同的哈希值,则说明第一储存节点中没有储存有待处理数据块,便将该待处理数据块储存至第一储存节点中。

因此,如果第一哈希值集合中存在与待处理哈希值相同的哈希值,则说明第一储存节点中储存有待处理数据块,便无需再将该待处理数据块储存至第一储存节点中,避免了数据块的重复储存,从而节省了相同数据的副本所占用的储存空间,使数据储存方式更为合理,减轻了储存资源的浪费情况。

本实施例中,待处理数据块的数量可以为多个;多个待处理数据块中的每个待处理数据块对应有待处理哈希值;在将待处理数据块储存至本地的步骤(步骤s14)之前,还可以包括以下步骤:

将所有哈希值中不存在的待处理哈希值所对应的待处理数据块,储存至本地。

示例性的,第二储存节点可以同时传输至第一储存节点多个待处理数据块,可以针对所有的待处理数据块对第一哈希值集合中的所有哈希值进行遍历。对于多个待处理数据块,若其中的某几个待处理数据块在第一哈希值集合中已存在,则不再对这些某几个待处理数据块进行储存,只需储存第一哈希值集合中不存在的待处理数据块。

因此,多种不同情况的待处理数据块可以分情况对其进行处理,以此使第一储存节点的数据储存方式更加合理,既不会遗漏储存需要储存的数据,也不会对数据重复储存,导致不必要的储存空间的浪费。

为了更为方便的对第一哈希值集合进行遍历,第一储存节点中设置有第一数据列表,第一数据列表用于记录第一哈希值集合,上述对第一哈希值集合中的所有哈希值进行遍历的步骤(即步骤s12),可以包括以下步骤:

对第一数据列表进行遍历,判断第一数据列表中是否存在与待处理哈希值相同的哈希值。

例如,第一哈希值集合中的第一哈希值和第二哈希值(如block1hash和block2hash)在第一数据列表中作为数据块的摘要索引,如果其数据块的内容和待处理数据块的内容相同,则其对应哈希值也相同,当进行数据列表写入的时候将被判别为重复数据块。而当数据更新时,第一储存节点也可以只储存更新的数据块。

因此,通过遍历记录第一哈希值集合的第一数据列表,使遍历的过程更加便捷,而且与待处理哈希值内容相同的哈希值的遗漏可能性也得到降低,也保证了相同的数据块在第一储存节点中只保留一份。

为了便于对下次接收到的待处理数据块的有效判断,上述对第一哈希值集合中的所有哈希值进行遍历的步骤(即步骤s12)之后,可以包括以下步骤:

若所有哈希值中,不存在与待处理哈希值相同的哈希值,则将待处理哈希值记录于第一数据列表中。

当储存完成待处理数据块,即第一储存节点中的数据块更新过后,针对第一储存节点只储存的待处理数据块,将待处理数据块所对应的待处理哈希值记录于第一数据列表中。

因此,通过及时的完善第一数据列表,使第一储存节点中所储存的数据块及其哈希值之间的映射关系能够实时的储存在第一数据列表中,以便于对下次接收到的新的待处理数据块的有效判断,从而能够准确的判断出新的待处理数据块是否需要储存于第一储存节点中。

为了便于各个储存节点获取到所需要的数据,上述将待处理哈希值记录于第一数据列表中的步骤(即步骤s14)之后,可以包括以下步骤:

将记录待处理哈希值后的第一数据列表传输至所有储存节点,以使所有储存节点对第二数据列表进行更新;第二数据列表用于记录每个储存节点的数据储存情况;数据储存情况用于为数据的获取过程提供获取地址。

其中,第二数据列表中还可以记录有数据块名、数据块所属的文件名、文件版本号、文件上传时间、上传人、备注信息等信息。

本步骤中,各个储存节点之间可以通过传输模块,将第二数据列表和第一数据列表进行同步。示例性的,各个储存节点均获取到最新的文件版本信息和文件地址信息,但无需立刻同步文件储存中的数据块。只有在需要访问其它储存节点上的数据文件的时候才需要下载该文件的数据块。

例如,当某个文件进行迭代更新时,通过事件机制通知其他储存节点更新更新第二数据列表中的文件信息和文件列表。当某一储存节点需要获取某数据块(或某文件)时,可通过第二数据列表和第一数据列表,获取到该数据块(或该文件中的数据块)的哈希值,继而从其它储存节点中将该数据块(或该文件)下载到本地的储存节点,同时更新本地的第一数据列表和第二数据列表,并将更新后的第二数据列表同步至其他各个储存节点。当新的储存节点需要获取某个文件时,而多个储存节点均存在该文件,可以从多个储存节点中同时下载该文件中的不同数据块,从而提高各个储存节点对文件的获取速度。

图2为本实施例提供的每个分布式节点(即分布式储存节点)的内部结构示意图。分布式储存网络由每个分布式储存节点组成,储存节点可部署在数据网络参与方的机房环境中。

如图2所示,分布式储存节点由文件块储存(即文件块储存模块)、文件列表(即第一数据列表)、文件控制器、分布式账本(即第二数据列表)、对等网络(简称p2p)传输(即p2p传输模块)、事件总线和应用程序接口(applicationprogramminginterface,api)(即api模块)组成。

其中,文件块储存用于储存文件被拆分为特定大小后的数据块,每个数据块对应一个由其哈希值对应的地址。

作为本实施例的优选实施方式,文件列表用于记录数据文件名地址列表,文件名地址与文件块地址的映射关系。

在实际应用中,文件控制器用于进行文件到数据块的拆分,文件列表与分布式账本的接口控制以及p2p传输调度。例如,若干个第一储存节点储存的数据块是由第一储存节点中的数据控制器,对第一文件中的数据进行拆分而生成,其中,第一文件储存于第一储存节点中。文件控制器将文件按照固定大小拆分为若干个数据块储存在文件块储存中,每个文件名和数据块都有对应的哈希值作为地址。每个文件名与数据块之间存在一对一或一对多的映射关系。例如文件filename对应地址为filehash1,该文件名映射的数据块block1和block2地址(即哈希值)为block1hash和block2hash。

示例性的,当储存完成待处理数据块,即第一储存节点中的数据块更新过后,针对第一储存节点只储存的更新的数据块,生成新的哈希值。如filename文件进行更新,更新内容为文件块block2改为block3,则block3的地址(即哈希值)为block3hash,由文件控制器控制将相应的新版本文件filename的地址更改为filehash2,映射文件块为block1hash和block3hash。文件名地址、数据块地址(即哈希值)及其之间的映射关系均储存在文件列表中。

需要说明的是,分布式账本(即第二数据列表)用于记录文件名地址、文件版本信息、文件更新人、文件更新备注等信息。需要说明的是,所有的分布式储存节点中均设置有第二数据列表,这些所有储存节点中包括第一储存节点和第二储存节点。

作为一个优选方案,事件总线用于在文件发生迭代更新时,通知其他分布式储存节点更新分布式账本和文件列表。

作为本实施例的另一种实施方式,api模块用于对上层应用提供接口服务,上层应用通过api层向分布式储存节点上传数据文件,例如文件名为filename。

对于现有技术而言,在很多实际业务中均需要面临大量数据文件共享的问题,数据文件大小因业务场景不同而不同。大多数数据文件共享均基于中心化的解决方案,少数采用分布式储存解决方案,但仍存在很多问题。主要缺陷为:中心化解决方案故障风险较高,一旦中心数据出现问题,则整个系统数据出现巨大风险;中心化解决方案对网络质量要求较高,当与中心网络连接出现异常时,则业务无法正常开展;中心化解决方案共享中心网络带宽,当系统参与方较多时,网络传输速度明显下降;现有分布式解决方案对资源浪费较为严重,相同数据副本占用大量储存资源;版本更新缺少主动通知机制,如系统使用人员未及时主动获取更新信息,则可能造成数据版本混乱。

本实施例中,在每个参与方部署一个或多个分布式储存节点(如在多方参与的数据共享平台中设置多个分布式储存节点),所有分布式储存节点共同组成数据网络,储存节点间进行数据的创建、迭代、获取。本实施例提供的数据的管理方法可以作为基于分布式储存的数据迭代管理及同步机制,通过分布式储存降低了中心化数据丢失的风险,而且分布式储存也降低了中心化网络单点故障的风险,再者,数据块的去重复机制大大节约了储存资源,而且,还提高了多个分布式节点获取数据的网络传输速度。此外,事件总线机制,能够即时通知各节点同步数据迭代更新信息,分布式账本保证了对数据迭代更新记录的可追溯不可篡改。

本申请实施例提供的一种数据的管理装置,应用于第一储存节点,第一储存节点中储存有第一哈希值集合,第一哈希值集合中的每个哈希值与本地储存的数据块一一对应,如图3所示,数据的管理装置3包括:

接收模块31,用于接收第二储存节点传输的待处理数据块;待处理数据块对应有待处理哈希值;

遍历模块32,用于对第一哈希值集合中的所有哈希值进行遍历;

储存模块33,用于在所有哈希值中不存在与待处理哈希值相同的哈希值时,将待处理数据块储存至本地。

本申请实施例提供的数据的管理装置,与上述实施例提供的数据的管理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

本申请实施例提供的一种电子设备,如图4所示,电子设备4包括储存器41、处理器42,储存器中储存有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的方法的步骤。

参见图4,电子设备还包括:总线43和通信接口44,处理器42、通信接口44和储存器41通过总线43连接;处理器42用于执行储存器41中储存的可执行模块,例如计算机程序。

其中,储存器41可能包含高速随机存取储存器(ram,randomaccessmemory),也可能还包括非易失性储存器(non-volatilememory),例如至少一个磁盘储存器。通过至少一个通信接口44(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

总线43可以是isa总线、pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,储存器41用于储存程序,处理器42在接收到执行指令后,执行程序,前述本申请任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器42中,或者由处理器42实现。

处理器42可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器42中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器42可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机储存器,闪存、只读储存器,可编程只读储存器或者电可擦写可编程储存器、寄存器等本领域成熟的储存介质中。该储存介质位于储存器41,处理器42读取储存器41中的信息,结合其硬件完成上述方法的步骤。

本申请实施例提供的一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述实施例提供的方法。

本申请实施例提供的具有处理器可执行的非易失的程序代码的计算机可读介质,与上述实施例提供的数据的管理方法、装置以及电子设备具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1