使用时间戳对网络中的事务进行分布式处理制造技术

技术编号:36491332 阅读:17 留言:0更新日期:2023-02-01 15:05
本发明专利技术涉及一种用于处理事务序列以在分布式系统中维护一致性的技术。节点从客户端接收与第一时间戳相关联的数据记录的第一事务。所述节点标识与所述第一事务冲突的所述数据记录的第二事务,其中,所述标识的第二事务具有第二时间戳,所述第二时间戳是存储在所述节点中的最近事务。然后,所述节点接收对所述第二事务的传输状态的确定,并且基于所述确定的传输状态,所述第一事务的结果被发送,以完成从客户端接收的所述第一事务,在所述第一事务的完整传输时间段大于或等于所述分布式系统的最小事务延迟(minimum transaction latency,MTL)之后,所述第一事务完成。所述第一事务完成。所述第一事务完成。

【技术实现步骤摘要】
【国外来华专利技术】使用时间戳对网络中的事务进行分布式处理
[0001]优先权申明
[0002]本申请要求于2020年5月30日提交的申请号为63/032,589的美国临时申请的优先权的权益,其全部内容通过引用并入本文中。


[0003]本专利技术大体上涉及网络中事务的分布式处理。

技术介绍

[0004]在传统的数据库系统中,数据库软件安装在一台机器上。这支持系统管理并发用户,同时确保他们观察数据库的一致状态,并确保并发和潜在冲突的修改保持这种一致性。但是,传统的方法将数据库系统的性能容量限制在单机的容量上,这在架构中造成了单点故障。随着全球业务和服务的兴起,增加这种容量的要求推动了分布式数据库系统的出现,在这种系统中,数据被小心地分割(分区)在成百上千台机器中,这些机器可以物理地分布在地理区域,例如大陆。
[0005]在具有跨越地理区域分布的超过数十亿用户的系统中,数据一致性要求至关重要。已经开发了许多方案来解决这种数据一致性要求。但是,在这些相互竞争的目标之间取得良好的平衡是一个难题。在当前可用的系统中,这可以通过权衡一致性以获得较好的延迟,或者通过使数据库事务适用于小的事务子类来实现。

技术实现思路

