一种数据读取方法、装置及数据读取系统制造方法及图纸

技术编号:28836707 阅读:11 留言:0更新日期:2021-06-11 23:33
本发明专利技术实施例提供了数据读取方法、装置及数据读取系统,应用于分布式数据处理技术领域。该方法应用于分布式系统中的事务管理器,该方法包括:当接收到针对多条行记录的读请求时,获取全局读时间戳;生成多个携带有全局读时间戳的待下发请求;针对每一待下发请求,向该待下发请求所对应分片集群中的目标从节点,下发该待下发请求,以使得目标从节点查找该待下发请求对应的行记录的、写事务提交时间戳不大于全局读时间戳的版本数据,并向事务管理器反馈所查找到的版本数据;基于各个目标从节点反馈的版本数据,确定读请求对应的响应结果。通过本方案,可以减小分布式系统中分片集群的主节点的负载压力。

【技术实现步骤摘要】
一种数据读取方法、装置及数据读取系统
本专利技术涉及分布式数据处理
,特别是涉及一种数据读取方法、装置及数据读取系统。
技术介绍
在金融级的业务中,分布式读一致性是分布式系统中基础的业务功能。例如在转账业务场景下,账户A和账户B之间发生转账行为,在进行账户数据读取时,要么均读取到账户A和账户B转账之前的账户数据,要么均读取到账户A和账户B转账之后的账户数据。其中,存在分布式读一致性要求的读请求通常为针对多条行记录的读请求。相关技术中,在获得针对多条行记录的读请求时,通常采用走主库的形式确保分布式读一致性,即通过分布式系统中各分片集群的主节点处理读请求。由于相关技术只能由主节点处理读请求,使得主节点的负载压力较大。
技术实现思路
本专利技术实施例的目的在于提供一种数据读取方法、装置及数据读取系统,以减小分布式系统的分片集群中的主节点的负载压力。第一方面,本专利技术实施例提供了一种数据读取方法,应用于分布式系统中的事务管理器,包括:当接收到针对多条行记录的读请求时,获取全局读时间戳,其中,所述全局读时间戳为:所述分布式系统的各分片集群对应的时间戳中的最小值,每一分片集群对应的时间戳为:该分片集群包含的各从节点的最大提交时间戳中值最小的时间戳,每一从节点的最大提交时间戳为:该从节点中已备份行记录的写事务提交时间戳中值最大的时间戳;生成多个携带有所述全局读时间戳的待下发请求;其中,每一待下发请求对应一个分片集群,且用于读取所述多条行记录中的、位于所对应分片集群的行记录;针对每一待下发请求,向该待下发请求所对应分片集群中的目标从节点,下发该待下发请求,以使得所述目标从节点查找该待下发请求对应的行记录的、写事务提交时间戳不大于所述全局读时间戳的版本数据,并向所述事务管理器反馈所查找到的版本数据;基于各个目标从节点反馈的版本数据,确定所述读请求对应的响应结果。可选地,所述获取全局读时间戳,包括:向所述分布式系统中的用于分配读时间戳的全局事务服务器,发送用于请求全局读时间戳的数据请求,以使所述全局事务服务器在接收到所述数据请求后,向所述事务管理器反馈所述全局读时间戳;接收所述全局事务服务器反馈的全局读时间戳。可选地,在针对每一待下发请求,向该待下发请求所对应分片集群中的目标从节点,下发该待下发请求之前,所述方法还包括:获取从节点状态信息,其中,所述从节点状态信息用于指示所述分布式系统的各分片集群中处于正常运行状态的从节点;针对所述多条行记录所位于的每一分片集群,基于所述从节点状态信息,从该分片集群的多个从节点中,筛选处于正常运行状态的目标从节点。第二方面,本专利技术实施例提供了一种数据读取方法,应用于分布式系统的分片集群中的从节点,包括:接收事务管理器下发的携带有全局读时间戳的待下发请求;其中,所述待下发请求是所述事务管理器在接收到针对多条行记录的读请求时,获取全局读时间戳后生成并下发的;所述待下发请求对应一个分片集群,且用于读取所述多条行记录中的、位于所对应分片集群的行记录;所述全局读时间戳为:所述分布式系统的各分片集群对应的时间戳中的最小值,每一分片集群对应的时间戳为:该分片集群包含的各从节点的最大提交时间戳中值最小的时间戳,每一从节点的最大提交时间戳为:该从节点中已备份行记录的写事务提交时间戳中值最大的时间戳;查找所接收到的待下发请求对应行记录的、写事务提交时间戳不大于所述全局读时间戳的版本数据;向所述事务管理器反馈所查找到的版本数据,以使得所述事务管理器基于所接收到的版本数据,确定所述读请求对应的响应结果。可选地,所述事务管理器获取全局读时间戳的方式,包括:向所述分布式系统中的用于分配读时间戳的全局事务服务器,发送用于请求全局读时间戳的数据请求,以使所述全局事务服务器在接收到所述数据请求后,向所述事务管理器反馈所述全局读时间戳;接收所述全局事务服务器反馈的所述全局读时间戳;所述方法还包括:在每次备份完成后,向所在分片集群的主节点发送最大提交时间戳,以使所述主节点定时从所接收的最大提交时间戳中筛选值最小的时间戳,基于所筛选的时间戳,确定所在分片集群对应的时间戳,并将所在分片集群对应的时间戳上报所述全局事务服务器,使得所述全局事务服务器从接收到的各分片集群对应的时间戳中筛选最小值,作为全局读时间戳。第三方面,本专利技术实施例提供了一种数据读取系统,所述系统包括:事务管理器和多个分片集群,每个分片集群包括从节点,其中:所述事务管理器,用于当接收到针对多条行记录的读请求时,获取全局读时间戳;生成多个携带有所述全局读时间戳的待下发请求;针对每一待下发请求,向该待下发请求所对应分片集群中的目标从节点,下发该待下发请求;其中,所述全局读时间戳为:所述数据读取系统的各分片集群对应的时间戳中的最小值,每一分片集群对应的时间戳为:该分片集群包含的各从节点的最大提交时间戳中值最小的时间戳,每一从节点的最大提交时间戳为:该从节点中已备份行记录的写事务提交时间戳中值最大的时间戳;每一待下发请求对应一个分片集群,且用于读取所述多条行记录中的、位于所对应分片集群的行记录;每一目标从节点,用于接收所述事务管理器下发的携带有全局读时间戳的待下发请求;查找所接收到的待下发请求对应行记录的、写事务提交时间戳不大于所述全局读时间戳的版本数据;向所述事务管理器反馈所查找到的版本数据;所述事务管理器,还用于基于各个目标从节点反馈的版本数据,确定所述读请求对应的响应结果。可选地,所述数据读取系统还包括:用于分配读时间戳的全局事务服务器;所述事务管理器获取全局读时间戳具体为:向所述全局事务服务器,发送用于请求全局读时间戳的数据请求,以使所述全局事务服务器在接收到所述数据请求后,向所述事务管理器反馈所述全局读时间戳;接收所述全局事务服务器反馈的全局读时间戳。可选地,每一分片集群还包括主节点;每一从节点,用于在每次备份完成后,向所在分片集群的主节点发送最大提交时间戳;每一主节点,用于接收所在分片集群的从节点发送的最大提交时间戳,定时从所接收的最大提交时间戳中,筛选值最小的时间戳,基于所筛选的时间戳,确定所在分片集群对应的时间戳,并将所在分片集群对应的时间戳发送至所述全局事务服务器;所述全局事务服务器,用于在接收到所述各分片集群对应的时间戳后,从所接收的时间戳中,筛选值最小的时间戳,作为所述全局读时间戳。可选地,每一主节点定时从所接收的最大提交时间戳中,筛选值最小的时间戳,作为所在分片集群对应的时间戳,具体为:定时从所接收的、属于处于正常运行状态的从节点的最大提交时间戳中,筛选值最小的时间戳;基于所筛选的时间戳,确定所在分片集群对应的时间戳。可选地,其特征在于,每一主节点基于所筛选的时间戳,确定所在分片集群对应的时间戳,具体为:若所筛选的时间戳不小于参考时间戳,则将所筛选的时间戳确定为所在分片集群对应的时本文档来自技高网...

