一种大规模时序数据的存储管理方法

文档序号:6340317阅读:212来源:国知局
专利名称:一种大规模时序数据的存储管理方法
技术领域
本发明涉及一种分布式数据存储管理系统,尤其涉及一种在分布式数据存储管理 系统中的大规模时序数据的存储管理方法。
背景技术
在一类应用业务中,产生和累积的数据量特别巨大,并且这些数据随着时间的推 移在不断膨胀,产生数据的速度随着业务的发展也在不断提高。例如电信业务CDR(Call Detail Record)数据、物联网传感器数据、金融交易数据、互联网日志数据等。这些应用业 务中产生的数据,常常需要保存相当长一段时间(如最近6个月),以满足业务所需的对数据 的查询、分析处理等要求。这类数据一般具有下列特点(1)数据规模特别巨大,甚至达到 几百TB或PB级;(2)数据是时间序列数据,按照时间顺序产生,并有时间标签;(3)数据具 有一定的时效性,过期的数据一般会被丢弃或备份到其他永久介质,并从数据存储管理系 统中删除。
为了存储和管理上述的大规模数据,目前一般采用大规模的分布式数据存储管理 系统,如分布式数据库系统,并行数据库系统、分布式Key-Value存储系统等。其中的无 共享(amred-nothing)模型已被证实在管理大规模数据方面的优势。在这种大规模分 布式数据存储管理系统中,通常将数据按照某种规则,如按特定属性字段(Key)的散列值 (HASH)或顺序分段(Range)进行分区(Partitioning或Siarding),将数据分布地存储在 多个不同的数据节点上。对数据查询或分析处理时,可以访问特定的数据分区也可以对多 个数据分区并行处理,以提高效率。另外,为了保证数据存储的可靠性,通常将数据备份存 储在多个节点上,这样当某节点故障时,其他备份节点可以继续提供服务。一种典型的分布 式数据存储管理系统拓扑结构,数据节点被组织成一个DHT(Distributed Hash Table)环, 来分布地存储不同分区的数据并提供自动备份功能。为了维护系统的长期有效运行,如负 载均衡,特别是因系统扩容而增加节点,或因业务收缩而减少节点,都需要改变数据的原有 分区规则,如分区数量、每个分区的Key空间范围及其对应的存储节点和备份节点。在这种 情况下,通常的做法是将数据按照新的分区规则重新划分,并在多个节点间迁移数据,以保 证重新分区后先前存储的数据仍然可以被有效访问,并达到负载均衡。但这种维护方式往 往需要相当长的时间来离线迁移数据,并需要临时关闭整个系统的运行,其时间成本,及其 对系统可用性的影响,对于对可用性要求较高的应用,不具有可行性。虽然所述的典型的 DHT结构的分布式数据存储管理系统可以将因重新分区而需迁移数据的节点数降到只影响 DHT环上相邻的少数节点,但因为每个节点上存储的数据量仍然很大(如几TB),其迁移时 间仍然很长,对相关节点性能的影响很大,使得系统在此阶段无法正常提供服务。而且如果 新的分区规则考虑负载均衡,受影响并需迁移数据的节点将可能覆盖所有节点。发明内容
为了解决现有技术存在的不足,本发明提供一种大规模时序数据的存储管理方法,该方法可以在系统数据分区规则变更时避免大量的数据迁移,不影响系统节点服务性 能,实现系统数据分区的平滑变更,使分布式数据存储管理系统可以持续提供服务。
为实现上述目的,本发明提供的大规模时序数据的存储管理方法,该方法包括以 下步骤配置和部署分布式数据存储管理系统的初始分区和拓扑结构; 预修改分区规则,增加新的分区版本; 新分区版本上线;逐渐淘汰删除旧分区版本的数据直到完全删除旧分区版本及其数据。
其中,所述配置和部署分布式数据存储管理系统的初始分区和拓扑结构是根据初 始的分区规则,将数据按照某个属性字段的散列值或顺序分段进行分区,并将数据分布地 存储在所述分布式数据存储管理系统的数据节点上。
其中,所述预修改分区规则,增加新的分区版本的步骤是在分布式数据存储管理 系统中,设定新的分区规则,增加新的分区版本,并设定新的分区版本对未来特定时间以后 的数据生效,使新的分区版本暂时处于空闲状态。
其中,所述新分区版本上线的步骤是新产生的数据的时间标签和新的分区版本的 时效相符,则按照新的分区版本将数据分布存储在所有数据节点上。
其中,所述数据的时间标签和新产生的数据的时间标签为数据产生的时间点。
其中,所述按照新的分区版本将数据分布存储在所有数据节点上的步骤进一步包 括新增的数据节点只存取时间标签和新分区版本的时效相符的新数据;原有的数据节点 同时存取符合新旧分区版本的数据。
其中,在分区变更后,不迁移原有分区版本下存储的数据。
其中,所述逐渐淘汰删除旧分区版本的数据直到完全删除旧分区版本及其数据的 步骤,进一步包括以下步骤根据数据的时间标签和分区版本的时效,逐渐淘汰删除符合旧 分区版本的数据,直到完全删除符合旧分区版本的数据;淘汰删除旧的分区版本。
其中,所述方法进一步包括继续修改分区规则,增加多个分区版本,并根据数据的 时间标签和分区版本的时效存取数据。
其中,所述修改分区规则,包括修改原有分区规则中的个别分区,增加或减少分区 数量,以及修改数据空间上的所有分区或分区算法。
本发明的大规模时序数据的存储管理方法中,分区版本是按时间顺序的,每当系 统的分区规则变更时,就产生新的分区版本,而旧的分区版本不会被立刻删除,在旧分区版 本下所存储和管理的数据也不会按照新分区版本进行迁移。存取数据时系统将根据数据产 生的时间点(时间标签)选择不同的分区版本来访问相应的数据节点。同时由于数据的时 效性,随着时间的推移,过期的数据自然会被系统按固有的淘汰规则清理,旧的分区版本也 会被逐渐淘汰。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的 内容和实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中图1为根据本发明的大规模时序数据的存储管理方法流程图;图2为根据本发明的存储管理方法在分布式数据存储管理系统中由增加数据节点引 起的数据分区规则变更的维护过程示意图;图3为根据本发明的存储管理方法在一种典型的节点被组织成DHT环的分布式数据存 储管理系统中分区规则变更的维护过程示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的实施例 仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的大规模时序数据的存储管理方法流程图,下面将参考图1,对 本发明的大规模时序数据的存储管理方法进行详细描述。
首先,在步骤101,配置和部署分布式数据存储管理系统的初始分区和拓扑结构。 假设系统初始配置和拓扑结构中,存在一种分区版本A,在该分区版本A情况下,系统可以 正常对数据进行分区,并可正常存取数据。
在步骤102,预修改系统的分区规则,增加分区版本,设定新的分区版本对未来特 定时间以后的数据生效。预修改系统的分区规则,即在系统中增加一个新的分区版本B,并 且该分区版本B只对未来特定时间以后产生的数据生效。在这种情况下,原有的分区版本 A仍然继续服务原有和当前数据的存取,新增加的新分区版本B暂时处于空闲状态。
在步骤103,随着时间的推移到达特定的时间,适用于新分区版本的数据开始使用 新的分区版本存取数据,同时继续使用旧分区版本存取旧的数据。新产生的数据的时间标 签开始适用于新的分区版本B,并按照新的分区版本B进行存取。此时系统中存在两个分区 版本,A和B。其中旧的分区版本A匹配的数据并不会被迁移,仍然按照分区版本A进行存 取。新的分区版本B匹配的数据按照分区版本B进行存取。
在步骤104,过期的数据被逐渐淘汰。由于数据的时效性,随着时间的推移,过期的 数据(如6个月前)被淘汰,并从分布式数据存储管理系统中删除。旧的分区版本A匹配 的数据逐渐被淘汰删除。
在步骤105,如果所有适用于旧分区版本的数据都被过期淘汰,则旧的分区版本也 可以被淘汰删除。随着时间的继续推移,所有适用于旧分区版本A的数据都被淘汰删除,则 分区版本A也不再有效,可以被淘汰删除。至此,系统中仅剩下分区版本B及其匹配的数 据。
在步骤106,如果要继续修改分区规则,即继续增加新的分区版本,则从步骤102 开始新一轮上述流程。需要指出的是,每次修改分区规则并不需要等到前一轮的上述过程 走到步骤105。系统中可能会累积更多的分区版本,都按照特定的时间范围存取数据。
所述的修改分区规则,包括修改原有分区中的个别分区,增加或减少分区数量,以 及修改数据空间上的所有分区或分区算法。
在分布式数据存储和管理系统中,通常需要根据数据量的增加对系统进行扩容, 即增加数据节点,增加节点的同时需要变更数据的分区规则。
图2为根据本发明的存储管理方法在分布式数据存储管理系统中由增加数据节 点引起的数据分区规则变更的维护过程示意图,如图2所示,一个分布式数据存储管理 系统在“初始阶段” 210,包含6个数据节点,初始的分区规则是将数据按照某个属性字段(Key)的散列值(HASH)或顺序分段(Range)进行分区(Partitioning或Siarding),并将 数据分布地存储在这6个数据节点上。设该分区版本为A。存取数据时,根据分区版本A路 由访问对应的数据节点。
随着数据量的增加,当前的6个数据节点已经无法满足要求,拟增加两个新数据 节点221。需要对集群配置进行预修改,例如把某两个原有的分区段拆分并分配给新加入 的节点;或者考虑负载均衡,调整整个Key空间分区段的划分,将划分好的分区段分布地存 储在8个数据节点上。通过增加一个新的分区版本(设为B),并指定该分区版本B只对未来 某个时刻以后的数据生效,系统进入“预修改/新增分区版本阶段” 220,在该阶段,新增加 的两个数据节点221虽然已启动,但还未正式开始存取数据,暂处于空闲状态。
随着时间的推移,系统进入“新分区版本上线阶段” 230。新产生的数据的时间标 签和新的分区版本B的时效相符,则按照新的分区版本B将数据分布存储在现有的8个数 据节点上。在该阶段,由于旧的数据还未被完全淘汰,两个分区版本(A和B)将同时生效, 提供对新旧数据的存取操作。其中新增的两个数据节点231中将只存取符合新分区版本B 的新数据,而原有的6个数据节点将同时存取符合新旧分区版本(A和B)的数据。
随着时间的继续推移,过期的旧数据将逐渐被淘汰删除,直到符合旧分区版本A 的数据被完全淘汰删除,进入“旧分区版本和其数据被完全淘汰阶段”M0。在该阶段,旧的 分区版本A将不再有用,可以被淘汰删除。如果要继续修改分区规则,增加新的分区版本, 则重新开始新一轮上述维护过程。需求指出的是,每次修改分区并不要求等到前一轮的变 更过程走到最后的“旧分区版本和其数据被完全淘汰阶段”240。经过多次增加分区版本后, 系统中可能会累积多个的分区版本,都按照特定的时间范围存取数据。
图3为根据本发明的存储管理方法在一种典型的节点被组织成DHT环的分布式 数据存储管理系统中分区规则变更的维护过程示意图。如图3所示,一种典型的分布式 数据存储管理系统拓扑结构,将集群中的数据节点组织成DHT环。在图3中,数据节点 A-B-C-D-E-F被组织成一个DHT环310。在该DHT环中,一条特定数据的Key-X 301通过散 列(HASH)被定位到一个特定的环空间子段(F,A]中,其数据被定位到该环空间子段右边 相邻的对应数据节点A上。同时,为了实现数据的可靠存储,系统自动在该DHT环上A节点 相邻的另外两个节点B和C上分别存储一个Key-X 301数据的备份,这样当A/B/C三个节 点中有一个或两个故障时,Key-X 301的数据仍然不会丢失。
随着数据量的增加,拟在原有的数据节点F和A之间加入一个新的节点G。该节点 打破了原有的环空间子段(F,A],使其更改为(F,G]和(G,A]。并且考虑到负载均衡,其他 数据节点在DHT环空间上的逻辑位置也可能需要调整,形成新的DHT环220 (A’ - B’ - C’ -D,- E,- F,- G- A,),即新版本的分区。Key-X 301通过散列(HASH)被定位到新的DHT 环320中的新的环空间子段(F’,G]上,其数据将被定位在数据节点G上,并备份在数据节 点A和B上。可见,由于新的数据节点G的加入,使得具有同样Key值的数据的存储数据节 点和备份数据节点发生了改变。按照本发明提出的方法,在这种情况下,系统同时维护两个 DHT环(310和320),即两个数据分区版本,这两个DHT环和数据本身一样,是具有时效性 的,并分别服务于不同的时间范围。这样原有的旧数据仍然由旧的DHT环310维护,新的数 据由新的DHT环320维护,都可以被正常存取。随着时间的继续推移,过期的旧数据被完全 淘汰删除,相应的旧的DHT环310也没有存在的必要了,也可以被淘汰删除。
通过本发明的大规模时序数据的存储管理方法流程图,实现了在数据分区变更时 无需迁移数据,不影响系统性能,从而无需中断业务的正常运行,满足分布式数据存储管理 系统的平滑扩容等需求。
本领域普通技术人员可以理解以上所述仅为本发明的优选实施例而已,并不用 于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员 来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进 行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含 在本发明的保护范围之内。
权利要求
1.一种大规模时序数据的存储管理方法,该方法包括以下步骤配置和部署分布式数据存储管理系统的初始分区和拓扑结构;预修改分区规则,增加新的分区版本;新分区版本上线;逐渐淘汰删除旧分区版本的数据直到完全删除旧分区版本及其数据。
2.根据权利要求1所述的大规模时序数据的存储管理方法,其特征在于,所述配置和 部署分布式数据存储管理系统的初始分区和拓扑结构是根据初始的分区规则,将数据按照 某个属性字段的散列值或顺序分段进行分区,并将数据分布地存储在所述分布式数据存储 管理系统的数据节点上。
3.根据权利要求1所述的大规模时序数据的存储管理方法,其特征在于,所述预修改 分区规则,增加新的分区版本的步骤是在分布式数据存储管理系统中,设定新的分区规则, 增加新的分区版本,并设定新的分区版本对未来特定时间以后的数据生效,使新的分区版 本暂时处于空闲状态。
4.根据权利要求1所述的大规模时序数据的存储管理方法,其特征在于,所述新分区 版本上线的步骤是新产生的数据的时间标签和新的分区版本的时效相符,则按照新的分区 版本将数据分布存储在所有数据节点上。
5.根据权利要求4所述的大规模时序数据的存储管理方法,其特征在于,所述数据的 时间标签和新产生的数据的时间标签为数据产生的时间点。
6.根据权利要求4所述的大规模时序数据的存储管理方法,其特征在于,所述按照新 的分区版本将数据分布存储在所有数据节点上的步骤进一步包括新增的数据节点只存取 时间标签和新分区版本的时效相符的新数据;原有的数据节点同时存取符合新旧分区版本 的数据。
7.根据权利要求1所述的大规模时序数据的存储管理方法,其特征在于,在分区变更 后,不迁移原有分区版本下存储的数据。
8.根据权利要求1所述的大规模时序数据的存储管理方法,其特征在于,所述逐渐淘 汰删除旧分区版本的数据直到完全删除旧分区版本及其数据的步骤,进一步包括以下步 骤根据数据的时间标签和分区版本的时效,逐渐淘汰删除符合旧分区版本的数据,直到完 全删除符合旧分区版本的数据;淘汰删除旧的分区版本。
9.根据权利要求1所述的大规模时序数据的存储管理方法,其特征在于,所述方法进 一步包括继续修改分区规则,增加多个分区版本,并根据数据的时间标签和分区版本的时 效存取数据。
10.根据权利要求9所述的大规模时序数据的存储管理方法,其特征在于,所述修改分 区规则,包括修改原有分区规则中的个别分区,增加或减少分区数量,以及修改数据空间上 的所有分区或分区算法。
全文摘要
一种大规模时序数据的存储管理方法,该方法包括以下步骤配置和部署分布式数据存储管理系统的初始分区和拓扑结构;预修改分区规则,增加新的分区版本;新分区版本上线;逐渐淘汰删除旧分区版本的数据直到完全淘汰删除旧分区版本及其数据和增加多个分区版本。本发明的大规模时序数据的存储管理方法,每当分布式数据存储管理系统的数据分区修改时,就产生新的分区版本,并根据数据的时间标签和分区版本的时效存取数据,而旧版本的分区不会被立刻删除,而是逐渐淘汰删除,在旧版本分区下所存储和管理的数据也不会按照新版本分区进行迁移,不影响系统节点服务性能,实现系统数据分区的平滑修改,使分布式数据存储管理系统可以持续提供服务。
文档编号G06F12/06GK102043726SQ201010610680
公开日2011年5月4日 申请日期2010年12月29日 优先权日2010年12月29日
发明者刘为怀, 张元丰, 张卫平, 张松波, 饶春平 申请人:北京播思软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1