【技术实现步骤摘要】
数据读取方法、装置、计算机设备及存储介质
本专利技术涉及数据库
,特别涉及一种数据读取方法、装置、计算机设备及存储介质。
技术介绍
目前的分布式数据库系统中,有很多可以支持跨节点的写操作,也即是,对于某一个写操作来说,可能涉及到对分布式数据库系统中多个节点设备的写入过程,由此,可能会产生读取数据的事务一致性问题。例如:当实现跨节点的写操作时,假设有两个节点设备,已经完成了事务提交的准备阶段,本事务可以提交,第一个节点设备提交完成,第二个节点设备正在提交过程中却尚未提交,此时,分布式数据库系统新来了一个全局读操作,第一个节点设备已提交的数据被读取,但是第二个节点设备因尚未完成数据提交,而导致其正在提交的数据无法被读取,这种不一致现象,称为分布式读半已提交异常(DistributedReadCommitted-Committinganomaly,简称DRCC异常),因此,目前的数据读取过程中,不能保证读取的数据处于事务一致的状态。
技术实现思路
本专利技术实施例提供了一种数据读取方法、装置、计算机设备及存储介质,能够解决目前的数据读取过程中,不能保证读取的数据处于事务一致的状态的问题。该技术方案如下:一方面,提供了一种数据读取方法,该方法包括:当接收到数据读取请求时,根据所述数据读取请求携带的读取条件,确定符合所述读取条件的多个元组;获取所述多个元组所对应的多个全局事务的全局事务状态;根据所述多个全局事务的全局事务状态,获取所述多个全局事务的全局提交时刻; ...
【技术保护点】
1.一种数据读取方法,其特征在于,所述方法包括:/n当接收到数据读取请求时,根据所述数据读取请求携带的读取条件,确定符合所述读取条件的多个元组;/n获取所述多个元组所对应的多个全局事务的全局事务状态;/n根据所述多个全局事务的全局事务状态,获取所述多个全局事务的全局提交时刻;/n基于所述多个全局事务的全局提交时刻,从所述多个元组中确定目标元组,所述目标元组相对于所述数据读取请求可见。/n
【技术特征摘要】
1.一种数据读取方法,其特征在于,所述方法包括:
当接收到数据读取请求时,根据所述数据读取请求携带的读取条件,确定符合所述读取条件的多个元组;
获取所述多个元组所对应的多个全局事务的全局事务状态;
根据所述多个全局事务的全局事务状态,获取所述多个全局事务的全局提交时刻;
基于所述多个全局事务的全局提交时刻,从所述多个元组中确定目标元组,所述目标元组相对于所述数据读取请求可见。
2.根据权利要求1所述的方法,其特征在于,当所述数据读取请求中携带指定时刻时,所述根据所述多个全局事务的全局事务状态,获取所述多个全局事务的全局提交时刻包括:
对所述多个元组中任一元组所对应的任一全局事务,如果所述全局事务在所述指定时刻的全局事务状态为已提交状态或正在提交状态,当所述全局事务的事务完成时刻大于所述指定时刻时,将所述全局事务的全局提交时刻置为所述指定时刻与任一正数相加所得到的数值;当所述全局事务的事务完成时刻不大于所述指定时刻时,将所述全局事务的全局提交时刻置为所述事务完成时刻。
3.根据权利要求1所述的方法,其特征在于,当所述数据读取请求中携带指定时刻时,所述根据所述多个全局事务的全局事务状态,获取所述多个全局事务的全局提交时刻包括:
对所述多个元组中任一元组所对应的任一全局事务,如果所述全局事务在所述指定时刻的全局事务状态为正在执行状态、正在准备状态、已回滚状态或者正在回滚状态中任一状态,将所述全局事务的全局提交时刻置为所述指定时刻与任一正数相加所得到的数值。
4.根据权利要求1所述的方法,其特征在于,当所述数据读取请求中携带指定时间段时,所述根据所述多个全局事务的全局事务状态,获取所述多个全局事务的全局提交时刻包括:
基于所述指定时间段的起始时刻,执行获取所述多个全局事务在所述起始时刻下的全局提交时刻的操作;
基于所述指定时间段的终止时刻,执行获取所述多个全局事务在所述终止时刻下的全局提交时刻的操作。
5.根据权利要求1所述的方法,其特征在于,所述基于所述多个全局事务的全局提交时刻,从所述多个元组中确定目标元组包括:
当所述数据读取请求中携带指定时刻时,对所述多个元组中任一元组,如果产生所述元组的全局事务的全局提交时刻小于所述指定时刻,且修改所述元组的全局事务的全局提交时刻大于所述指定时刻,将所述元组确定为一个目标元组。
6.根据权利要求1所述的方法,其特征在于,所述基于所述多个全局事务的全局提交时刻,从所述多个元组中确定目标元组包括:
当所述数据读取请求中携带指定时间段时,对所述多个元组中任一元组,如果产生所述元组的全局事务的全局提交时刻小于所述指定时间段的终止时刻,且修改所述元组的全局事务的全局提交时刻大于所述指定时间段的起始时刻,将所述元组确定为一个目标元组。
7.根据权利要求1所述的方法,其特征在于,所述获取所述多个元组所对应的多个全局事务的全局事务状态包括:
对所述多个元组中的任一元组上记录的全局事务标识,从本地的事务状态列表中,查询是否存在与所述全局事务标识所对应的全局事务状态;
当存在时,获取与所述全局事务标识所对应的全局事务状态;
当不存在时,向所述全局事务标识对应的多个节点设备发送查询请求,接收所述多个节点设备中任一节点设备返回的全局事务状态。
8.根据权利要求1所述的方法,其特征在于,每个全局事务对应于一个事务状态元组,所...
【专利技术属性】
技术研发人员:李海翔,卢卫,杜小勇,赵展浩,潘安群,
申请(专利权)人:中国人民大学,腾讯科技深圳有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。