System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向serverless工作流的高效容错机制优化方法技术_技高网
当前位置: 首页 > 专利查询>天津大学专利>正文

一种面向serverless工作流的高效容错机制优化方法技术

技术编号:39979432 阅读:10 留言:0更新日期:2024-01-09 01:24
本发明专利技术公开了一种面向serverless工作流的高效容错机制优化方法,属于云计算技术领域;本发明专利技术基于Boki同步共享日志系统,对异步日志系统接口、异步日志系统组件设计以及异步日志系统应用进行设计,通过对比容错机制所使用的日志数据一致性需求差异,对数据一致性需求低的日志请求采用异步的方式进行持久化日志记录,对异步日志系统的接口、组件及应用进行优化设计,降低具有严格一次语义容错机制的serverless工作流的端到端延迟。

【技术实现步骤摘要】

本专利技术涉及云计算,具体为一种面向serverless工作流的高效容错机制优化方法


技术介绍

1、serverless技术,即服务器无感知计算技术,具有敏捷、低成本、可扩展性强和隔离性强的优点,是云计算未来的发展趋势。

2、function as a service(faas)范式,或函数即服务范式,是一种常见的serverless编程范式。使用faas范式开发的应用程序将云函数编排为事件驱动的serverless工作流,运行在云服务商提供的faas平台上,通过消息队列或对象存储等中间服务共享状态。这种状态管理方式给有状态应用带来了两个挑战:共享状态的数据一致性和工作流中数据访问请求的性能开销。

3、当前的商业faas平台基于重试出错函数的策略实现故障恢复,可能导致故障情况下应用数据一致性被破坏。例如一个电子购物网站应用,顾客向购物车添加一件商品。在相关函数执行结束后,可能因为网络原因或者资源不足而出错,被平台自动重试,导致顾客看到多件商品被添加到购物车。

4、共享日志被广泛用于构建强一致性,容错和高可扩展的分布式系统。现有工作已经在faas平台上集成共享日志用于状态管理,实现了严格一次执行语义的工作流容错机制。但是现有基于共享日志的容错机制使用同步api接口访问日志存储,并且在serverless工作流的函数编排场景中远程数据访问接口调用次数多,使得工作流延迟高,进而导致延迟敏感的交互式应用程序的用户体验差。为了解决上述问题,本专利技术提出一种面向serverless工作流的高效容错机制优化方法。


技术实现思路

1、1、本专利技术要解决的技术问题

2、本专利技术的目的在于提出一种面向serverless工作流的高效容错机制优化方法,通过对比容错机制所使用的日志数据一致性需求差异,对数据一致性需求低的日志请求采用异步的方式进行持久化日志记录,从而降低具有严格一次语义容错机制的serverless工作流的端到端延迟,进而解决
技术介绍
中所提到的问题。

3、2、技术方案

4、为实现上述目的,本专利技术提供如下技术方案:

5、一种面向serverless工作流的高效容错机制优化方法,通过对比容错机制所使用的日志数据一致性需求差异,对数据一致性需求低的日志请求采用异步的方式进行持久化日志记录,对异步日志系统的接口、组件及应用进行优化设计,降低具有严格一次语义容错机制的serverless工作流的端到端延迟,具体包括如下内容:

6、①异步日志系统接口设计:将异步日志写入接口的日志追加请求分为阻塞的本地请求路径和非阻塞的远程请求路径;

7、②异步日志系统组件设计:基于同步日志系统,在其基础上添加日志实时性校验和日志拓扑排序两个功能以保证系统正确性,其中,所述日志实时性校验在函数引擎节点做数据版本校验,保证异步日志读操作的读一致性;所述日志拓扑排序在客户端对日志做二次排序,保证异步日志请求的全局顺序与请求发起的顺序相同;

8、③异步日志系统应用设计:系统内部请求使用异步日志写入,对系统外部请求使用同步日志写入,解决由于工作流内多次使用同步请求做容错日志记录,导致工作流端到端延迟高的问题。