【技术保护点】
1.一种数据读取方法,其特征在于,应用于分布式系统中的事务管理器,包括:/n当接收到针对多条行记录的读请求时,获取全局读时间戳,其中,所述全局读时间戳为:所述分布式系统的各分片集群对应的时间戳中的最小值,每一分片集群对应的时间戳为:该分片集群包含的各从节点的最大提交时间戳中值最小的时间戳,每一从节点的最大提交时间戳为:该从节点中已备份行记录的写事务提交时间戳中值最大的时间戳;/n生成多个携带有所述全局读时间戳的待下发请求;其中,每一待下发请求对应一个分片集群,且用于读取所述多条行记录中的、位于所对应分片集群的行记录;/n针对每一待下发请求,向该待下发请求所对应分片集群中的目标从节点,下发该待下发请求,以使得所述目标从节点查找该待下发请求对应的行记录的、写事务提交时间戳不大于所述全局读时间戳的版本数据,并向所述事务管理器反馈所查找到的版本数据;/n基于各个目标从节点反馈的版本数据,确定所述读请求对应的响应结果。/n

【技术特征摘要】
1.一种数据读取方法,其特征在于,应用于分布式系统中的事务管理器,包括:
当接收到针对多条行记录的读请求时,获取全局读时间戳,其中,所述全局读时间戳为:所述分布式系统的各分片集群对应的时间戳中的最小值,每一分片集群对应的时间戳为:该分片集群包含的各从节点的最大提交时间戳中值最小的时间戳,每一从节点的最大提交时间戳为:该从节点中已备份行记录的写事务提交时间戳中值最大的时间戳;
生成多个携带有所述全局读时间戳的待下发请求;其中,每一待下发请求对应一个分片集群,且用于读取所述多条行记录中的、位于所对应分片集群的行记录;
针对每一待下发请求,向该待下发请求所对应分片集群中的目标从节点,下发该待下发请求,以使得所述目标从节点查找该待下发请求对应的行记录的、写事务提交时间戳不大于所述全局读时间戳的版本数据,并向所述事务管理器反馈所查找到的版本数据;
基于各个目标从节点反馈的版本数据,确定所述读请求对应的响应结果。


