分布式数据库的数据分区分配方法及装置制造方法及图纸

技术编号:14554933 阅读:94 留言:0更新日期:2017-02-05 04:09
一种分布式数据的数据分区分配方法及装置,所述方法根据负载均衡算法确定出可以管理该数据分区的待选分区管理模块。然后,再从当前时刻超前于数据分区的时刻信息的待选分区管理模块中确定出目标分区管理模块。该方法在为数据分区重新分配分区管理模块时,选择当前时刻超前于数据分区的时刻信息的分区管理模块作为目标分区管理模块;从而避免出现当有新数据写入时,才发现为所述数据分区分配的新的分区管理模块的当前时刻滞后于所述数据分区的时刻信息,导致新的分区管理模块退出服务的现象,大大降低分区管理模块的中断时间,提高数据库的存储速率和效率。

Method and device for distributing data partition in distributed database

The invention relates to a method and a device for distributing data partition of distributed data. The method determines the partition management module to be managed according to the load balancing algorithm. Then, the target partition management module is determined from the selected partition management module of the current time ahead of the data partition. The method in the re allocation of partition management module for data partition, partition time information management module choose the current time ahead of data partition as the target partition management module; to avoid when new data is written, only to find the time information at the current time distribution of the data partition for the new partition management module behind the data partition, to partition management module of the new service exit phenomenon, greatly reduce the partition management module interrupt time, improve the rate and efficiency of database storage.

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及分布式数据库技术邻域,尤其涉及分布式数据库的数据分区分配方法及装置
技术介绍
分布式数据库具有多个用于存储数据的数据分区,不同的数据分区可以位于不同的物理节点上。而分布式数据库通常都支持在一个数据分区内存储同一份数据与多个不同时间戳对应的多个版本。当某数据分区有新数据写入时,会为该新数据打上本地时间戳。当所述数据分区对应的本地时间往回跳变时,例如,分布式数据库的软件或硬件故障导致本地时间往回跳变;或者,管理该数据分区的分区管理模块迁移到另外一个物理节点上运行,而新的物理节点的本地时间滞后于原物理节点的本地时间。这样,可能出现在所述数据分区中新写入的数据的时间戳滞后于已经存储的数据的时间戳,而读取数据时通常只读取最新的时间戳所标记数据,即读取得到所述老数据,而非新数据,换言之,新数据被原来的数据覆盖掉。例如,数据分区新写入的数据(新数据)对应的时间戳为2014年1月1日12:30,而该数据分区中已存在有时间戳为2014年1月1日13:30的数据(老数据),由于新数据的时间戳滞后于老数据的时间戳,读取得到的是老数据。为解决新数据被老数据覆盖的问题,分区管理模块记录该数据分区最新写入的数据对应的时间戳T1,当该数据分区有新数据要写入时,所述分区管理模块获取本地时间为T2,如果T2<T1,即T2滞后于T1,则该分区管理模块直接退出服务,不写入新的数据,从而避免新数据被老数据覆盖。但是,此种方法在判断出新的物理节点的本地时间滞后于该数据分区中最新写入的数据对应的时间戳T1的现象时,使分区管理模块退出服务,增加了该分区管理模块的服务中断时间,从而降低了分布式数据库的数据存储速率和效率。
技术实现思路
本专利技术实施例中提供了一种分布式数据库的数据分区分配方法及装置,在避免新写入的数据不被老数据覆盖的前提下,提高分布式数据库的数据存储速率和效率。为实现上述专利技术目的,本专利技术实施例公开了如下技术方案:第一方面,提供一种分布式数据库的数据分区分配方法,包括:检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块,并获取所述待选分区管理模块的当前时刻;根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块;其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息。结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定出目标分区管理模块,包括:获取所述数据分区中存储的最新数据的时间戳;比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小;从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区管理模块。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述获取所述数据分区中存储的最新数据的时间戳,包括:获取所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;或者,获取所述数据分区内存储的数据内容中的时间戳字段内的时间戳。结合第一方面,在第一方面的第三种可能的实现方式中,所述根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定出目标分区管理模块,包括:获取所述数据分区对应的当前分区管理模块的当前时刻;比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小;从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所述目标分区管理模块。结合第一方面,在第一方面的第四种可能的实现方式中,所述检测所述数据分区是否需要重新分配分区管理模块,包括:当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区管理模块;或者,当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新分配分区管理模块;或者,当检测到所述数据分区需要数据分裂时,确定需要为所述数据分区分裂得到的新的数据分区需要重新分配分区管理模块。第二方面,提供一种分布式数据库的数据分区分配装置,包括:检测单元,用于检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;第一确定单元,用于当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块;获取单元,用于获取所述待选分区管理模块的当前时刻;第二确定单元,用于根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块;其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息。结合第二方面,在第二方面的第一种可能的实现方式中,所述第二确定单元,包括:第一获取子单元,用于获取所述数据分区中存储的最新数据的时间戳;第一比较子单元,用于比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小;第一确定子单元,用于从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区管理模块。结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第一获取子单元,具体用于:获取所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;或者,获取所述数据分区内存储的数据内容中的时间戳字段内的时间戳。结合第二方面,在第二方面的第三种可能的实现方式中,所述第二确定单元,包括:第二获取子单元,用于获取所述数据分区对应的当前分区管理模块的当前时刻;第二比较子单元,用于比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小;第二确定子单元,用于从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所述目标分区管理模块。结合第二方面,在第二方面的第四种可能的实现方式中,所述检测单元,具体用于:当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区管理模块;或者,当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新分配分区管理模块;或者,当检测本文档来自技高网
...