9、优选地,所述异步日志系统接口设计中阻塞的本地请求路径和非阻塞的远程请求路径均返回对应的id以定位在系统中传递的请求内容,分别记作localid和seqnum;其中,所述localid为本地请求在函数引擎节点生成的id编号,生成后立即返回给函数,无需绕行远程请求路径;不同节点生成的localid全局唯一但没有顺序关系,用于构建客户端请求句柄;所述seqnum为远程请求在共享日志排序器节点生成的id编号,该序号在后台存储到与localid对应的日志索引中,与localid构成一对一映射,之后再返回给客户端;所述seqnum全局唯一且代表日志追加请求的全局顺序,用于多客户端间复制有序日志序列,构建全局一致的数据视图;由于日志追加请求过程中的日志排序请求是远程请求,在后台进行,所以如果应用不需要立即使用seqnum,就可以在日志追加请求结束之前继续执行用户代码,直到需要日志seqnum时再主动等待远程请求结束。

10、优选地,所述日志实时性校验功能设计具体包括如下内容:构建日志联合索引,使用联合索引的可见性作为实时性校验依据;所述日志联合索引使用localid作为一级索引,请求结束后得到日志seqnum作为二级索引,二者结合为联合索引<localid,seqnum>,用户使用二者任何一个发起读请求;当用户发起异步日志追加请求后,本地请求生成的localid除返回客户端外,也同时跟随远程请求传递,在日志得到seqnum序号后组成联合索引广播到所有函数引擎节点以供客户端读取,如果日志重放请求直接使用seqnum读取日志条目,则localid也一定同时可见;若用户在远程日志追加请求返回seqnum之前利用localid发出日志读取请求,则系统阻塞并等待对应的seqnum返回,之后即可返回它们的组合;因此,联合索引<localid,seqnum>的可见性与seqnum可见性相同,以保证其与同步日志相同的read-your-write一致性。

11、优选地,所述日志拓扑排序功能设计具体包括如下内容:添加新的日志因果依赖元数据和日志拓扑排序算法以解决异步日志排序问题;

12、所述日志因果依赖元数据设计具体指:按照工作流执行顺序在请求参数中标记之前发起的日志请求,作为日志因果依赖元数据,内容是由localid构成的列表,命名为deps列表,作为日志数据一部分持久化;当日志追加从本地请求路径返回时,得到全局唯一的localid,然后用户选择将localid作为日志元数据的一部分添加到下一个日志追加请求的deps列表中,以建立日志追加请求发起的因果顺序;同时用户将localid作为函数的参数传递,以支持跨多个函数节点构建日志追加请求发起顺序;最终的日志条目形成一个因果依赖dag图;所述因果依赖dag图在发送出当前请求的deps列表之前无法获取当前请求的localid,并且任何已发送请求的日志数据都是只读的,因此所述因果依赖dag图中不存在环;

13、所述日志拓扑排序算法设计具体指:将排序算法放置在客户端共享日志接口与用户函数中间;算法输入为从共享日志接口按照seqnum顺序读取的日志序列;算法输出为使用联合索引重新排序后的日志序列;根据日志实时性校验中联合索引的设计描述,联合索引可见性与seqnum相同,按照seqnum顺序读取日志序列保证localid和seqnum同时可见;根据日志seqnum的全局有序性,从客户端日志接口按照seqnum读取的日志项具有前缀一致性,所以排序算法输入的日志序列具有前缀一致性;因为localid和seqnum都是全局唯一的,并且一一对应,所以联合索引<localid,seqnum>也具有与seqnum相同的前缀一致性。

本文档来自技高网...

【技术保护点】

