从分布式系统中读数据记录的方法和装置制造方法及图纸

技术编号:24353268 阅读:32 留言:0更新日期:2020-06-03 02:02
本申请提供了一种从分布式系统中读数据记录的方法和装置,分布式系统包括分区服务器和客户端,分区服务器用于管理数据表中的父分区,分区服务器存储有第一分区范围检查器,第一分区范围检查器的分区范围为父分区的分区范围,该方法包括:分区服务器在拆分父分区的过程中,接收客户端发送的第一读请求,第一读请求用于请求从父分区中读取第一数据记录;分区服务器根据第一读请求从父分区中读取第一数据记录,读取第一数据记录的完成时刻晚于父分区的拆分完成时刻;分区服务器使用第一分区范围检查器检查第一数据记录的行键值所属的分区的分区范围,有利于提高读取数据记录的准确性。

Method and device of reading data record from distributed system

【技术实现步骤摘要】
从分布式系统中读数据记录的方法和装置
本申请涉及信息
,并且更具体地,涉及从分布式系统中读数据记录的方法和装置。
技术介绍
在分布式系统中,通常通过数据表的形式存储数据记录,例如,Hadoop分布式系统中的Hbase表。为了提高查询效率,数据表又可以被划分为多个分区(region),而多个分区被划分给多个分区服务器,每个分区服务器对各自的分区进行管理。在多个分区服务器中有的分区服务器处理访问请求(读请求或写请求)的频率较高,有的分区服务器处理访问请求的频率较低。这样,就会导致多个分区服务器之间负载不均衡的情况。业界通常是通过对分区进行拆分来均衡各分区服务器的负载。例如,分布式系统中负载较高的分区服务器为目标分区服务器,且目标分区服务器管理的分区中目标分区被访问的频率较高,那么,可以将目标分区作为待拆分的分区(即,父分区),再将父分区拆分为多个子分区,并将多个子分区中的部分子分区分散到分布式系统中负载较低的分区服务器上,以减轻目标分区服务器的负载。在分区拆分的过程中,需要修改父分区的分区元数据,以及父分区的分区范围检查器,以应用于新的子分区。然而,若在拆分父分区的过程中,接收到请求从父分区中读取第一数据记录的第一读请求后,且读第一数据记录的完成时间晚于父分区的拆分完成时间,此时,父分区的分区服务器已被修改,若使用修改后的分区服务器检查第一数据记录的分区范围,使得第一数据记录的不再是从父分区中读取的,而是从新生成的子分区中读取的,导致第一数据记录的准确性降低。
技术实现思路
本申请提供一种从分布式系统中读数据记录的方法和装置,以提高读取数据记录的准确性。第一方面,提供了一种从分布式系统中读数据记录的方法,所述分布式系统包括分区服务器和客户端,所述分区服务器用于管理数据表中的父分区,所述分区服务器存储有第一分区范围检查器,所述第一分区范围检查器的分区范围为所述父分区的分区范围,所述方法包括:所述分区服务器在拆分所述父分区的过程中,接收所述客户端发送的第一读请求,所述第一读请求用于请求从所述父分区中读取第一数据记录;所述分区服务器根据所述第一读请求从所述父分区中读取所述第一数据记录,读取所述第一数据记录的完成时刻晚于所述父分区的拆分完成时刻;所述分区服务器使用所述第一分区范围检查器检查所述第一数据记录的行键值所属的分区的分区范围。上述分区服务器使用所述第一分区范围检查器检查所述第一数据记录的行键值所属的分区的分区范围,可以理解为,若上述第一读请求请求从第一文件中的父分区中读取第一数据记录,分区服务器使用第一分区范围检查器检查读取的所述第一文件中的数据记录的行健值,以得到所述第一文件中的所述父分区中的数据记录,以便分区服务器从所述第一文件中的所述父分区的数据记录中读取所述第一数据记录。在本申请实施例中,对第一读请求请求读取的第一数据记录采用第一分区范围检查器检查,避免了现有技术中,在父分区拆分成功后,第一分区范围检查器本修改为子分区的分区范围检查器,导致读取的数据记录的分区范围不是原本第一读请求希望读取的数据记录所在的分区范围,有利于提高读取数据记录的准确性。在一种可能的实现方式中,所述分区服务器存储有第二分区范围检查器,所述第二分区检查器的分区范围为第一目标子分区的分区范围,所述第一目标子分区为对所述父分区进行拆分得到的子分区,所述方法还包括:在所述父分区拆分完成后,所述分区服务器接收第二读请求,所述第二读请求用于请求从所述第一目标子分区中读取第二数据记录;所述分区服务器从所述第一目标子分区中读取所述第二数据记录;所述分区服务器使用所述第二分区范围检查器检查所述第二数据记录的行键值所属的分区的分区范围。在本申请实施例中,对于第二读请求请求读取的数据记录使用第二分区范围检查器进行检查,有利于提高读取数据记录的准确性。在一种可能的实现方式中,在拆分所述父分区的过程中,所述父分区对应的时间戳的值为最大值,所述方法还包括:所述分区服务器获取所述第一读请求携带的时间戳;若所述第一读请求携带的时间戳小于所述父分区对应的时间戳,所述分区服务器选择所述第一分区范围检查器检查所述第一数据记录的行键值所属的分区的分区范围。在本申请实施例中,通过父分区对应的时间戳与读请求携带的时间戳进行比较,以选择不同的分区范围检查器,有利于提高选择分区范围检查器的准确性。在一种可能的实现方式中,在所述父分区拆分完成后,所述父分区对应的时间戳的值为所述父分区的拆分完成时刻,所述分区服务器存储有第三分区范围检查器,所述第三分区范围检查器的分区范围为第二目标子分区的分区范围,所述第二目标子分区为对所述父分区进行拆分得到的子分区,所述方法还包括:所述分区服务器接收第三读请求,所述第三读请求用于请求从所述第二目标子分区中读取第三数据记录,所述第二目标子分区为对所述父分区进行拆分得到的子分区;所述分区服务器获取所述第三读请求携带的时间戳;若所述第三读请求携带的时间戳大于所述父分区对应的时间戳,所述分区服务器使用所述第三分区范围检查器检查所述第三数据记录的行键值所属的分区的分区范围。在本申请实施例中,通过父分区对应的时间戳与读请求携带的时间戳进行比较,以选择不同的分区范围检查器,有利于提高选择分区范围检查器的准确性。在一种可能的实现方式中,所述分区服务器存储有所述父分区的分区元数据记录的多个副本,所述方法还包括:在将所述父分区拆分为所述多个子分区之后,所述分区服务器将所述多个副本修改为所述多个子分区的分区元数据记录。在本申请实施例中,通过修改父分区的分区元数据的副本得到子分区的分区元数据,有利于简化生成子分区的分区元数据的生成过程。第二方面,提供一种从分布式系统中读数据记录的分区服务器,所述分区服务器包括用于执行第一方面或第一方面任一种可能实现方式中的各个模块。上述模块需要实现的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。第三方面,提供了一种分区服务器集群,分区服务器集群包括至少一个分区服务器,每个分区服务器包括处理器和存储器。存储器用于存储计算机程序,处理器用于从存储器中调用并运行该计算机程序,使得该分区服务器集群执行上述第一方面中的方法。第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。需要说明的是,上述计算机程序代码可以全部或者部分存储在第一存储介质上,其中第一存储介质可以与处理器封装在一起的,也可以与处理器单独封装,本申请实施例对此不作具体限定。第五方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。附图说明图1是本申请实施例适用的分布式系统100的架构的示意图。图2是分布式系统中数据表200的示意图。图3是本申请实施例的分区拆分的方法的流本文档来自技高网...

