CN105518659B - 分布式数据库的数据分区分配方法及装置 - Google Patents

分布式数据库的数据分区分配方法及装置 Download PDF

Info

Publication number
CN105518659B
CN105518659B CN201480018154.1A CN201480018154A CN105518659B CN 105518659 B CN105518659 B CN 105518659B CN 201480018154 A CN201480018154 A CN 201480018154A CN 105518659 B CN105518659 B CN 105518659B
Authority
CN
China
Prior art keywords
management module
data
partition management
subregion
data subregion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480018154.1A
Other languages
English (en)
Other versions
CN105518659A (zh
Inventor
李靖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105518659A publication Critical patent/CN105518659A/zh
Application granted granted Critical
Publication of CN105518659B publication Critical patent/CN105518659B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computing Systems (AREA)

Abstract

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

Description

分布式数据库的数据分区分配方法及装置
技术领域
本发明涉及分布式数据库技术邻域,尤其涉及分布式数据库的数据分区分配方法及装置。
背景技术
分布式数据库具有多个用于存储数据的数据分区,不同的数据分区可以位于不同的物理节点上。而分布式数据库通常都支持在一个数据分区内存储同一份数据与多个不同时间戳对应的多个版本。当某数据分区有新数据写入时,会为该新数据打上本地时间戳。
当所述数据分区对应的本地时间往回跳变时,例如,分布式数据库的软件或硬件故障导致本地时间往回跳变;或者,管理该数据分区的分区管理模块迁移到另外一个物理节点上运行,而新的物理节点的本地时间滞后于原物理节点的本地时间。这样,可能出现在所述数据分区中新写入的数据的时间戳滞后于已经存储的数据的时间戳,而读取数据时通常只读取最新的时间戳所标记数据,即读取得到所述老数据,而非新数据,换言之,新数据被原来的数据覆盖掉。例如,数据分区新写入的数据(新数据)对应的时间戳为2014年1月1日12:30,而该数据分区中已存在有时间戳为2014年1月1日13:30的数据(老数据),由于新数据的时间戳滞后于老数据的时间戳,读取得到的是老数据。
为解决新数据被老数据覆盖的问题,分区管理模块记录该数据分区最新写入的数据对应的时间戳T1,当该数据分区有新数据要写入时,所述分区管理模块获取本地时间为T2,如果T2<T1,即T2滞后于T1,则该分区管理模块直接退出服务,不写入新的数据,从而避免新数据被老数据覆盖。但是,此种方法在判断出新的物理节点的本地时间滞后于该数据分区中最新写入的数据对应的时间戳T1的现象时,使分区管理模块退出服务,增加了该分区管理模块的服务中断时间,从而降低了分布式数据库的数据存储速率和效率。
发明内容
本发明实施例中提供了一种分布式数据库的数据分区分配方法及装置,在避免新写入的数据不被老数据覆盖的前提下,提高分布式数据库的数据存储速率和效率。
为实现上述发明目的,本发明实施例公开了如下技术方案:
第一方面,提供一种分布式数据库的数据分区分配方法,包括:
检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;
当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块,并获取所述待选分区管理模块的当前时刻;
根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块;其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息。
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定出目标分区管理模块,包括:
获取所述数据分区中存储的最新数据的时间戳;
比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小;
从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区管理模块。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述获取所述数据分区中存储的最新数据的时间戳,包括:
获取所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;
或者,
获取所述数据分区内存储的数据内容中的时间戳字段内的时间戳。
结合第一方面,在第一方面的第三种可能的实现方式中,所述根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定出目标分区管理模块,包括:
获取所述数据分区对应的当前分区管理模块的当前时刻;
比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小;
从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所述目标分区管理模块。
结合第一方面,在第一方面的第四种可能的实现方式中,所述检测所述数据分区是否需要重新分配分区管理模块,包括:
当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区需要数据分裂时,确定需要为所述数据分区分裂得到的新的数据分区需要重新分配分区管理模块。
第二方面,提供一种分布式数据库的数据分区分配装置,包括:
检测单元,用于检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;
第一确定单元,用于当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块;
获取单元,用于获取所述待选分区管理模块的当前时刻;
第二确定单元,用于根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块;
其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第二确定单元,包括:
第一获取子单元,用于获取所述数据分区中存储的最新数据的时间戳;
第一比较子单元,用于比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小;
第一确定子单元,用于从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区管理模块。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第一获取子单元,具体用于:
获取所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;
或者,
获取所述数据分区内存储的数据内容中的时间戳字段内的时间戳。
结合第二方面,在第二方面的第三种可能的实现方式中,所述第二确定单元,包括:
第二获取子单元,用于获取所述数据分区对应的当前分区管理模块的当前时刻;
第二比较子单元,用于比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小;
第二确定子单元,用于从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所述目标分区管理模块。
结合第二方面,在第二方面的第四种可能的实现方式中,所述检测单元,具体用于:
当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区需要数据分裂时,确定需要为所述数据分区分裂得到的新的数据分区需要重新分配分区管理模块。
第三方面,提供一种分布式数据库的管理设备,包括:处理器和存储器,其中,所述存储器内存储有所述处理器能够执行的操作指令,以使所述处理器执行以下步骤;
检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;
当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块;
获取所述待选分区管理模块的当前时刻;
根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块;
其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息。
结合第三方面,在第三方面的第一种可能的实现方式中,所述处理器根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块,具体用于:
获取所述数据分区中存储的最新数据的时间戳;
比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小;
从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区管理模块。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述处理器获取所述数据分区中存储的最新数据的时间戳,具体用于:
获取所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;
或者,
获取所述数据分区内存储的数据内容中的时间戳字段内的时间戳。
结合第三方面,在第三方面的第三种可能的实现方式中,所述处理器根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块,具体用于:
获取所述数据分区对应的当前分区管理模块的当前时刻;
比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小;
从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所述目标分区管理模块。
结合第三方面,在第三方面的第四种可能的实现方式中,所述处理器检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块,具体用于:
当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区需要数据分裂时,确定需要为所述数据分区分裂得到的新的数据分区需要重新分配分区管理模块。
由以上技术方案可见,本发明实施例提供的分布式数据库的数据分区分配方法,在检测到需要为分布式数据库中的数据分区重新分配新的分区管理模块时,根据负载均衡算法确定出可以管理该数据分区的待选分区管理模块。然后,再从当前时刻超前于所述数据分区的时刻信息的待选分区管理模块中确定出目标分区管理模块。该方法在为数据分区重新分配分区管理模块时,选择当前时刻超前于数据分区的时刻信息的分区管理模块作为目标分区管理模块;而不是在有新数据存储时,才判断新分配的分区管理模块的当前时刻是否超前于数据分区中存储的最新数据的时刻信息。从而避免出现当有新数据写入时,才发现为所述数据分区分配的新的分区管理模块的当前时刻滞后于所述数据分区的时刻信息,导致新的分区管理模块退出服务的现象,大大降低分区管理模块的中断时间,提高数据库的存储速率和效率。
附图说明
构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明实施例一种分布式数据库的数据分区分配方法的流程示意图;
图2示出了本发明实施例另一种分布式数据库的数据分区分配方法的流程示意图;
图3示出了本发明实施例又一种分布式数据库的数据分区分配方法的流程示意图;
图4示出了本发明实施例一种分布式数据实例HBase集群的示意图;
图5示出了本发明实施例RegionServer进程与Region之间的对应关系示意图;
图6示出了本发明实施例图5对应的分布式数据库的数据分区分配方法的流程示意图;
图7示出了本发明实施例一种分布式数据库的分区分配装置的结构示意图;
图8示出了本发明实施例一种分布式数据库的管理设备的结构示意图。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
具体实施方式
为了使本领域技术人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所述描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,示出了本发明实施例一种分布式数据库的数据分区分配方法的流程示意图,该方法应用于分布式数据库的分区分配模块所在的物理节点中,例如,服务器或PC(Personal Computer,个人计算机)机。
所述分区分配模块用于为分布式数据库的各个数据分区分配相应的分区管理模块。
如图1所示,所述方法可以包括:
S110,检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;如果是,执行S120;如果否,结束本次流程。
分区管理模块用于对数据分区进行管理,例如,读写操作。每一个数据分区都对应一个分区管理模块。
若检测到所述数据分区对应的当前分区管理模块故障,确定需要为所述数据分区重新分配分区管理模块。
若检测到所述数据分区对应的当前分区管理模块所在的物理节点故障,确定需要为所述数据分区重新分配分区管理模块。例如,若所述当前分区管理模块所在的服务器故障,则确定需要为所述数据分区重新分配分区管理模块。
若检测到所述数据分区的数据膨胀需要进行数据分裂,需要为分裂出的新的数据分区重新分配分区管理模块。
S120,根据负载均衡算法确定所述数据分区的待选分区管理模块。
根据负载均衡算法,确定能够承担所述数据分区的负载的分区管理模块,这些分区管理模块称为待选分区管理模块。所述待选分区管理模块的数量可以是一个或者多个。
在数据分区对应的当前分区管理模块所在的物理节点故障的情形下,待选分区管理模块位于除所述当前分区管理模块所在物理节点之外的其它物理节点上。
在所述当前分区管理模块本身故障,或者,数据分裂的情形下,待选分区管理模块可能与所述当前分区管理模块处于同一物理节点,也可能处于不同的物理节点上。
S130,获取所述待选分区管理模块的当前时刻。
所述待选分区管理模块的当前时刻是所述待选分区管理模块所在物理节点的当前时刻。
S140,根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定出目标分区管理模块。其中,所述目标分区管理模块的时刻信息超前于所述数据分区的时刻信息。
在数据分区对应的当前分区管理模块所在的物理节点故障的情形下,所述数据分区的时刻信息是自身所存储的最新数据的时间戳。
在所述当前分区管理模块本身故障,或者,数据分裂的情形下,所述数据分区的时刻信息可以是自身所存储的最新数据的时间戳,或者,也可以是所述当前分区管理模块所在物理节点的当前时刻。
选择当前时刻超前于所述数据分区的时刻信息的待选分区管理模块,作为目标分区管理模块。
需要说明的是,当前时刻超前于所述数据分区的时刻信息的待选分区管理模块的数量可能有多个,从中确定一个作为目标分区管理模块。
例如,步骤S120确定出的待选分区管理模块为分区管理模块A、B、C和D,而且,四个分区管理模块的当前时刻如表1所示:
表1
假设,数据分区的时刻信息是2014年1月1日12:40,则分区管理模块A、B、C、D中当前时刻超前于数据分区的时刻的是分区管理模块A和B,可以从分区管理模块A和B中任选一个作为所述数据分区的目标分区管理模块。或者,可以结合分区管理模块A和B的负载情况,确定分区管理模块的负载最少(或者,负载与数据分区的负载相匹配)的分区管理模块作为目标分区管理模块。
所述数据分区的时刻信息可以是所述数据分区对应的当前分区管理模块的当前时刻,或者所述数据分区中存储的最新数据的时间戳。
若所述当前分区管理模块未出现故障,或者,所述当前分区管理模块所在的物理节点未出现故障,可以获取所述当前分区管理模块的当前时刻作为所述数据分区的时刻信息。
若所述当前分区管理模块故障,或者,所述当前分区管理模块所在的物理节点故障时,可以获取所述数据分区内存储的最新的数据的时间戳,作为所述数据分区的时刻信息。
本实施例提供的分布式数据库的数据分区分配方法,在检测到需要为分布式数据库中的数据分区重新分配新的分区管理模块时,根据负载均衡算法确定出可以管理该数据分区的待选分区管理模块。然后,再从当前时刻超前于所述数据分区的时刻信息的待选分区管理模块中确定出目标分区管理模块。该方法在为数据分区重新分配分区管理模块时,选择当前时刻超前于数据分区的时刻信息的分区管理模块作为目标分区管理模块;而不是在有新数据存储时,才判断新分配的分区管理模块的当前时刻是否超前于数据分区中存储的最新数据的时刻信息。从而避免出现当有新数据写入时,才发现为所述数据分区分配的新的分区管理模块的当前时刻滞后于所述数据分区的时刻信息,导致新的分区管理模块退出服务的现象,大大降低分区管理模块的中断时间,提高数据库的存储速率和效率。
请参见图2,示出了本发明实施例另一种分布式数据库的数据分区分配方法的流程示意图,所述方法应用于所述分区分配模块所在的物理节点,例如,服务器或PC机。如图2所示,所述方法可以包括以下步骤:
S210,检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;如果是,执行S220;如果否,结束本次流程。
S220,根据负载均衡算法确定所述数据分区的待选分区管理模块。
S230,获取所述待选分区管理模块的当前时刻。所述待选分区管理模块的当前时刻是所述待选分区管理模块所在物理节点的当前时刻。
S240,获取所述数据分区中存储的最新数据的时间戳。
其中,所述最新的数据的时间戳可以是分布式文件系统记录的最新一次修改所述数据分区内的数据的修改时间戳,例如,所述分布式文件系统可以图4所示的HDFS集群。;或者,所述最新的数据的时间戳也可以是最新的物理文件内容中增加的时间戳字段的内容。
需要说明的是,本实施例并不严格限定S230和S240的执行顺序,也可以先执行S240,然后再执行S230。
S250,比较所述待选分区管理模块的当前时刻与所述数据分区中存储的最新数据的时间戳之间的大小。
S260,从当前时刻超前于所述时间戳的待选分区管理模块中,确定出目标分区管理模块。
若存在多个待选分区管理模块的当前时刻超前于所述数据分区内存储的最新数据的时间戳,进一步需要从多个所述待选分区管理模块中确定出目标分区管理模块,可以从所述多个待选分区管理模块中任选一个作为目标分区管理模块,例如,表1所示的实例,可以从待选分区管理模块A和B中任选一个作为目标分区管理模块;或者,也可以再次利用负载均衡算法从多个所述待选分区管理模块中目标分区管理模块,例如,选择当前负载最少的分区管理模块。
本实施例提供的分布式数据库的数据分区分配方法,在数据分区需要重新分配新的分区管理模块时,选择当前时刻超前于数据分区内存储的最新数据的时间戳的待选分区管理模块作为目标分区管理模块,只要当前时刻超前于所述最新数据的时间戳的待选分区管理模块就可以作为所述数据分区的分区管理模块。通常,数据分区内存储的最新数据的时间戳滞后于数据分区所在物理节点的当前时刻,因此,当前时刻超前于最新数据的时间戳待选分区管理模块的数量比当前时刻超前于数据分区所在物理节点的当前时刻待选分区管理模块的数量多,增大目标分区管理模块的选择范围,从而提高为数据分区分配分区管理模块的效率和速度。
请参见图3,示出了本发明实施例另一种分布式数据库的数据分区分配方法的流程示意图,所述方法应用于所述分区分配模块所在的物理节点,例如,服务器或PC机。如图3所示,所述方法可以包括以下步骤:
S310,检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;如果是,执行S320;如果否,结束本次流程。
S320,根据负载均衡算法确定所述数据分区的待选分区管理模块。
S330,获取所述待选分区管理模块的当前时刻。所述待选分区管理模块的当前时刻是所述待选分区管理模块所在物理节点的当前时刻。
S340,获取所述数据分区对应的当前分区管理模块的当前时刻。
本实施例适用于所述数据分区对应的当前分区管理模块所在物理节点未出现故障的场景,获得所述当前分区管理模块所在物理节点的当前时刻作为所述当前分区管理模块的当前时刻。
S350,比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小。
S360,从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定目标分区管理模块。
本实施例提供的分布式数据库的数据分区分配方法,在数据分区需要重新分配新的分区管理模块时,选择当前时刻超前于数据分区的当前时刻的待选分区管理模块作为目标分区管理模块,而不是在有新数据存储时,才判断新数据的时间戳是否超前于为数据分区中存储的数据的时间戳。从而避免为数据分区分配当前时刻滞后于数据分区的时刻信息的分区管理模块,进而避免出现当有新数据写入时,才发现为所述数据分区、分配的新的分区管理模块退出服务的现象,大大降低了分区管理模块的中断时间,因此,提高数据库的存储速率和效率。
请参见图4,示出了本发明实施例一种分布式数据库实例HBase集群的示意图。
本实施例的分布式数据库可以是HBase集群,HBase集群是一种构建在分布式文件系统HDFS(Hadoop Distributed File System)之上的分布式、面向列的存储系统,具有高可靠性、稿性能、面向列和可伸缩的特性。HBase集群适用于存储大表数据,其中,表的规模可以达到数十亿行以及数百万列,并且对大表数据的读、写访问可以达到实时级别。
如图4所示,HBase集群包括HMaster进程和多个RegionServer进程,RegionServer进程用于管理HDFS集群。HBase以表的形式将数据存储到HDFS集群中,HDFS集群将整个存储空间划分成多个数据分区,并由HMaster进程为各个Region分配对应的RegionServer进程,由RegionServer进程管理数据分区。
不同的RegionServer进程可以分步在不同的物理节点(例如,服务器或PC机)上,各个数据分区也可以分步在不同的物理节点上。
如图5所示,RegionServer1进程对应管理数据分区1的存储工作。
假设RegionServer1进程故障,或RegionServer1进程所在的物理节点故障时,HMaster进程就需要为数据分区1分配新的RegionServer进程。或者,假设数据分区1需要数据分裂,HMaster进程需要为分裂的新数据分区分配新的RegionServer进程。这样,HMaster进程可以通过图6所示的方法流程为数据分区1或分裂的新Region分配新RegionServer进程:
S410,HMaster进程检测是否需要为数据分区1重新分配RegionServer进程,如果是,执行S420;如果否,结束本次流程。
S420,HMaster进程根据负载均衡算法确定数据分区1的待选RegionServer进程。
S430,HMaster进程获取所述待选RegionServer进程的当前时刻T2。
所述待选RegionServer进程的当前时刻是所述RegionServer进程所在物理节点的当前时刻。
假设存在多个待选RegionServer进程,则依次获取各个待选RegionServer进程的当前时刻。
S440,HMaster进程获取数据分区1内存储的最新一条数据的时间戳T1。
由RegionServer1进程在数据分区1中存储的物理文件中记录最新一条数据的时间戳T1。具体实施时,所述时间戳T1可以是数据分区1所在的HDFS集群所记录的数据分区1存储的最新一条数据的修改时间戳的时间信息;也可以是数据分区1存储的最新一条数据的内容中所增加的时间戳字段的时间信息。
S450,HMaster进程比较T2与T1之间的大小。
若存在多个待选RegionServer进程,则逐个比较待选RegionServer进程的当前时刻与数据分区1的时间戳信息。
S460,HMaster进程从T2超前于T1的待选RegionServer进程中,确定出目标RegionServer进程。
确定出当前时刻超前于数据分区1的最新一条数据的时间戳的待选RegionServer进程。
假设,RegionServer2进程的当前时刻T2超前于数据分区1的最新一条数据的时间戳T1,则确定RegionServer2进程为目标RegionServer进程。HMaster进程将RegionServer2进程分配给数据分区1。
本实施例提供的分布式数据库的数据分区分配方法,在为数据分区1重新分配新的RegionServer进程时,选择当前时刻超前于数据分区1内存储的最新数据的时间戳的RegionServer进程作为数据分区1的新RegionServer进程。从而确保向数据分区1内写入数据时,不会出现为数据分区1分配的新RegionServer进程的当前时刻滞后于数据分区1内的最新一条数据的时间戳,而导致新RegionServer进程退出服务的现象发生。减少RegionServer进程的服务中断时间,提高分布式数据库的数据写入速度和效率。
相应于上述的分布式数据库的数据分区分配方法实施例,本发明还提供了分布式数据库的数据分区分配装置实施例。
请参见图7,示出了本发明实施例一种分布式数据库的数据分区分配装置的结构示意图,所述装置应用于分布式数据库的分区分配模块所在的物理节点中,例如,服务器或PC机。
如图7所示,所述装置包括:检测单元710、第一确定单元720、获取单元730和第二确定单元740。
所述检测单元710,用于检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块。
当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区需要数据分裂时,确定需要为所述数据分区分裂得到的新的数据分区需要重新分配分区管理模块。
所述第一确定单元720,用于当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块。
所述获取单元730,用于获取所述待选分区管理模块的当前时刻。
所述第二确定单元740,用于根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块。其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息。
在本发明的一个实施例中,所述第二确定单元740可以包括:第一获取子单元、第一比较子单元和第一确定子单元。
所述第一获取子单元,用于获取所述数据分区中存储的最新数据的时间戳。
所述数据分区中存储的最新数据的时间戳可以是所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;或者,也可以是所述数据分区内存储的数据内容中的时间戳字段内的时间戳。
所述第一比较子单元,用于比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小。
所述第一确定子单元,用于从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区管理模块。
在本发明的另一个实施例中,所述第二确定单元740可以包括:第二获取子单元、第二比较子单元和第二确定子单元。
所述第二获取子单元,用于获取所述数据分区对应的当前分区管理模块的当前时刻。
所述第二比较子单元,用于比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小;
所述第二确定子单元,用于从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所述目标分区管理模块。
本实施例提供的分布式数据的数据分区分配装置,根据负载均衡算法确定出可以管理该数据分区的待选分区管理模块。然后,再从当前时刻超前于所述数据分区的时刻信息的待选分区管理模块中确定出目标分区管理模块。该方法在为数据分区重新分配分区管理模块时,选择当前时刻超前于数据分区的时刻信息的分区管理模块作为目标分区管理模块;而不是在有新数据存储时,才判断新分配的分区管理模块的当前时刻是否超前于数据分区中存储的最新数据的时刻信息。从而避免出现当有新数据写入时,才发现为所述数据分区分配的新的分区管理模块的当前时刻滞后于所述数据分区的时刻信息,导致新的分区管理模块退出服务的现象,大大降低分区管理模块的中断时间,提高数据库的存储速率和效率。
本发明实施例还提供了分布式数据库的管理设备,例如,服务器或PC机。
请参见图8,示出了本发明实施例一种分布式数据库的管理设备的结构示意图,如图8所示,所述装置包括:处理器810和存储器820,其中,所述存储器820内存储有所述处理器810能够执行的操作指令,以使所述处理器810执行以下步骤;
检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区管理模块;或者,当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新分配分区管理模块;或者,当检测到所述数据分区需要数据分裂时,确定需要为所述数据分区分裂得到的新的数据分区需要重新分配分区管理模块。
当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块;
获取所述待选分区管理模块的当前时刻;
根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块;
其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息。
在本发明的一个实施例中,所述处理器810根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块,具体用于:
获取所述数据分区中存储的最新数据的时间戳。所述数据分区中存储的最新数据的时间戳可以是所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;或者,也可以是所述数据分区内存储的数据内容中的时间戳字段内的时间戳。
比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小。
从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区管理模块。
本发明的另一个实施例,本实施例适用于所述当前分区管理模块未故障的场景。所述处理器810根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块,具体用于:
获取所述数据分区对应的当前分区管理模块的当前时刻。所述当前分区管理模块的当前时刻是所述当前分区管理模块所在物理节点的当前时刻。
比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小;
从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所述目标分区管理模块。
本实施例提供的分布式数据的管理设备,根据负载均衡算法确定出可以管理该数据分区的待选分区管理模块。然后,再从当前时刻超前于所述数据分区的时刻信息的待选分区管理模块中确定出目标分区管理模块。该方法在为数据分区重新分配分区管理模块时,选择当前时刻超前于数据分区的时刻信息的分区管理模块作为目标分区管理模块;而不是在有新数据存储时,才判断新分配的分区管理模块的当前时刻是否超前于数据分区中存储的最新数据的时刻信息。从而避免出现当有新数据写入时,才发现为所述数据分区分配的新的分区管理模块的当前时刻滞后于所述数据分区的时刻信息,导致新的分区管理模块退出服务的现象,大大降低分区管理模块的中断时间,提高数据库的存储速率和效率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (15)

1.一种分布式数据库的数据分区分配方法,其特征在于,包括:
检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;
当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块,并获取所述待选分区管理模块的当前时刻;
根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块;其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息;所述数据分区的时刻信息为所述数据分区中存储的最新数据的时间戳,或者,为所述数据分区对应的当前分区管理模块的当前时刻。
2.根据权利要求1所述的方法,其特征在于,所述根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定出目标分区管理模块,包括:
获取所述数据分区中存储的最新数据的时间戳;
比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小;
从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区管理模块。
3.根据权利要求2所述的方法,其特征在于,所述获取所述数据分区中存储的最新数据的时间戳,包括:
获取所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;
或者,
获取所述数据分区内存储的数据内容中的时间戳字段内的时间戳;
其中,所述数据分区内存储的数据内容中的时间戳字段内的时间戳为最新的物理文件内容中增加的时间戳字段的内容,或者,为所述数据分区内存储的最新一条数据的内容中所增加的时间戳字段的时间信息。
4.根据权利要求1所述的方法,其特征在于,所述根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定出目标分区管理模块,包括:
获取所述数据分区对应的当前分区管理模块的当前时刻;
比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小;
从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所述目标分区管理模块。
5.根据权利要求1所述的方法,其特征在于,所述检测所述数据分区是否需要重新分配分区管理模块,包括:
当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区需要数据分裂时,确定需要为所述数据分区分裂得到的新的数据分区重新分配分区管理模块。
6.一种分布式数据库的数据分区分配装置,其特征在于,包括:
检测单元,用于检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块;
第一确定单元,用于当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块;
获取单元,用于获取所述待选分区管理模块的当前时刻;
第二确定单元,用于根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块;
其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息;
所述数据分区的时刻信息为所述数据分区中存储的最新数据的时间戳,或者,为所述数据分区对应的当前分区管理模块的当前时刻。
7.根据权利要求6所述的装置,其特征在于,所述第二确定单元,包括:
第一获取子单元,用于获取所述数据分区中存储的最新数据的时间戳;
第一比较子单元,用于比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小;
第一确定子单元,用于从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区管理模块。
8.根据权利要求7所述的装置,其特征在于,所述第一获取子单元,具体用于:
获取所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;
或者,
获取所述数据分区内存储的数据内容中的时间戳字段内的时间戳;
其中,所述数据分区内存储的数据内容中的时间戳字段内的时间戳为最新的物理文件内容中增加的时间戳字段的内容,或者,为所述数据分区内存储的最新一条数据的内容中所增加的时间戳字段的时间信息。
9.根据权利要求6所述的装置,其特征在于,所述第二确定单元,包括:
第二获取子单元,用于获取所述数据分区对应的当前分区管理模块的当前时刻;
第二比较子单元,用于比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小;
第二确定子单元,用于从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所述目标分区管理模块。
10.根据权利要求6所述的装置,其特征在于,所述检测单元,具体用于:
当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区需要数据分裂时,确定需要为所述数据分区分裂得到的新的数据分区重新分配分区管理模块。
11.一种分布式数据库的管理设备,其特征在于,包括:处理器和存储器,其中,所述存储器内存储有所述处理器能够执行的操作指令,以使所述处理器执行以下步骤;
检测数据分区,确定是否需要为所述数据分区重新分配分区管理模块;
当需要为所述数据分区重新分配分区管理模块时,根据负载均衡算法确定所述数据分区对应的待选分区管理模块;
获取所述待选分区管理模块的当前时刻;
根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块;
其中,所述目标分区管理模块用于管理所述数据分区的读写操作,且所述目标分区管理模块的当前时刻超前于所述数据分区的时刻信息;
所述数据分区的时刻信息为所述数据分区中存储的最新数据的时间戳,或者,为所述数据分区对应的当前分区管理模块的当前时刻。
12.根据权利要求11所述的设备,其特征在于,所述处理器根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块,具体用于:
获取所述数据分区中存储的最新数据的时间戳;
比较所述待选分区管理模块的当前时刻与所述时间戳之间的大小;
从当前时刻超前于所述最新数据的时间戳的待选分区管理模块中,确定出所述目标分区管理模块。
13.根据权利要求12所述的设备,其特征在于,所述处理器获取所述数据分区中存储的最新数据的时间戳,具体用于:
获取所述数据分区记录的最新一次修改所述数据分区内的数据的修改时间戳;
或者,
获取所述数据分区内存储的数据内容中的时间戳字段内的时间戳;
其中,所述数据分区内存储的数据内容中的时间戳字段内的时间戳为最新的物理文件内容中增加的时间戳字段的内容,或者,为所述数据分区内存储的最新一条数据的内容中所增加的时间戳字段的时间信息。
14.根据权利要求11所述的设备,其特征在于,所述处理器根据所述数据分区的时刻信息和所述待选分区管理模块的当前时刻,从所述待选分区管理模块中确定目标分区管理模块,具体用于:
获取所述数据分区对应的当前分区管理模块的当前时刻;
比较所述待选分区管理模块的当前时刻与所述当前分区管理模块的当前时刻之间的大小;
从当前时刻超前于所述当前分区管理模块的当前时刻的待选分区管理模块中,确定出所述目标分区管理模块。
15.根据权利要求11所述的设备,其特征在于,所述处理器检测所述数据分区,确定是否需要为所述数据分区重新分配分区管理模块,具体用于:
当检测到所述数据分区所在的物理节点故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区对应的当前分区管理模块故障时,确定需要为所述数据分区重新分配分区管理模块;
或者,
当检测到所述数据分区需要数据分裂时,确定需要为所述数据分区分裂得到的新的数据分区重新分配分区管理模块。
CN201480018154.1A 2014-10-28 2014-10-28 分布式数据库的数据分区分配方法及装置 Active CN105518659B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/089659 WO2016065530A1 (zh) 2014-10-28 2014-10-28 分布式数据库的数据分区分配方法及装置

Publications (2)

Publication Number Publication Date
CN105518659A CN105518659A (zh) 2016-04-20
CN105518659B true CN105518659B (zh) 2019-07-26

Family

ID=55725014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480018154.1A Active CN105518659B (zh) 2014-10-28 2014-10-28 分布式数据库的数据分区分配方法及装置

Country Status (2)

Country Link
CN (1) CN105518659B (zh)
WO (1) WO2016065530A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125368A (en) * 1997-02-28 2000-09-26 Oracle Corporation Fault-tolerant timestamp generation for multi-node parallel databases
CN1652090A (zh) * 2005-02-23 2005-08-10 北京邦诺存储科技有限公司 网络存储系统中的数据管理方法及其构建的网络存储系统
CN1855085A (zh) * 2005-04-20 2006-11-01 国际商业机器公司 用于在多处理器计算机中提供有效虚拟时基的方法和设备
CN102025550A (zh) * 2010-12-20 2011-04-20 中兴通讯股份有限公司 一种分布式集群中数据管理的系统和方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7657581B2 (en) * 2004-07-29 2010-02-02 Archivas, Inc. Metadata management for fixed content distributed data storage
US8600944B2 (en) * 2010-09-24 2013-12-03 Hitachi Data Systems Corporation System and method for managing integrity in a distributed database
CN102043726B (zh) * 2010-12-29 2012-08-15 北京播思软件技术有限公司 一种大规模时序数据的存储管理方法
CN102339305B (zh) * 2011-09-07 2014-10-08 北京人大金仓信息技术股份有限公司 基于偏序关系日志的数据库集群故障恢复方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125368A (en) * 1997-02-28 2000-09-26 Oracle Corporation Fault-tolerant timestamp generation for multi-node parallel databases
CN1652090A (zh) * 2005-02-23 2005-08-10 北京邦诺存储科技有限公司 网络存储系统中的数据管理方法及其构建的网络存储系统
CN1855085A (zh) * 2005-04-20 2006-11-01 国际商业机器公司 用于在多处理器计算机中提供有效虚拟时基的方法和设备
CN102025550A (zh) * 2010-12-20 2011-04-20 中兴通讯股份有限公司 一种分布式集群中数据管理的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于网络内存的内存数据库高效恢复技术;周晓云 等;《系统工程理论与实践》;20111031;第31卷;81-87

Also Published As

Publication number Publication date
CN105518659A (zh) 2016-04-20
WO2016065530A1 (zh) 2016-05-06

Similar Documents

Publication Publication Date Title
US11586673B2 (en) Data writing and reading method and apparatus, and cloud storage system
Lin et al. Moon: Mapreduce on opportunistic environments
JP5608222B2 (ja) アプリケーション効率エンジン
CN109407977B (zh) 一种大数据分布式存储管理方法及系统
CN102694868A (zh) 一种集群系统实现及任务动态分配方法
EP3129880A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US10884667B2 (en) Storage controller and IO request processing method
CN104469392A (zh) 一种视频文件存储方法及装置
CN103746934A (zh) 一种cdn带宽平衡的方法、cdn控制中心及系统
CN111552701B (zh) 确定分布式集群中数据一致性的方法及分布式数据系统
CN112256433B (zh) 基于Kafka集群的分区迁移方法和装置
US11003367B2 (en) Data storage, reading, and cleansing method and device, and cloud storage system
CN104182487A (zh) 一种支持多种存储方式的统一存储方法
CN105446792A (zh) 一种虚拟机的部署方法、部署装置和管理节点
US9934325B2 (en) Method and apparatus for distributing graph data in distributed computing environment
CN104484131A (zh) 多磁盘服务器的数据处理装置及对应的处理方法
CN108234231A (zh) 云计算环境中弹性伸缩配置的方法、装置以及电子设备
CN114281256A (zh) 基于分布式存储系统的数据同步方法、装置、设备及介质
CN105159925A (zh) 一种数据库集群数据分配方法及系统
CN102970349B (zh) 一种dht网络的存储负载均衡方法
CN106815318B (zh) 一种时序数据库的集群化方法及系统
CN105518659B (zh) 分布式数据库的数据分区分配方法及装置
CN108664322A (zh) 数据处理方法及系统
CN108055321B (zh) 基于国产化平台的高可靠集群构建方法
CN111008071A (zh) 任务调度系统、方法和服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220210

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.