System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向服务器无感知计算的事务保障方法技术_技高网
当前位置: 首页 > 专利查询>天津大学专利>正文

一种面向服务器无感知计算的事务保障方法技术

技术编号:41128426 阅读:2 留言:0更新日期:2024-04-30 17:56
本发明专利技术公开了一种面向服务器无感知计算的事务保障方法,该方法通过设计基于时钟屏障技术的会话可串行化事务协议,并在此基础上提供基于依赖追踪的事务容错机制,确保了工作流事务的执行符合会话可串行化且精确一次执行。对比现有为服务器无感知计算平台提供各类一致性技术,本发明专利技术设计的事务协议在提供最优性能和吞吐量的同时能避免各类事务异常,相比现有技术与通用方案在端到端延迟上快了2.2‑6.5倍,吞吐量提升1.5‑8倍;相比于现有技术,性能提升的同时扩展了应用场景,对比测试后发现乐观日志技术能充分降低日志比例,有效提升系统性能和吞吐量,相比全部进行日志的方案在端到端延迟上快了4.5‑7倍,吞吐量提升1.6‑2倍。

【技术实现步骤摘要】

本专利技术属于云计算,涉及一种面向服务器无感知计算的事务保障方法


技术介绍

1、服务器无感知计算作为新兴的云计算编程模型,由于具备对资源和编程的高度抽象、按需使用计费以及动态扩容等优势,已经成为日益流行的云计算开发范式。服务器无感知计算场景下,传统应用中的功能被拆分成了多个无状态函数。在应用开发中,事务被广泛用于确保共享状态的一致性和完整性,会话可串行化(strong session serializability)作为可串行化隔离的变体,能在保证可串行化与会话一致性的同时提供良好的性能,对于具有事务会话一致性和避免写偏斜等并发异常需求的应用来说是性能和一致性的最优选择,但现有的服务器无感知计算平台设计中函数的执行和状态管理分离,函数之间依赖外部云存储来管理状态,但是工作流中的事务可能跨多个函数或者具有多个数据源,而现有的云存储无法提供这种全局事务一致性,因此仅依靠云存储管理状态无法满足应用的一致性需求,需要探索如何为服务器无感知计算工作流提供会话可串行化。

2、目前为服务器无感知计算平台提供一致性保障的工作都集中在提供无须协调的弱一致性和最强的严格可串行化,缺少为工作流提供会话可串行化的相关研究。然而,要为服务器无感知计算工作流提供会话可串行化具有两大挑战:(1)虽然当前面向有状态的数据库领域提供可串行化保障的事务协议已有较多工作,在此基础上保证同一会话中的事务有序,现有技术需要保存上次执行的会话状态,例如数据库连接、提交时间戳等元数据,这与服务器无感知计算平台中函数无状态的特性相矛盾,在服务器无感知计算平台中请求可能被转发到不同的函数实例中,函数实例也随时可能被回收,这使得会话一致性无法保障,因此需要为服务器无感知计算平台设计事务与会话状态的管理机制;(2)服务器无感知计算平台通常提供至少一次的容错机制,当函数或者工作流故障时会重新执行,但由于服务器无感知计算平台无法感知到事务的执行状态,因此还可能带来工作流中事务重复执行的问题。


技术实现思路

1、针对现有方法中存在的技术问题,本专利技术的目的在于提供一种面向服务器无感知计算的事务保障方法,该方法通过设计基于时钟屏障技术的会话可串行化事务协议,并在此基础上提供基于依赖追踪的事务容错机制,确保了工作流事务的执行符合会话可串行化且精确一次执行,解决了现有服务器无感知计算应用中的会话可串行化保障缺失等问题。

2、为了实现上述目的,本专利技术采用了如下技术方案:

3、一种面向服务器无感知计算的事务保障方法,包括以下步骤:

4、s1、用户发起工作流请求,所述工作流中包含多个事务;

5、s2、将发起的工作流的每个请求与一个唯一的请求id相关联;

6、s3、执行工作流的一个事务,事务的执行包括事务协议的执行、准备和提交三个阶段;

7、s4、继续执行工作流的下一个事务;

8、s5、返回工作流的执行结果。

9、优选地,步骤s3中,所述事务的执行包括事务协议的执行、准备和提交三个阶段,具体包括以下步骤:

10、执行阶段:包括时钟屏障的获取和编排器函数的执行两个部分,具体为:当编排器函数根据请求的会话标识,异步的获取时钟屏障,同时编排器函数编排调用工作流的其他函数,当其他函数执行写操作时需要尝试在事务管理器上加锁并获取该对象的最新租约,而读操作直接转发至数据缓存中,在读取或写入对象时也返回其逻辑租约,读写的数据会保存在函数实际执行的节点的事务缓冲区中,而编排调用函数时仅会传递读写集的元数据。