2.根据权利要求1所述的方法,其特征在于,所述获取全局读时间戳,包括:
向所述分布式系统中的用于分配读时间戳的全局事务服务器,发送用于请求全局读时间戳的数据请求,以使所述全局事务服务器在接收到所述数据请求后,向所述事务管理器反馈所述全局读时间戳;
接收所述全局事务服务器反馈的全局读时间戳。


3.根据权利要求1或2所述的方法,其特征在于,在针对每一待下发请求,向该待下发请求所对应分片集群中的目标从节点,下发该待下发请求之前,所述方法还包括:
获取从节点状态信息,其中,所述从节点状态信息用于指示所述分布式系统的各分片集群中处于正常运行状态的从节点;
针对所述多条行记录所位于的每一分片集群,基于所述从节点状态信息,从该分片集群的多个从节点中,筛选处于正常运行状态的目标从节点。


4.一种数据读取方法,其特征在于,应用于分布式系统的分片集群中的从节点,包括:
接收事务管理器下发的携带有全局读时间戳的待下发请求;其中,所述待下发请求是所述事务管理器在接收到针对多条行记录的读请求时,获取全局读时间戳后生成并下发的;所述待下发请求对应一个分片集群,且用于读取所述多条行记录中的、位于所对应分片集群的行记录;所述全局读时间戳为:所述分布式系统的各分片集群对应的时间戳中的最小值,每一分片集群对应的时间戳为:该分片集群包含的各从节点的最大提交时间戳中值最小的时间戳,每一从节点的最大提交时间戳为:该从节点中已备份行记录的写事务提交时间戳中值最大的时间戳;
查找所接收到的待下发请求对应行记录的、写事务提交时间戳不大于所述全局读时间戳的版本数据;
向所述事务管理器反馈所查找到的版本数据,以使得所述事务管理器基于所接收到的版本数据,确定所述读请求对应的响应结果。