1.一种面向serverless工作流的高效容错机制优化方法,其特征在于,基于Boki同步共享日志系统,通过对比容错机制所使用的日志数据一致性需求差异,对数据一致性需求低的日志请求采用异步的方式进行持久化日志记录,对异步日志系统的接口、组件及应用进行优化设计,降低具有严格一次语义容错机制的serverless工作流的端到端延迟,具体包括如下内容:

2.根据权利要求1所述的面向serverless工作流的高效容错机制优化方法,其特征在于,所述异步日志系统接口设计中阻塞的本地请求路径和非阻塞的远程请求路径均返回对应的id以定位在系统中传递的请求内容,分别记作localid和seqnum;其中,所述localid为本地请求在函数引擎节点生成的id编号,生成后立即返回给函数,无需绕行远程请求路径;不同节点生成的localid全局唯一但没有顺序关系,用于构建客户端请求句柄;所述seqnum为远程请求在共享日志排序器节点生成的id编号,该序号在后台存储到与localid对应的日志索引中,与localid构成一对一映射,之后再返回给客户端;所述seqnum全局唯一且代表日志追加请求的全局顺序,用于多客户端间复制有序日志序列,构建全局一致的数据视图。

3.根据权利要求1所述的一种面向serverless工作流的高效容错机制优化方法,其特征在于,所述日志实时性校验功能设计具体包括如下内容:构建日志联合索引,使用联合索引的可见性作为实时性校验依据;所述日志联合索引使用localid作为一级索引,请求结束后得到日志seqnum作为二级索引,二者结合为联合索引<localid,seqnum>,用户使用二者任何一个发起读请求;当用户发起异步日志追加请求后,本地请求生成的localid除返回客户端外,也同时跟随远程请求传递,在日志得到seqnum序号后组成联合索引广播到所有函数引擎节点以供客户端读取,如果日志重放请求直接使用seqnum读取日志条目,则localid也一定同时可见;若用户在远程日志追加请求返回seqnum之前利用localid发出日志读取请求,则系统阻塞并等待对应的seqnum返回,之后即可返回它们的组合;因此,联合索引<localid,seqnum>的可见性与seqnum可见性相同,以保证其与同步日志相同的read-your-write一致性。

4.根据权利要求1所述的一种面向serverless工作流的高效容错机制优化方法,其特征在于,所述日志拓扑排序功能设计具体包括如下内容:添加新的日志因果依赖元数据和日志拓扑排序算法以解决异步日志排序问题;

5.根据权利要求1所述的一种面向serverless工作流的高效容错机制优化方法,其特征在于,所述异步日志系统应用设计进一步包括如下内容:

...

【技术特征摘要】

1.一种面向serverless工作流的高效容错机制优化方法,其特征在于,基于boki同步共享日志系统,通过对比容错机制所使用的日志数据一致性需求差异,对数据一致性需求低的日志请求采用异步的方式进行持久化日志记录,对异步日志系统的接口、组件及应用进行优化设计,降低具有严格一次语义容错机制的serverless工作流的端到端延迟,具体包括如下内容:

2.根据权利要求1所述的面向serverless工作流的高效容错机制优化方法,其特征在于,所述异步日志系统接口设计中阻塞的本地请求路径和非阻塞的远程请求路径均返回对应的id以定位在系统中传递的请求内容,分别记作localid和seqnum;其中,所述localid为本地请求在函数引擎节点生成的id编号,生成后立即返回给函数,无需绕行远程请求路径;不同节点生成的localid全局唯一但没有顺序关系,用于构建客户端请求句柄;所述seqnum为远程请求在共享日志排序器节点生成的id编号,该序号在后台存储到与localid对应的日志索引中,与localid构成一对一映射,之后再返回给客户端;所述seqnum全局唯一且代表日志追加请求的全局顺序,用于多客户端间复制有序日志序列,构建全局一致的数据视图。

3.根据权利要求1所述的一种面向serverless工作流的高效容错机制优化方法,其特征在于,所述日志实时性校验功能设...

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

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

1