11、准备阶段:计算提交时间戳,然后验证事务的读写集、保存写入数据到临时表并决定是否提交,计算的提交时间戳(cts)只有满足如下三个条件时才符合会话可串行化:

12、(1)

13、(2)

14、(3)cts≥t.tf。

15、满足条件(1)和条件(2)条件只能保证事务的执行符合可串行化,条件(3)依赖于时钟屏障技术,确保事务会话一致性。

16、在tf获取完成后,根据上述条件计算出提交时间戳,若不存在该时间戳则事务将中止,否则将由事务管理器对读写集进行验证:对于读集,验证过程为扩展事务管理器中保存的租约;对于写集,由于需要确保写集已经持久化到临时表中并且锁未丢失,因此也需要验证,只有验证全部通过后才可提交事务,提交前需要保存会话信息记录事务日志。

17、提交阶段:如果事务确认可以提交,负责协调的事务性缓存会异步通知所有参与的事务管理器将写入集同步到实际使用的表中,然后解锁并清理临时存储区域,最后将删除各个节点事务缓冲区中已提交事务的读/写集。

18、优选地,步骤s3中,若提交事务完成,但是在结果返回给用户或者编排器之前故障,需要通过基于依赖追踪的乐观日志记录策略推迟日志记录,只有在发现可能会造成不一致的输出观测时才进行日志,具体划分为事务类型标记和选择性日志记录两个步骤:

19、(1)事务类型标记:事务类型标记用于识别动态工作流中的事务的特征和依赖关系,包括事务是否为只读、事务的依赖关系,标记过程在会话可串行化事务协议的准备阶段中识别读写集和输入来源进行。这种在线标记的方式不要求工作流的结构与执行逻辑固定,能够支持动态工作流,使用场景更加普遍;

20、(2)选择性日志记录:选择性日志记录的过程中对读写事务与只读事务进行区分,只读事务仅保存在事务缓冲区中,而读写事务的输出必须记录以确保写操作不会重复执行;当记录读写事务时,需要判断是否存在与其并行的其他事务,若存在则需要记录共同的祖先事务的结果以确保工作流中的事务看到的输出是一致的,这需要通过广度优先遍历事务缓冲区中该读写事务依赖的所有祖先事务,并行的判断是基于分流汇聚原则,具体为:在工作流开始时传递flow=1,当出现分支时将其均分,根据工作流中该位置flow的相对大小判断是否存在其他并行事务,因此,事务缓冲区中的只读事务的日志记录被推迟到了发现存在并行的事务依赖其输出时才持久化。

21、本专利技术的有益效果:

22、(1)本专利技术中,事务协议的设计借鉴了现有的工作,并在此基础上针对服务器无感知计算平台无状态的特性设计了时钟屏障技术,在弥补了会话一致性缺失的同时,相比于直接使用云存储管理会话的方案降低了99%的持久化次数,说明该方案能充分减少持久化开销。为了使事务协议的各阶段的在服务器无感知计算平台上高效执行,设计时充分利用了缓存来管理事务状态,使用并行来尽量缩短协议的关键路径长度。最终对比现有的为服务器无感知计算平台提供各类一致性的技术后发现本专利技术设计的事务协议在提供最优的性能和吞吐量的同时,能够避免各类事务异常,相比现有技术与通用方案在端到端延迟上快了2.2倍-6.5倍,吞吐量提升1.5-8倍。

23、(2)本专利技术中事务容错部分只有当发现依赖关系时才进行记录,利用这种在线检测的思路支持动态工作流,通过选择性日志记录降低日志开销,相比于现有技术,性能提升的同时扩展了应用场景。对比测试本文档来自技高网...

【技术保护点】

1.一种面向服务器无感知计算的事务保障方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的面向服务器无感知计算的事务保障方法,其特征在于:步骤S3中,所述事务的执行包括事务协议的执行、准备和提交三个阶段,具体包括以下步骤:

3.根据权利要求1所述的面向服务器无感知计算的事务保障方法,其特征在于:步骤S3中,若提交事务完成,但是在结果返回给用户或者编排器之前故障,需要通过基于依赖追踪的乐观日志记录策略推迟日志记录,只有在发现可能会造成不一致的输出观测时才进行日志,具体划分为事务类型标记和选择性日志记录两个步骤:

【技术特征摘要】

1.一种面向服务器无感知计算的事务保障方法,其特征在于:包括以下步骤:

2.根据权利要求1所述的面向服务器无感知计算的事务保障方法,其特征在于:步骤s3中,所述事务的执行包括事务协议的执行、准备和提交三个阶段,具体包括以下步骤:

3.根据权利要求1...

【专利技术属性】
技术研发人员:赵来平吴世豪李克秋
申请(专利权)人:天津大学
类型:发明
国别省市:

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

1