5.根据权利要求4所述的方法,其特征在于,所述事务管理器获取全局读时间戳的方式,包括:
向所述分布式系统中的用于分配读时间戳的全局事务服务器,发送用于请求全局读时间戳的数据请求,以使所述全局事务服务器在接收到所述数据请求后,向所述事务管理器反馈所述全局读时间戳;
接收所述全局事务服务器反馈的所述全局读时间戳;
所述方法还包括:
在每次备份完成后,向所在分片集群的主节点发送最大提交时间戳,以使所述主节点定时从所接收的最大提交时间戳中筛选值最小的时间戳,基于所筛选的时间戳,确定所在分片集群对应的时间戳,并将所在分片集群对应的时间戳上报所述全局事务服务器,使得所述全局事务服务器从接收到的各分片集群对应的时间戳中筛选最小值,作为全局读时间戳。


6.一种数据读取系统,其特征在于,所述系统包括:事务管理器和多个分片集群,每个分片集群包括从节点,其中:
所述事务管理器,用于当接收到针对多条行记录的读请求时,获取全局读时间戳;生成多个携带有所述全局读时间戳的待下发请求;针对每一待下发请求,向该待下发请求所对应分片集群中的目标从节点,下发该待下发请求;其中,所述全局读时间戳为:所述数据读取系统的各分片集群对应的时间戳中的最小值,每一分片集群对应的时间戳为:该分片集群包含的各从节点的最大提交时间戳中值最小的时间戳,每一从节点的最大提交时间戳为:该从节点中已备份行记录的写事务提交时间戳中值最大的时间戳;每一待下发请求对应一个分片集群,且用于读取所述多条行记录中的、位于所对应分片集群的行记录;
每一目标从节点,用于接收所述事务管理器下发的携带有全局读时间戳的待下发请求;查找所接收到的待下发请求对应行记录的、写事务提交时间戳不大于所述全局读时间戳的版本数据;向所述事务管理器反馈所查找到的版本数据;
所述事务管理器,还用于基于各个目标从节点反馈的版本数据,确定所述读请求对应的响应结果。


7.根据权利要求6所述的系统,其特征在于,所述数据读取系统还包括:用于分配读时间戳的全局事务服务器;
所述事务管理器获取全局读时间戳具体为:
向所述全局事务服务器,发送用于请求全局读时间戳的数据请求,以使所述全局事务服务器在接收到所述数据请求后,向所述事务管理器反馈所述全局读时间戳;
接收所述全局事务服务器反馈的全局读时间戳。


8.根据权利要求7所述的系统,其特征在于,每一分片集群还包括主节点;
每一从节点,用于在每次备份完成后,向所在分片集群的主节点发送最大提交时间戳;
每一主节点,用于接收所在分片集群的从节点发送的最大提交时间戳,定时从所接收的最大提交时间戳中,筛选值最小的时间戳,基于所筛选的时间戳,确定所在分片集群对应的时间戳,并将所在分片集群对应的时间戳发送至所述全局事务服务器;
所述全局事务服务器,用于在接收到所述各分片集群对应的时间戳后,从所接收的时间戳中,筛选值最小的...

【专利技术属性】
技术研发人员:王天宇
申请(专利权)人:北京金山云网络技术有限公司
类型:发明
国别省市:北京;11

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

1