【技术保护点】
1.一种从分布式系统中读数据记录的方法,其特征在于,所述分布式系统包括分区服务器和客户端,所述分区服务器用于管理数据表中的父分区,所述分区服务器存储有第一分区范围检查器,所述第一分区范围检查器的分区范围为所述父分区的分区范围,/n所述方法包括:/n所述分区服务器在拆分所述父分区的过程中,接收所述客户端发送的第一读请求,所述第一读请求用于请求从所述父分区中读取第一数据记录;/n所述分区服务器根据所述第一读请求从所述父分区中读取所述第一数据记录,读取所述第一数据记录的完成时刻晚于所述父分区的拆分完成时刻;/n所述分区服务器使用所述第一分区范围检查器检查所述第一数据记录的行键值所属的分区的分区范围。/n

【技术特征摘要】
1.一种从分布式系统中读数据记录的方法,其特征在于,所述分布式系统包括分区服务器和客户端,所述分区服务器用于管理数据表中的父分区,所述分区服务器存储有第一分区范围检查器,所述第一分区范围检查器的分区范围为所述父分区的分区范围,
所述方法包括:
所述分区服务器在拆分所述父分区的过程中,接收所述客户端发送的第一读请求,所述第一读请求用于请求从所述父分区中读取第一数据记录;
所述分区服务器根据所述第一读请求从所述父分区中读取所述第一数据记录,读取所述第一数据记录的完成时刻晚于所述父分区的拆分完成时刻;
所述分区服务器使用所述第一分区范围检查器检查所述第一数据记录的行键值所属的分区的分区范围。