【技术保护点】
一种分布式数据库的数据分区分配方法,其特征在于,包括:检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块,并获取所述待选分区管理模块的当前时刻;根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块;其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息。

【技术特征摘要】
【国外来华专利技术】1.一种分布式数据库的数据分区分配方法,其特征在于,包括:
检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;
当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区
对应的待选分区管理模块,并获取所述待选分区管理模块的当前时刻;
根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管
理模块中确定目标分区管理模块;其中,所述目标分区管理模块用于管理所述数据分区的读
写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据分区的时刻信息和所述
待选分区管理模块的当前时刻,从所述待选分区管理模块中确定出目标分区管理模块,包括:
获取所述数据分区中存储的最新数据的时间戳;
比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小;
从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区
管理模块。
3.根据权利要求2所述的方法,其特征在于,所述获取所述数据分区中存储的最新数据
的时间戳,包括:
获取所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;
或者,
获取所述数据分区内存储的数据内容中的时间戳字段内的时间戳。
4.根据权利要求1所述的方法,其特征在于,所述根据所述数据分区的时刻信息和所述
待选分区管理模块的当前时刻,从所述待选分区管理模块中确定出目标分区管理模块,包括:
获取所述数据分区对应的当前分区管理模块的当前时刻;
比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大
小;
从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所
述目标分区管理模块。
5.根据权利要求1所述的方法,其特征在于,所述检测所述数据分区是否需要重新分配
分区管理模块,包括:
当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区
管理模块;
或者,
当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新
分配分区管理模块;
或者,
当检测到所述数据分区需要数据分裂时,确定需要为所述数据分区分裂得到的新的数据

\t分区需要重新分配分区管理模块。
6.一种分布式数据库的数据分区分配装置,其特征在于,包括:
检测单元,用于检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模
块;
第一确定单元,用于当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算
法确定所述数据分区对应的待选分区管理模块;
获取单元,用于获取所述待选分区管理模块的当前时刻;
第二确定单元,用于根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,
从所述待选分区管理模块中确定目标分区管理模块;
其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理
模块的当前时刻超前于所述数据分区的时刻信息。
7.根据权利要求6所述的装置,其特征在于,所述第二确定单元,包括:
第一获取子单元,用于获取所述数据分区中存储的最新数据的时间戳;
第一比较子单元,用于比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小;
第一确定子单元,用于从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,
确定出所述目标分区管理模块。
8.根据权利要求7所述的装置,其特征在于,所述第一获取子单元,具体用于:
获取所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;

【专利技术属性】
技术研发人员:李靖
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1