数据分片的处理以及垃圾文件的删除方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及计算机技术,尤其涉及一种数据分片的处理以及垃圾文件的删除方法和装置。
【背景技术】
[0002]一般来说,数据在数据库中主要通过Key-Value (键值对)的方式进行存储。每一个键名(Key)中存储有对应的键值(Value),通过键名可以查找到相应的键值,进而可以对该键值完成一定的数据操作。此外,为了实现对数据库中数据的快速读写,数据库中存储的数据一般为全序数据。
[0003]全序数据在逻辑上看是一个按key排序的超大数据集(数据行数在万亿量级以上),由于其数据量巨大,仅通过一个或者几个服务器是无法将超大数据集完全存储下来的。因此,在现有的分布式全序存储系统中,需要将海量全序数据以分布式的方式分散存储在服务器集群的各个数据分片中。其中,不同的数据分片存储于一个或者多个分片服务器,不同分片中所存储的数据信息范围被统一存储于管理服务器的分片元信息中。这样,多个分片服务器通过一个管理服务器进行统一的调度配置,即可实现对全序数据的各类操作。
[0004]显然,数据库中存储的全序数据是动态变化的,随着对数据的持续增删操作,分片的大小会发生变化,因此需要对较大分片进行分裂,并对较小的分片进行合并,而如何将存储全序数据的数据分片进行合理且高效的分裂/合并是目前一个非常重要的研宄课题。
[0005]现有的分片分裂/合并技术的实现方法主要有如下两种:
[0006]1、离线分裂/合并。本方案在分片分裂/合并的时候需要停止服务。然后将分片内的旧数据离线写入至新分片中,再修改分片元信息生效。这种实现的分裂/合并效率非常低,需要增加一倍的带宽/计算资源,且需要长时间停止服务,在对实时性要求较高的场景下是不可接受的;
[0007]2、基于文件链接的分裂。在本方案中,分片的物理存储对应于一个文件系统目录,如果生成新的分片,只需要在新分片目录下创建旧文件的链接。这种方案无需移动数据,可在线分裂,无需停止服务。但需要依赖文件系统的链接功能,且无法有效实现分片合并。
【发明内容】
[0008]有鉴于此,本发明实施例提供一种数据分片的处理以及垃圾文件的删除方法和装置,以优化现有的分布式全序存储系统中数据分片的处理机制,满足人们日益增长的便捷化、高效化的数据分片的处理需求。
[0009]在第一方面,本发明实施例提供了一种分布式全序存储系统中数据分片的处理方法,包括:
[0010]在分布式全序存储系统生成全序数据分片的过程中,获取与所述数据分片对应的至少一个属性描述信息,其中,所述属性描述信息包括数据迭代信息;
[0011]将所述属性描述信息写入与所述数据分片对应的文件元信息中;
[0012]在接收到对至少一个目标数据分片的处理指示时,对与所述目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对所述目标数据分片的处理。
[0013]在第二方面,本发明实施例提供了一种垃圾文件的删除方法,包括:
[0014]查询分布式全序存储系统中与各数据分片对应的文件元信息,获取第一文件列表,其中,所述文件元信息中存储有与数据分片对应的属性描述信息,且所述属性描述信息中包括有数据迭代信息;
[0015]扫描与所述分布式全序存储系统对应的文件系统,获取第二文件列表;
[0016]计算所述第一文件列表与所述第二文件列表的差集,作为待删除文件列表;
[0017]删除所述分布式全序存储系统中与所述待删除文件列表相匹配的数据文件。
[0018]在第三方面,本发明实施例提供了一种分布式全序存储系统中数据分片的处理装置,包括:
[0019]属性描述信息获取模块,用于在分布式全序存储系统生成全序数据分片的过程中,获取与所述数据分片对应的至少一个属性描述信息,其中,所述属性描述信息包括数据迭代信息;
[0020]属性描述信息写入模块,用于将所述属性描述信息写入与所述数据分片对应的文件元信息中;
[0021]文件元信息处理模块,用于在接收到对至少一个目标数据分片的处理指示时,对与所述目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对所述目标数据分片的处理。
[0022]在第四方面,本发明实施例提供了一种垃圾文件的删除装置,包括:
[0023]第一文件列表获取单元,用于查询分布式全序存储系统中与各数据分片对应的文件元信息,获取第一文件列表,其中,所述文件元信息中存储有与数据分片对应的属性描述信息,且所述属性描述信息中包括有数据迭代信息;
[0024]第二文件列表获取单元,用于扫描与所述分布式全序存储系统对应的文件系统,获取第二文件列表;
[0025]待删除文件列表计算单元,用于计算所述第一文件列表与所述第二文件列表的差集,作为待删除文件列表;
[0026]数据文件删除单元,用于删除所述分布式全序存储系统中与所述待删除文件列表相匹配的数据文件;
[0027]所述第一文件列表获取单元具体用于:
[0028]获取所述分布式全序存储系统中与各数据分片对应的文件元信息作为待处理文件元信息;
[0029]根据各所述待处理文件元信息中的数据迭代信息以及文件存储位置信息,获取所述待处理文件元信息中包括的分裂文件元信息,和/或合并文件元信息,其中,所述分裂文件元信息具体包括经过分裂处理后的文件元信息,所述合并文件元信息具体包括经过合并处理后的文件元信息;
[0030]根据所述分裂文件元信息,和/或所述合并文件元信息,生成所述第一文件列表。
[0031]本发明实施例通过将数据分片的数据迭代信息写入与数据分片对应的文件元信息中的技术手段,实现了在接收到对目标数据分片的处理指示时,无需直接处理该目标数据分片中存储的数据文件,仅通过对与所述目标数据分片对应的文件元信息进行处理,即可完成对所述目标数据分片的处理的技术效果,无需对数据文件进行任何移动或修改,优化了现有的分布式全序存储系统中数据分片的处理机制,满足人们日益增长的便捷化、高效化的数据分片的处理需求。
【附图说明】
[0032]图1是本发明第一实施例的一种分布式全序存储系统中数据分片的处理方法的流程图;
[0033]图2是本发明第二实施例的一种分布式全序存储系统中数据分片的处理方法的流程图;
[0034]图3是本发明第三实施例的一种分布式全序存储系统中数据分片的处理方法的流程图;
[0035]图4是本发明实施例中所应用的分片元信息、文件元信息以及数据分片之间的关系不意图;
[0036]图5是本发明实施例中管理服务器以及分片服务器之间的信息交互示意图;
[0037]图6是本发明实施例中数据分片的分裂以及合并的实际耗时示意图;
[0038]图7是本发明第四实施例的一种垃圾文件的删除方法的流程图;
[0039]图8是本发明第四实施例的一种具体的垃圾文件的删除过程的流程图;
[0040]图9是本发明第五实施例的一种分布式全序存储系统中数据分片的处理装置的结构图;
[0041]图10是本发明第六实施例的一种垃圾文件的删除装置的结构图。
【具体实施方式】
[0042]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0043]第一实施例
[0044]图1为本发明第一实施例提供的一种分布式全序存储系统中数据分片的处理方法的流程图,本实施例的方法可以由分布式全序存储系统中数据分片的处理装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可集成于分布式全序存储系统中的分片服务器中,与分布式全序存储系统中的管理服务器配合使用。本实施例的方法具体包括:
[0045]110、在分布式全序存储系统生成全序数据分片的过程中,获取与所述数据分片对应的至少一个属性描述信息,其中,所述属性描述信息包括数据迭代信息。
[0046]如前所述,对于PB (petabyte,千万亿字节)以上的全序数据,仅通过单一服务器是很难将其完整存储下来的。因此需要使用分布式全序存储系统将全序数据进行数据分片后,存储于不同的分片服务器中。
[0047]在本实施例中,在分布式全序存储系统生成全序数据分片的过程中,获取与各个数据分片对应的包括有数据迭代信息的属性描述信息。
[0048]所述数据迭代信息具体用于标识其所对应的数据分片中所包括的全序数据的范围。相应的,所述数据迭代信息可以包括所述数据分片中存储的全序数据的起始数据标识(典型的,Key-Value中的Key值)以及结束数据标识;也可以包括所述数据分片中存储的全序数据的起始数据顺序号以及结束数据顺序号;还可以包括所述数据分片中存储的全序数据的起始数据标识以及所包括的全序数据的数目等,本实施例对此并不进行限制。
[0049]举例而言,
所述全序数据为按Key值从A?Z顺序排序的数据,分布式全序存储系统将该全序数据等分为两个数据分片,则针对上述三种情况:与第一数据分片对应的数据迭代信息可以为(A->M)与第二数据分片对应的数据迭代信息可以为(N->Z);或者与第一数据分片对应的数据迭代信息可以为(1_>13)与第二数据分片对应的数据迭代信息可以为(14->26);或者与第一数据分片对应的数据迭代信息可以为(A,13)与第二数据分片对应的数据迭代信息可以为(N,13)。
[0050]所述属性描述信息具体用于描述其所对应的数据分片的基本属性特征,其除了包括有数据迭代信息之外,还可以包括存储数据分片的物理地址、数据分片中存储文件的大小以及其它标志位信息等,本实施例对此并不进行限制。
[0051]120、将所述属性描述信息写入与所述数据分片对应的文件元信息中。
[0052]在本实施例中,所述文件元信息中具体存储有数据分片中的属性描述信息,该文件元信息一般与数据分片对应存储于分片服务器中。
[0053]130、在接收到对至少一个目标数据分片的处理指示时,对与所述目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对所述目标数据分片的处理。
[0054]如前所述,分布式全序存储系统中存储的全序数据文件中的数据是动态变化的,随着对数据的持续增删操作,各个数据分片的大小会发生变化,因此需要对较大的数据分片进行分裂,对较小的数据分片进行合并。
[0055]相应的,在本实施例中,管理服务器会根据各个数据分片的大小,定期向需要进行分裂或者合并的数据分片所在的分片服务器发送对应的处理指示,以使得所述分片服务器完成相应的分裂或者合并操作。其中,所述目标数据分片具体是指需要进行分裂或者合并的数据分片。
[0056]在本实施例中,由于文件元信息中存储有数据迭代信息,而该数据迭代信息中标识了其所对应的数据分片中所包括的全序数据的范围。此时,分片服务器无需通过实际操作目标数据分片的方式来完成对数据分片的分裂或者合并,而仅需通过对所述目标数据分片对应的文件元信息中的数据迭代信息进行相应的分裂或者合并,即可实现对所述目标数据分片的分裂或者合并。
[0057]典型的,在接收到对目标数据分片的分裂指示时,通过对与所述目标数据分片对应的文件元信息中的数据迭代信息进行分裂处理,生成与目标数据分片对应的至少两个文件元信息的方式,可以实现对所述目标数据分片的分裂处理;在接收到对至少两个目标数据分片的合并指示时,通过对与所述至少两个目标数据分片对应的至少两个文件元信息中的数据迭代信息进行合并处理,生成与该至少两个目标数据分片对应文件元信息的方式,可以实现对所述至少两个目标数据分片的合并处理。
[0058]本发明实施例通过将数据分片的数据迭代信息写入与数据分片对应的文件元信息中的技术手段,实现了在接收到对目标数据分片的处理指示时,无需直接处理该目标数据分片中存储的数据文件,仅通过对与所述目标数据分片对应的文件元信息进行处理,即可完成对所述目标数据分片的处理的技术效果,无需对数据文件进行任何移动或修改,优化了现有的分布式全序存储系统中数据分片的处理机制,满足人们日益增长的便捷化、高效化的数据分片的处理需求。
[0059]在上述实施例的基础上,所述属性描述信息还可以包括:生效标识信息,其中,所述生效标识信息用于标识所述数据迭代信息是否生效。生效与否,具体是指是否能够访问与所述数据迭代信息对应的数据分片上的数据。如果所述生效标识信息标识为不生效,则所述数据分片上的全部数据均能被访问;如果所述生效标识信息被标识为生效,则仅能访问所述数据分片上的部分数据。
[0060]举例而言,在生成一个数据分片之后,与该数据分片对应的第一文件元信息中包括两个属性描述信息,即:数据迭代信息以及生效标识信息。其中,所述数据迭代信息为(A_>G),所述生效标识信息被设置为“不生效”。相应的,通过第一文件元信息,可以访问该数据分片中的全部数据(A?G对应的数据);
[0061]在接收到对该数据分片的分裂指示后,分片服务器会将第一文件元信息分裂为两个文件元信息(第二文件元信息以及第三文件元信息),其中,第二文件元信息中包括的数据迭代信息为(A->C),第二文件元信息中的生效标识被设置为“生效”。相应的,通过第二文件元信息,仅可以访问该数据分片中的部分数据(A?C对应的数据)。
[0062]这样设置的原因是:在分片服务器中,使得数据生效需要增加CPU(CentralProcessing Unit,中央处理器)的消耗。因此,在不使用生效标识信息时,任何情况下均需将数据迭代信息标识为生效,这大大增加了 CPU的消耗。相应的,通过在属性描述信息中引入该生效标识信息,可以根据实际情况选择是否需要使数据迭代信息生效,这样做可以显著降低CPU的消耗,提高CPU的处理效率。
[0063]第二实施例
[0064]图2是本发明第二实施例的一种分布式全序存储系统中数据分片的处理方法的流程图。本实施例以上述实施例为基础进行优化,在本实施例中,将所述处理指示具体优化为对数据分片的分裂指示;相应的,将在接收到对至少一个目标数据分片的处理指示时,对与所述目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对所述目标数据分片的处理具体优化为:接收管理服务器发送的对目标数据分片的分裂指示;根据所述分裂指示,获取与所述目标数据分片对应的目标文件元信息;将所述目标文件元信息中的数据迭代信息进行分裂处理,生成至少两个分裂文件元信息;将分裂结果返回至所述管理服务器,以指示所述管理服务器根据所述分裂结果对相应的分片元信息进行修改;
[0065]同时,将所述目标文件元信息中的数据迭代信息进行分裂处理,生成至少两个分裂文件元信息具体优化为:在与所述目标数据分片对应的全序数据中,获取至少一个节点数据标识,其中,所述节点数据为位于所述全序数据中起点数据与终点数据之间的数据;根据所述目标文件元信息中的数据迭代信息中包括的起点数据标识、终点数据标识以及所述至少一个节点数据标识,生成至少两个分裂数据迭代信息;根据所述至少两个分裂数据迭代信息,生成至少两个分裂文件元信息。
[0066]相应的,本实施例的方法具体包括:
[0067]210、在分布式全序存储系统生成全序数据分片的过程中,获取与所述数据分片对应的至少一个属性描述信息。
[0068]220、将所述属性描述信息写入与所述数据分片对应的文件元信息中。
[0069]230、接收管理服务器发送的对目标数据分片的分裂指示。
[0070]在本实施例中,管理服务器发送的分裂指示中包括有需要进行分裂处理的目标数据分片的信息,且所述分裂指示用于指示分片服务器将目标数据分片分裂为至少两个数据分片。
[0071]240、根据所述分裂指示,获取与所述目标数据分片对应的目标文件元信息。
[0072]在本实施例中,分片服务器根据所述分裂指示中包括的目标数据分片的信息,可以获取与所述目标数据分片对应的目标文件元信息。
[0073]250、在与所述目标数据分片对应的全序数据中,获取至少一个节点数据标识,其中,所述节点数据为位于所述全序数据中起点数据与终点数据之间的数据。
[0074]在本实施例中,为了实现对目标数据分片的分裂处理,仅需要将与所述目标数据分片对应的目标文件元信息处理为至少两个文件元信息(后文统称为分裂文件元信息)即可。也即,将目标文件元信息中包括的数据迭代信息处理为至少两个数据迭代信息(后文统称为分裂数据迭代信息)即可。
[0075]举例而言,目标文件元信息中包括的数据迭代信息为(A->Z),通过该数据迭代信息以及与该迭代信息对应的全序数据(即Key值从A?Z的全序数据),可以生成(A_>M)以及(N->Z)这两个分裂数据迭代信息。相应的,可以生成分别包括(A->M)以及(N->Z)这两个分裂数据迭代信息的两个分裂文件元信息。
[0076]为了实现上述技术效果,首先需要在与所述目标数据分片对应的全序数据中,获取至少一个节点数据标识。其中,获取的所述节点数据标识,具体是用于与目标文件元信息中的数据迭代信息中包括的起点数据标识、终点数据标识一起,共同组成新的分裂数据迭代信息中包括的起点数据标识以及终点数据标识。
[0077]续前例,在与所述目标数据分片对应的Key值从A?Z的全序数据中,获取两个节点数据标识M和N,其中,M和N对应的节点数据为位于所述全序数据中起点数据与终点数据之间的数据。
[0078]260、根据所述目标文件元信息中的数据迭代信息中包括的起点数据标识、终点数据标识以及所述至少一个节点数据标识,生成至少两个分裂数据迭代信息。
[0079]续前例,根据所述目标文件元信息中的数据迭代信息中包括的起点数据标识A、终点数据标识Z、以及两个节点数据标识M和N,可以生成两个分裂数据迭代信息(A->M)以及(N->Z)。
[0080]270、根据所述至少两个分裂数据迭代信息,生成至少两个分裂文件元信息。
[0081]280、将分裂结果返回至所述管理服务器,以指示所述管理服务器根据所述分裂结果对相应的分片元信息进行修改。
[0082]一般来说,管理服务器用于存储并维护分片元信息,其中,分片元信息中主要存储有全序数据不同数据分片所在的分片服务器的信息。在本实施例中,由于对数据分片的分裂以及合并处理是通过对文件元信息的处理来实现的,而不是直接操作数据分片。因此,在本实施例中,需要在现有的分片元信息中存储对应的文件元信息
的信息。这样,当需要访问一个数据分片时,首先查找分片元信息,之后根据匹配的分片元信息找到对应的文件元信息,最后根据匹配的文件元信息查找到匹配的数据分片进行访问。
[0083]如上所述,当一个文件元信息分裂为至少两个分裂文件元信息之后,需要将分裂结果返回至所述管理服务器,以指示所述管理服务器根据所述分裂结果对相应的分片元信息进行修改。
[0084]本实施例的方法在接收到对目标数据分片的分裂指示时,无需直接分裂该目标数据分片中存储的数据文件,仅通过对与所述目标数据分片对应的文件元信息进行分裂处理,即可完成对所述目标数据分片进行分裂的技术效果,无需对数据文件进行任何移动或修改,优化了现有的分布式全序存储系统中数据分片的处理机制,满足人们日益增长的便捷化、高效化的数据分片的处理需求。
[0085]第三实施例
[0086]图3是本发明第三实施例的一种分布式全序存储系统中数据分片的处理方法的流程图。本实施例以上述实施例为基础进行优化,在本实施例中,将所述处理指示具体优化为对数据分片的合并指示;相应的,将在接收到对至少一个目标数据分片的处理指示时,对与所述目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对所述目标数据分片的处理具体优化为:接收管理服务器发送的对至少两个目标数据分片的合并指示;根据所述合并指示,获取与所述至少两个目标数据分片对应的至少两个目标文件元信息;将所述至少两个目标文件元信息中的数据迭代信息进行合并处理,生成合并文件元信息;将合并结果返回至所述管理服务器,以指示所述管理服务器根据所述合并结果对相应的分片元信息进行修改;
[0087]同时,将所述至少两个目标文件元信息中的数据迭代信息进行合并处理,生成合并文件元信息具体优化为:获取所述至少两个目标文件元信息中包括的数据迭代信息;根据所述至少两个数据迭代信息中包括的各起点数据标识、各终点数据标识以及与所述目标数据分片对应的全序数据的排列顺序,确定合并起点数据标识以及合并终点数据标识;根据所述合并起点数据标识以及所述合并终点数据标识,生成合并数据迭代信息;根据所述合并数据迭代信息,生成合并文件元信息。
[0088]相应的,本实施例的方法具体包括:
[0089]310、在分布式全序存储系统生成全序数据分片的过程中,获取与所述数据分片对应的至少一个属性描述信息。
[0090]320、将所述属性描述信息写入与所述数据分片对应的文件元信息中。
[0091]330、接收管理服务器发送的对至少两个目标数据分片的合并指示。
[0092]在本实施例中,管理服务器发送的合并指示中包括有需要进行合并处理的至少两个目标数据分片的信息,且所述合并指示用于指示分片服务器将所述至少两个目标数据分片合并为一个数据分片。
[0093]340、根据所述合并指示,获取与所述至少两个目标数据分片对应的至少两个目标文件元信息。
[0094]在本实施例中,分片服务器根据所述合并指示中包括的至少两个目标数据分片的信息,可以获取与所述目标数据分片对应的至少两个目标文件元信息。
[0095]350、获取所述至少两个目标文件元信息中包括的数据迭代信息。
[0096]360、根据所述至少两个数据迭代信息中包括的各起点数据标识、各终点数据标识以及与所述目标数据分片对应的全序数据的排列顺序,确定合并起点数据标识以及合并终点数据标识。
[0097]370、根据所述合并起点数据标识以及所述合并终点数据标识,生成合并数据迭代信息。
[0098]在一个具体的例子中,获取的所述至少两个目标文件元信息中包括的数据迭代信息分别为(A->M)以及(N->Z),这两个数据迭代信息中所包括的数据标识分别为A、M、N以及Z,与数据分片对应的全序数据的排列顺序为按照Key值从A?Z的顺序进行排列,因此,可以确定合并起点数据标识为A,合并终点标识位Z,相应的,所生成的合并数据迭代信息为(A->Z) ?
[0099]380、根据所述合并数据迭代信息,生成合并文件元信息。
[0100]390、将合并结果返回至所述管理服务器,以指示所述管理服务器根据所述合并结果对相应的分片元信息进行修改。
[0101]本实施例的方法在接收到对至少两个目标数据分片的合并指示时,无需直接合并该至少两个目标数据分片中存储的数据文件,仅通过对与所述至少两个目标数据分片对应的文件元信息进行合并处理,即可完成对所述目标数据分片进行合并的技术效果,无需对数据文件进行任何移动或修改,优化了现有的分布式全序存储系统中数据分片的处理机制,满足人们日益增长的便捷化、高效化的数据分片的处理需求。
[0102]通过第二实施例以及第三实施例可以清楚的看出:本实施例的方法实质上是在分片元信息与数据分片之间引入了文件元数据层。其中,该文件元数据层中存储的文件元信息由于只包括有数据分片的属性信息,其物理实现是一个很小的文件,通常只有几兆大小。在引入文件元数据层后,即可实现将数据分片的分裂或者合并操作与实际的数据分片隔离,完全成为对文件元信息的操作,而文件元信息又是非常小的的文件,对其的处理速度会非常快。
[0103]在图4中示出了一种分片元信息、文件元信息以及数据分片之间的关系示意图。如图4所示,分片元信息存储于分片元信息层,文件元信息存储于文件元数据层,数据分片存储于文件系统层。其中,分片元信息层一般位于管理服务器中,而文件元数据层以及文件系统层一般位于分片服务器中。在分片元信息中存储有一个或者多个文件元信息的信息,在文件元信息中存储有数据分片的信息。文件元信息与数据分片之间并不是一一对应的,一个数据分片可以对应一个或者多个文件元信息(例如,一个数据分片经历了多次分裂)。通过上述结构关系,可以实现将数据分片的分裂转化为文件元信息的分裂,将数据分片的合并转化为文件元信息的合并。真正的使分裂与合并成为了一对可逆操作,且与真实的数据分片无关。在整个操作过程中,数据分片没有发生任何移动或修改。
[0104]在图5中示出了本发明实施例中管理服务器以及分片服务器之间的信息交互示意图。如图5所示,管理服务器向分片服务器发起分裂/合并操作指令,分片服务器根据接收到的操作指令,升级对应的文件元信息,在升级成功后,将操作成功的结果返回给管理服务器,之后管理服务器根据上述升级结果,修改对应的分片元信息。
[0105]应用本技术方案实现的分布式全序存储系统可以实现在线的分片自动分裂与合并,获得的主要有益效果如下:
[0106]I)系统可用性:所有操作完全在线完成,每次操作用时小于0.5秒,服务基本无感知,对于可用性要求高的系统非常适用,其中,在图6示出了本发明实施例中数据分片的分裂/合并的实际耗时示意图;
[0107]2)数据灵活:对输入数据分布可以完全无要求,系统可以完全自适应通过分裂、合并来调整分片;
[0108]3)资源消耗:分裂与合并操作没有给服务器集群带来额外的带宽、计算、存储等资源压力,资源消耗约等于0,这对于数据规模、集群规模大的场景非常重要;
[0109]4)系统负载均衡、热扩容:通过分裂/合并技术可以使整个系统的所有分片维持在设计的大小,这为系统的负载均衡打下了一个非常好的基础。本实施例的方法与分片迀移结合实现的热扩容,使系统的扩容非常简单快速,服务无感知。
[0110]基于上述有益效果,本实施例的方法可以应用于抓取服务的链接库、网页库以及知识图谱的实体库等。
[0111]第四实施例
[0112]图7是本发明第四实施例的一种垃圾文件的删除方法的流程图。本实施例的方法可以由垃圾文件的删除装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可集成于分布式全序存储系统中的管理服务器中,与分布式全序存储系统中的分片服务器配合使用。本实施例的方法具体包括:
[0113]710、获取分布式全序存储系统中与各数据分片对应的文件元信息作为待处理文件元信息,其中,所述文件元信息中存储有与数据分片对应的属性描述信息,且所述属性描述信息中包括有数据迭代信息。
[0114]一般来说,在多个分片服务器的场景下,垃圾文件的生成速度是非常快的,能否在实现分裂/合并的同时处理好垃圾文件的收集也非常关键的。通过第一实施例至第三实施例可以看出:由于文件元数据层将分片元信息层与文件系统层隔离开来,而一个数据分片可能对应于多个文件元信息,不同的文件元信息可能存在于不同的分片服务器上。因此,在一个分片服务器中确定的垃圾文件,可能还会被其他的分片服务器所使用,因此,直接在一个单独的分片服务器中完成垃圾文件的删除操作,很有可能导致有用文件的误删除,因此,需要通过管理服务器来统一调度各个分片服务器,来完成垃圾文件的删除操作。
[0115]在本实施例中,查询分布式全序存储系统中与各数据分片对应的文件元信息,获取第一文件列表可以包括:查询各个分片服务器中存储的全部文件元信息,以获取对应的第一文件列表。
[0116]优选的,可以根据文件元信息中包括的文件存储位置信息,生成所述第一文件列表。
[0117]但是,考虑到各数据分片对应的文件元信息的数据量非常巨大,因此在根据全部文件元信息获取第一文件列表时,对CPU的消耗较大且处理速度慢。相应的,在本实施例的一个优选的实施方式中,查询分布式全序存储系统中与各数据分片对应的文件元信息,获取第一文件列表还可以包括:
[0118]获取所述分布式全序存储系统中与各数据分片对应的文件元信息作为待处理文件元信息;根据各所述待处理文件元信息中的数据迭代信息以及文件存储位置信息,获取所述待处理文件元信息中包括的分裂文件
元信息,和/或合并文件元信息,其中,所述分裂文件元信息具体包括经过分裂处理后的文件元信息,所述合并文件元信息具体包括经过合并处理后的文件元信息;根据所述分裂文件元信息,和/或所述合并文件元信息,生成所述第一文件列表。
[0119]这样设置的原因是,根据第一实施例和第三实施例可以看出:如果文件元信息不经过分裂或者合并操作,其所对应的数据分片只能存储于一个分片服务器中,对该文件元信息对应的数据分片进行删除处理,不会造成数据分片的误删除,只有在文件元信息经过分裂或者合并操作后,其所对应的数据分片才可能存储于不同的分片服务器中,因此,只需获取各文件元信息中包括的分裂文件元信息以及合并文件元信息来生成所述第一文件列表即可,这样设置可以大大降低CPU消耗,提高CPU处理速度。
[0120]720、扫描与所述分布式全序存储系统对应的文件系统,获取第二文件列表。
[0121]730、计算所述第一文件列表与所述第二文件列表的差集,作为待删除文件列表。
[0122]740、删除所述分布式全序存储系统中与所述待删除文件列表相匹配的数据文件。
[0123]本实施例的方法通过查询分布式全序存储系统中与各数据分片对应的文件元信息,获取第一文件列表,扫描与所述分布式全序存储系统对应的文件系统,获取第二文件列表;计算所述第一文件列表与所述第二文件列表的差集,作为待删除文件列表;删除所述分布式全序存储系统中与所述待删除文件列表相匹配的数据分片的技术手段,可以在引入文件元数据层的基础上,防止了数据文件的误删除,另外通过根据分裂文件元信息以及合并文件元信息来获取第一文件列表的方式,可以大大降低垃圾文件的删除时间。
[0124]在图8中示出了一种具体的垃圾文件删除过程的流程图,如图8所示,所述方法包括:
[0125]810、向分片服务器查询正在使用的文件集合a。
[0126]820、扫描文件系统,获取当前文件系统中所有文件的集合b。
[0127]830、等待接收到所有文件数据。
[0128]840、判断对文件信息进行校验的结果是否为文件完整:若是,执行850 ;否则,返回执行810和820。
[0129]850、将b、a集合做差集,得出垃圾文件集合。
[0130]860、从文件系统中删除垃圾文件,本次垃圾收集完成。
[0131]870、触发下一次垃圾收集的定时器后,返回执行810和820。
[0132]第五实施例
[0133]在图9中示出了本发明第五实施例的一种分布式全序存储系统中数据分片的处理装置。如图9所示,所述装置包括:
[0134]属性描述信息获取模块91,用于在分布式全序存储系统生成全序数据分片的过程中,获取与所述数据分片对应的至少一个属性描述信息,其中,所述属性描述信息包括数据迭代信息。
[0135]属性描述信息写入模块92,用于将所述属性描述信息写入与所述数据分片对应的文件元信息中。
[0136]文件元信息处理模块93,用于在接收到对至少一个目标数据分片的处理指示时,对与所述目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对所述目标数据分片的处理。
[0137]本发明实施例通过将数据分片的数据迭代信息写入与数据分片对应的文件元信息中的技术手段,实现了在接收到对目标数据分片的处理指示时,无需直接处理该目标数据分片中存储的数据文件,仅通过对与所述目标数据分片对应的文件元信息进行处理,即可完成对所述目标数据分片的处理的技术效果,无需对数据文件进行任何移动或修改,优化了现有的分布式全序存储系统中数据分片的处理机制,满足人们日益增长的便捷化、高效化的数据分片的处理需求。
[0138]在上述各实施例的基础上,所述数据迭代信息可以包括:所述数据分片中存储的全序数据的起始数据标识以及结束数据标识。
[0139]在上述各实施例的基础上,所述处理指示可以包括对数据分片的分裂指示;
[0140]相应的,所述文件元信息处理模块具体可以包括:
[0141]分裂指示接收单元,用于接收管理服务器发送的对目标数据分片的分裂指示;
[0142]目标文件元信息获取单元,用于根据所述分裂指示,获取与所述目标数据分片对应的目标文件元信息;
[0143]分裂处理单元,用于将所述目标文件元信息中的数据迭代信息进行分裂处理,生成至少两个分裂文件元信息;
[0144]分裂结果返回单元,用于将分裂结果返回至所述管理服务器,以指示所述管理服务器根据所述分裂结果对相应的分片元信息进行修改。
[0145]在上述各实施例的基础上,所述分裂处理单元进一步具体可以用于:
[0146]在与所述目标数据分片对应的全序数据中,获取至少一个节点数据标识,其中,所述节点数据为位于所述全序数据中起点数据与终点数据之间的数据;
[0147]根据所述目标文件元信息中的数据迭代信息中包括的起点数据标识、终点数据标识以及所述至少一个节点数据标识,生成至少两个分裂数据迭代信息;
[0148]根据所述至少两个分裂数据迭代信息,生成至少两个分裂文件元信息。
[0149]在上述各实施例的基础上,所述处理指示可以包括对数据分片的合并指示;
[0150]相应的,所述文件元信息处理模块具体可以包括:
[0151]合并指示接收单元,用于接收管理服务器发送的对至少两个目标数据分片的合并指示;
[0152]目标文件元信息获取单元,用于根据所述合并指示,获取与所述至少两个目标数据分片对应的至少两个目标文件元信息;
[0153]合并处理单元,用于将所述至少两个目标文件元信息中的数据迭代信息进行合并处理,生成合并文件元信息;
[0154]合并结果返回单元,用于将合并结果返回至所述管理服务器,以指示所述管理服务器根据所述合并结果对相应的分片元信息进行修改。
[0155]在上述各实施例的基础上,所述合并处理单元进一步具体可以用于:
[0156]获取所述至少两个目标文件元信息中包括的数据迭代信息;
[0157]根据所述至少两个数据迭代信息中包括的各起点数据标识、各终点数据标识以及与所述目标数据分片对应的全序数据的排列顺序,确定合并起点数据标识以及合并终点数据标识;
[0158]根据所述合并起点数据标识以及所述合并终点数据标识,生成合并数据迭代信息;
[0159]根据所述合并数据迭代信息,生成合并文件元信息。
[0160]本发明实施例所提供的分布式全序存储系统中数据分片的处理装置可用于执行本发明任意实施例提供的分布式全序存储系统中数据分片的处理方法,具备相应的功能模块,实现相同的有益效果。
[0161]第六实施例
[0162]在图10中示出了本发明第六实施例的一种垃圾文件的删除装置。如图10所示,所述装置包括:
[0163]第一文件列表获取单元101,用于查询分布式全序存储系统中与各数据分片对应的文件元信息,获取第一文件列表,其中,所述文件元信息中存储有与数据分片对应的属性描述信息,其所述属性描述信息中包括有数据迭代信息;
[0164]第二文件列表获取单元102,用于扫描与所述分布式全序存储系统对应的文件系统,获取第二文件列表;
[0165]待删除文件列表计算单元103,用于计算所述第一文件列表与所述第二文件列表的差集,作为待删除文件列表;
[0166]数据文件删除单元104,用于删除所述分布式全序存储系统中与所述待删除文件列表相匹配的数据文件;
[0167]所述第一文件列表获取101单元具体可以用于:
[0168]获取所述分布式全序存储系统中与各数据分片对应的文件元信息作为待处理文件元信息;
[0169]根据各所述待处理文件元信息中的数据迭代信息以及文件存储位置信息,获取所述待处理文件元信息中包括的分裂文件元信息,和/或合并文件元信息,其中,所述分裂文件元信息具体包括经过分裂处理后的文件元信息,所述合并文件元信息具体包括经过合并处理后的文件元信息;
[0170]根据所述分裂文件元信息,和/或所述合并文件元信息,生成所述第一文件列表。
[0171]本实施例的方法通过查询分布式全序存储系统中与各数据分片对应的文件元信息,获取第一文件列表,扫描与所述分布式全序存储系统对应的文件系统,获取第二文件列表;计算所述第一文件列表与所述第二文件列表的差集,作为待删除文件列表;删除所述分布式全序存储系统中与所述待删除文件列表相匹配的数据文件的技术手段,可以在引入文件元数据层的基础上,防止了数据文件的误删除,另外通过根据分裂文件元信息以及合并文件元信息来获取第一文件列表的方式,可以大大降低垃圾文件的删除时间。
[0172]本发明实施例所提供的垃圾文件的删除装置可用于执行本发明任意实施例提供的垃圾文件的删除方法,具备相应的功能模块,实现相同的有益效果。
[0173]显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以通过如上所述的分片服务器以及管理服务器来实施。可选地,本发明实施例可以用计算机装置可执行的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
[0174]以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人
员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种分布式全序存储系统中数据分片的处理方法,其特征在于,包括: 在分布式全序存储系统生成全序数据分片的过程中,获取与所述数据分片对应的至少一个属性描述信息,其中,所述属性描述信息包括数据迭代信息; 将所述属性描述信息写入与所述数据分片对应的文件元信息中; 在接收到对至少一个目标数据分片的处理指示时,对与所述目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对所述目标数据分片的处理。2.根据权利要求1所述的方法,其特征在于,所述数据迭代信息包括:所述数据分片中存储的全序数据的起始数据标识以及结束数据标识。3.根据权利要求2所述的方法,其特征在于,所述处理指示包括对数据分片的分裂指示; 相应的,在接收到对至少一个目标数据分片的处理指示时,对与所述目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对所述目标数据分片的处理包括: 接收管理服务器发送的对目标数据分片的分裂指示; 根据所述分裂指示,获取与所述目标数据分片对应的目标文件元信息; 将所述目标文件元信息中的数据迭代信息进行分裂处理,生成至少两个分裂文件元信息; 将分裂结果返回至所述管理服务器,以指示所述管理服务器根据所述分裂结果对相应的分片元信息进行修改。4.根据权利要求3所述的方法,其特征在于,将所述目标文件元信息中的数据迭代信息进行分裂处理,生成至少两个分裂文件元信息包括: 在与所述目标数据分片对应的全序数据中,获取至少一个节点数据标识,其中,所述节点数据为位于所述全序数据中起点数据与终点数据之间的数据; 根据所述目标文件元信息中的数据迭代信息中包括的起点数据标识、终点数据标识以及所述至少一个节点数据标识,生成至少两个分裂数据迭代信息; 根据所述至少两个分裂数据迭代信息,生成至少两个分裂文件元信息。5.根据权利要求2所述的方法,其特征在于,所述处理指示包括对数据分片的合并指示; 相应的,在接收到对至少一个目标数据分片的处理指示时,对与所述目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对所述目标数据分片的处理包括:接收管理服务器发送的对至少两个目标数据分片的合并指示; 根据所述合并指示,获取与所述至少两个目标数据分片对应的至少两个目标文件元信息; 将所述至少两个目标文件元信息中的数据迭代信息进行合并处理,生成合并文件元信息; 将合并结果返回至所述管理服务器,以指示所述管理服务器根据所述合并结果对相应的分片元信息进行修改。6.根据权利要求5所述的方法,其特征在于,将所述至少两个目标文件元信息中的数据迭代信息进行合并处理,生成合并文件元信息包括: 获取所述至少两个目标文件元信息中包括的数据迭代信息; 根据所述至少两个数据迭代信息中包括的各起点数据标识、各终点数据标识以及与所述目标数据分片对应的全序数据的排列顺序,确定合并起点数据标识以及合并终点数据标识; 根据所述合并起点数据标识以及所述合并终点数据标识,生成合并数据迭代信息; 根据所述合并数据迭代信息,生成合并文件元信息。7.根据权利要求1所述的方法,其特征在于,所述属性描述信息还包括:生效标识信息,其中,所述生效标识信息用于标识所述数据迭代信息是否生效。8.一种垃圾文件的删除方法,其特征在于,包括: 查询分布式全序存储系统中与各数据分片对应的文件元信息,获取第一文件列表,其中,所述文件元信息中存储有与数据分片对应的属性描述信息,且所述属性描述信息中包括有数据迭代信息; 扫描与所述分布式全序存储系统对应的文件系统,获取第二文件列表; 计算所述第一文件列表与所述第二文件列表的差集,作为待删除文件列表; 删除所述分布式全序存储系统中与所述待删除文件列表相匹配的数据文件。9.根据权利要求8所述的方法,其特征在于,查询分布式全序存储系统中与各数据分片对应的文件元信息,获取第一文件列表包括: 获取所述分布式全序存储系统中与各数据分片对应的文件元信息作为待处理文件元信息; 根据各所述待处理文件元信息中的数据迭代信息以及文件存储位置信息,获取所述待处理文件元信息中包括的分裂文件元信息,和/或合并文件元信息,其中,所述分裂文件元信息具体包括经过分裂处理后的文件元信息,所述合并文件元信息具体包括经过合并处理后的文件元信息; 根据所述分裂文件元信息,和/或所述合并文件元信息,生成所述第一文件列表。10.一种分布式全序存储系统中数据分片的处理装置,其特征在于,包括: 属性描述信息获取模块,用于在分布式全序存储系统生成全序数据分片的过程中,获取与所述数据分片对应的至少一个属性描述信息,其中,所述属性描述信息包括数据迭代信息; 属性描述信息写入模块,用于将所述属性描述信息写入与所述数据分片对应的文件元信息中; 文件元信息处理模块,用于在接收到对至少一个目标数据分片的处理指示时,对与所述目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对所述目标数据分片的处理。11.根据权利要求10所述的装置,其特征在于,所述数据迭代信息包括:所述数据分片中存储的全序数据的起始数据标识以及结束数据标识。12.根据权利要求11所述的装置,其特征在于,所述处理指示包括对数据分片的分裂指示; 相应的,所述文件元信息处理模块具体包括: 分裂指示接收单元,用于接收管理服务器发送的对目标数据分片的分裂指示; 目标文件元信息获取单元,用于根据所述分裂指示,获取与所述目标数据分片对应的目标文件元信息; 分裂处理单元,用于将所述目标文件元信息中的数据迭代信息进行分裂处理,生成至少两个分裂文件元信息; 分裂结果返回单元,用于将分裂结果返回至所述管理服务器,以指示所述管理服务器根据所述分裂结果对相应的分片元信息进行修改。13.根据权利要求12所述的装置,其特征在于,所述分裂处理单元进一步具体用于: 在与所述目标数据分片对应的全序数据中,获取至少一个节点数据标识,其中,所述节点数据为位于所述全序数据中起点数据与终点数据之间的数据; 根据所述目标文件元信息中的数据迭代信息中包括的起点数据标识、终点数据标识以及所述至少一个节点数据标识,生成至少两个分裂数据迭代信息; 根据所述至少两个分裂数据迭代信息,生成至少两个分裂文件元信息。14.根据权利要求11所述的装置,其特征在于,所述处理指示包括对数据分片的合并指示; 相应的,所述文件元信息处理模块具体包括: 合并指示接收单元,用于接收管理服务器发送的对至少两个目标数据分片的合并指示; 目标文件元信息获取单元,用于根据所述合并指示,获取与所述至少两个目标数据分片对应的至少两个目标文件元信息; 合并处理单元,用于将所述至少两个目标文件元信息中的数据迭代信息进行合并处理,生成合并文件元信息; 合并结果返回单元,用于将合并结果返回至所述管理服务器,以指示所述管理服务器根据所述合并结果对相应的分片元信息进行修改。15.根据权利要求14所述的装置,其特征在于,所述合并处理单元进一步具体用于: 获取所述至少两个目标文件元信息中包括的数据迭代信息; 根据所述至少两个数据迭代信息中包括的各起点数据标识、各终点数据标识以及与所述目标数据分片对应的全序数据的排列顺序,确定合并起点数据标识以及合并终点数据标识; 根据所述合并起点数据标识以及所述合并终点数据标识,生成合并数据迭代信息; 根据所述合并数据迭代信息,生成合并文件元信息。16.一种垃圾文件的删除装置,其特征在于,包括: 第一文件列表获取单元,用于查询分布式全序存储系统中与各数据分片对应的文件元信息,获取第一文件列表,其中,所述文件元信息中存储有与数据分片对应的属性描述信息,且所述属性描述信息中包括有数据迭代信息; 第二文件列表获取单元,用于扫描与所述分布式全序存储系统对应的文件系统,获取第二文件列表; 待删除文件列表计算单元,用于计算所述第一文件列表与所述第二文件列表的差集,作为待删除文件列表; 数据文件删除单元,用于删除所述分布式全序存储系统中与所述待删除文件列表相匹配的数据文件; 所述第一文件列表获取单元具体用于: 获取所述分布式全序存储系统中与各数据分片对应的文件元信息作为待处理文件元信息; 根据各所述待处理文件元信息中的数据迭代信息以及文件存储位置信息,获取所述待处理文件元信息中包括的分裂文件元信息,和/或合并文件元信息,其中,所述分裂文件元信息具体包括经过分裂处理后的文件元信息,所述合并文件元信息具体包括经过合并处理后的文件元信息; 根据所述分裂文件元信息,和/或所述合并文件元信息,生成所述第一文件列表。
【专利摘要】本发明实施例公开了一种数据分片的处理以及垃圾文件的删除方法和装置。数据分片的处理方法包括:在分布式全序存储系统生成全序数据分片的过程中,获取与数据分片对应的至少一个属性描述信息,其中,属性描述信息包括数据迭代信息;将属性描述信息写入与数据分片对应的文件元信息中;在接收到对至少一个目标数据分片的处理指示时,对与目标数据分片对应的文件元信息中的数据迭代信息进行处理,以实现对目标数据分片的处理。本发明的技术方案实现了无需对数据文件进行任何移动或修改,即可完成对所述目标数据分片进行处理的技术效果,优化了现有的分布式全序存储系统中数据分片的处理机制,满足人们日益增长的便捷化、高效化的数据分片的处理需求。
【IPC分类】G06F17/30
【公开号】CN104881466
【申请号】CN201510271710
【发明人】徐佩林, 颜世光, 覃安, 李康, 梁栋
【申请人】百度在线网络技术(北京)有限公司
【公开日】2015年9月2日
【申请日】2015年5月25日
转载请注明原文地址:https://www.famiwei.com/read-8138609.html