2.如权利要求1所述的方法,其特征在于,所述分区服务器存储有第二分区范围检查器,所述第二分区检查器的分区范围为第一目标子分区的分区范围,所述第一目标子分区为对所述父分区进行拆分得到的子分区,
所述方法还包括:
在所述父分区拆分完成后,所述分区服务器接收第二读请求,所述第二读请求用于请求从所述第一目标子分区中读取第二数据记录;
所述分区服务器从所述第一目标子分区中读取所述第二数据记录;
所述分区服务器使用所述第二分区范围检查器检查所述第二数据记录的行键值所属的分区的分区范围。


3.如权利要求1所述的方法,其特征在于,在拆分所述父分区的过程中,所述父分区对应的时间戳的值为最大值,在所述父分区拆分完成后,所述父分区对应的时间戳的值为所述父分区的拆分完成时刻。


4.如权利要求3所述的方法,其特征在于,所述方法还包括:
所述分区服务器获取所述第一读请求携带的时间戳;
若所述第一读请求携带的时间戳小于所述父分区对应的时间戳,所述分区服务器选择所述第一分区范围检查器检查所述第一数据记录的行键值所属的分区的分区范围。


5.如权利要求3或4所述的方法,其特征在于,所述分区服务器存储有第三分区范围检查器,所述第三分区范围检查器的分区范围为第二目标子分区的分区范围,所述第二目标子分区为对所述父分区进行拆分得到的子分区,
所述方法还包括:
所述分区服务器接收第三读请求,所述第三读请求用于请求从所述第二目标子分区中读取第三数据记录,所述第二目标子分区为对所述父分区进行拆分得到的子分区;
所述分区服务器获取所述第三读请求携带的时间戳;
若所述第三读请求携带的时间戳大于所述父分区对应的时间戳,所述分区服务器使用所述第三分区范围检查器检查所述第三数据记录的行键值所属的分区的分区范围。


6.如权利要求1-5中任一项所述的方法,其特征在于,所述分区服务器存储有所述父分区的分区元数据记录的多个副本,所述方法还包括:
在将所述父分区拆分为所述多个子分区之后,所述分区服务器将所述多个副本修改为所述多个子分区的分区元数据记录。


7.一种从分布式系统中读数据记录的分区服务器,其特征在于,所述分布式系统包括所述分区服务器和客户端,所述分区服务器用于管理数据表中的父分区,所述分区服务器存储有第一分区范围检查器...

【专利技术属性】
技术研发人员:向宇黄飞腾徐然
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1