[0006]根据本专利技术的一个方面,提供了一种用于处理事务序列以在分布式系统中维护一致性和延迟的计算机实现的方法,包括:节点接收与第一时间戳相关联的数据记录的第一事务;所述节点标识与所述第一事务冲突的所述数据记录的第二事务,其中,所述标识的第二事务具有第二时间戳,所述第二时间戳是所述节点中存储的最近事务;所述节点接收对所述第二事务的传输状态的确定;所述节点基于对所述传输状态的所述确定,发送所述第一事务的结果,以完成从客户端接收的所述第一事务,在所述第一事务的完整传输时间段大于或等于所述分布式系统的最小事务延迟(minimum transaction latency,MTL)之后,所述第一事务完成。
[0007]可选地,在上述方面中,所述第一时间戳和所述第二时间戳包括不确定性窗口,并且所述不确定性窗口基于发布所述第一时间戳或所述第二时间戳的时间戳服务处的标准时钟同步误差。
[0008]可选地,在上述任一方面中,所述分布式系统中所有时间戳服务处的所述标准时钟同步误差的最大值小于最小事务延迟(minimum transaction latency,MTL)。
[0009]可选地,在上述任一方面中,所述第一时间戳包括第一序列号和第一不确定性窗口,所述第二时间戳包括第二序列号和第二不确定性窗口。
[0010]可选地,在上述任一方面中,所述第一时间戳和所述第二时间戳由不同的时间戳
latency,MTL)之后,所述第一事务完成。
[0020]提供本
技术实现思路
是为了以简化的形式介绍在以下具体实施方式中进一步描述的一些概念。本
技术实现思路
不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于帮助确定所要求保护的主题的范围。所要求保护的主题不限于解决
技术介绍
中所指出的任何或所有缺点的实现方式。
附图说明
[0021]本专利技术的各方面通过示例的方式示出,并且不由附图限制,附图中相同的附图标记表示相同的元件。
[0022]图1示出了本专利技术的实施例可以在其中实现的一种示例性系统。
[0023]图2示出了根据本专利技术的实施例的启动事务的示例。
[0024]图3示出了根据所公开实施例的事务的示例性读取操作。
[0025]图4示出了在读取操作期间的示例性推送操作。
[0026]图5示出了根据所公开实施例的事务的示例性写入操作。
[0027]图6示出了写入操作期间的示例性推送操作。
[0028]图7示出了根据本专利技术的提交操作的示例。
[0029]图8示出了根据本专利技术的实施例的节点的实施例。
[0030]图9示出了用于实现本专利技术的实施例的计算系统的示例性实施例。
具体实施方式
[0031]下面参考附图描述本专利技术,这些附图大体上涉及在分布式系统中建立信任关系的技术。
[0032]更具体地,本专利技术通过使用所公开的技术对操作进行排序,来为事务提供一致性级别(也称为顺序一致性级别)。分布式事务系统中事件和事务的定时一直是系统一致性和并发控制的基本问题。传统上,有不同的方法来解决这些问题,例如TimeVector、全局时间戳、TrueTime(例如Google Spanner)、HybridLogicTime等。但是,传统方法也有其局限性。例如,全局时间戳(即标量值)受益于确定性,但在可扩展性和延迟方面存在问题。TrueTime(由时间不确定性窗口定义,具有开始时间和结束时间,其间包括的RealTime具有确定性)具有可扩展性的好处,并将不确定性暴露给系统,以便在不同场景下使用不同的方法处理。但是,延迟受到显著影响。
[0033]时间戳服务(本文也称为“TSO”)用于单个数据中心和地理远程或跨区域数据中心。时间戳服务的功能是生成时间戳,以用于确定任何两个操作的相对严格顺序,即使它们的事务来自不同的地理区域并使用来自不同时间戳服务的时间戳指定时也是如此。潜在冲突是根据操作的时间戳的严格顺序检测的。可序列化快照隔离级别(即,一个事务与其它并发事务导致的资源或数据修改隔离的程度)通过禁止不同事务对同一数据的冲突读取/写入操作来支持。例如,可以避免“写入后写入”和“写入后读取”冲突,以实现可序列化隔离。
[0034]除了顺序一致性之外,本专利技术还提供了“外部因果一致性”。如上所述,顺序一致性表示分布式系统的所有内部参与者完全同意所有事件/事务(分布式系统内)的顺序。但是,顺序一致性缺乏对外部因果一致性的支持。另一方面,外部因果关系一致性可以正确地维
护由分布式系统外部的客户端触发的具有因果关系的任何两个事件/事务的顺序,而分布式系统不知道,也不需要包括这种因果关系的明确记录。
[0035]应理解,本专利技术实施例可以以多种不同方式实现,并且权利要求的范围不应被解释为局限于本文中阐述的实施例。相反,提供这些实施例是为了使本专利技术透彻和完整,并且向本领域技术人员充分传达本专利技术实施例概念。事实上,本专利技术旨在覆盖包括在由所附权利要求书限定的本专利技术的精神和范围内的这些实施例的替代物、修改和等同物。此外,在以下对本专利技术实施例的详细描述中,为了提供透彻的理解,阐述了许多具体细节。但是,本领域普通技术人员很清楚,可以在没有这些具体细节的情况下实施本专利技术实施例。
[0036]图1示出了用于实现事务的分布式数据中心的示例性实施例。系统100可以包括可以通过网络130通信的数据中心105。在一个实施例中,系统100支持多版本并发控制(multi

version concurrency control,MVCC)。每个数据中心105都可以包括节点(例如,服务器和/或数据存储器)110、客户端160、时间戳服务120和配置服务140。客户端160可以通过有线连接或无线连接(例如网络)在数据中心105内通信,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于处理事务序列以在分布式系统中维护一致性和延迟的计算机实现的方法,其特征在于,包括:节点接收与第一时间戳相关联的数据记录的第一事务;所述节点标识与所述第一事务冲突的所述数据记录的第二事务,其中,所述标识的第二事务具有第二时间戳,所述第二时间戳是所述节点中存储的最近事务;所述节点接收对所述第二事务的传输状态的确定;所述节点基于对所述传输状态的所述确定,发送所述第一事务的结果,以完成从客户端接收的所述第一事务,在所述第一事务的完整传输时间段大于或等于所述分布式系统的最小事务延迟(minimum transaction latency,MTL)之后,所述第一事务完成。2.根据权利要求1所述的计算机实现的方法,其特征在于,所述第一时间戳和所述第二时间戳包括不确定性窗口,并且所述不确定性窗口基于发布所述第一时间戳或所述第二时间戳的时间戳服务处的标准时钟同步误差。3.根据权利要求2所述的计算机实现的方法,其特征在于,所述分布式系统中所有时间戳服务处的所述标准时钟同步误差的最大值小于最小事务延迟(minimum transaction latency,MTL)。4.根据权利要求1所述的计算机实现的方法,其特征在于,所述第一时间戳包括第一序列号和第一不确定性窗口,所述第二时间戳包括第二序列号和第二不确定性窗口。5.根据权利要求4所述的计算机实现的方法,其特征在于,还包括分别根据所述第一序列号和所述第二序列号对所述第一事务和所述第二事务顺序地排序,其中,所述第一时间戳和所述第二时间戳由第一时间戳服务发布。6.根据权利要求5所述的计算机实现的方法,其特征在于,所述第一时间戳和所述第二时间戳由不同的时间戳服务实例发布,当所述序列号被绑定时,所述绑定被时间戳服务实例ID打破。7.根据权利要求1所述的计算机实现的方法,其特征在于,当所述第一事务为读取操作,所述第二事务为写入意图操作时,所述第二事务的所述传输状态被确定为提交,发送给所述客户端的所述结果为写入意图操作的数据记录;当所述第一事务为写入操作,所述第二事务为写入意图操作时,所述第二事务的所述传输状态被确定为提交,发送给所述客户端的所述结果是成功消息。8.根据权利要求1所述的计算机实现的方法,其特征在于,当所述第一事务为读取操作,所述第二事务为写入意图操作时,所述第二事务的所述传输状态被确定为中止,发送给所述客户端的所述结果为所述写入意图操作之前提交的所述数据记录;当所述第一事务为写入操作,所述第二事务为写入意图操作时,所述第二事务的所述传输状态被确定为中止,发送给所述客户端的所述结果是成功消息。9.根据权利要求1所述的计算机实现的方法,其特征在于,所述第一事务为读取操作,所述第二事务为写入意图操作,
所述第二事务的所述传输状态被确定为进行中,所述方法还包括:根据分别分配的优先级中的最低优先级,中止所述第一事务或所述第二事务中的一个;当所述第一事务的优先级和所述第二事务的优先级相同时,根据所述第一时间戳和所述第二时间戳中的最旧的时间戳中止所述第一事务和所述第二事务中的一个。10.根据权利要求9所述的计算机实现的方法,其特征在于,当所述第二事务被中止时,将所述第二事务标记为中止并发布异步传输清理,发送给所述客户端的所述结果为所述写入意图操作之前提交的所述数据记录;当所述第一事务被中止时,所述发送的结果是所述读取操作失败。11.根据权利要求9所述的计算机实现的方法,其特征在于,当所述第一事务和所述第二事务是同一事务时,响应于所述读取操作,所述写入意图被返回。12.根据权利要求1所述的计算机实现的方法,其特征在于,所述第一事务为写入操作,所述第二事务为写入意图操作,所述第二事务的所述传输状态被确定为进行中,所述方法还包括:根据分别分配的优先级中的最低优先级,中止所述第一事务或所述第二事务中的一个;当所述第一事务的优先级和所述第二事务的优先级相同时,根据所述第一时间戳和所述第二时间戳中的最旧的时间戳中止所述第一事务和所述第二事务中的一个。13.根据权利要求12所述的计算机实现的方法,其特征在于,当所述第二事务被中止时,将所述第二事务标记为中止并发布异步传输清理,发送给所述客户端的所述结果是成功消息;当所述第一事务被中止时,所述发送的结果是失败消息。14.一种用于处理事务序列以在分布式系统中...

【专利技术属性】
技术研发人员:
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

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

1