用于多租户无服务器环境的多级高速缓存网格系统技术方案

技术编号:35588755 阅读:25 留言:0更新日期:2022-11-16 15:04
提供了一种用于在工作负载执行环境中的节点(202,206,208)上执行无状态服务的方法、计算机系统和计算机程序产品。方法可以包括为每个节点(202,206,208)定义包括高速缓存网格的高速缓存组件(214,220,226,232)的工作负载容器(210,216,222,228)。该方法可包括当在执行容器(210,216,222,228)中从高速缓存网格的高速缓存组件(214,220,226,232)中的一个高速缓存组件接收到来自无状态的请求服务的状态请求时,确定所请求的状态是否存在于相关执行容器(210,216,222,228)的高速缓存组件(214,220,226,232)中。该方法可包括在高速缓存未命中时将状态请求广播到高速缓存网格的其他高速缓存组件(214,220,226,232),由其他高速缓存组件(214,220,226,232)确定所请求的状态是否存在于相应高速缓存中,以及在任何高速缓存组件(214,220,226,232)识别到所请求的状态时使用用于通信的协议将所请求的状态发送到所述请求服务。述请求服务。述请求服务。

【技术实现步骤摘要】
【国外来华专利技术】用于多租户无服务器环境的多级高速缓存网格系统


[0001]本专利技术一般地涉及数字计算机系统领域,并且更具体地涉及在工作负载环境中的节点上无状态服务的计算机实现的执行。

技术介绍

[0002]通常部署在云计算平台上和云框架中的现代计算环境由多个交互服务和/或微服务组成。这种微服务的一个特性是它们通常是无状态的,即从微服务的一次调用到下一次调用,状态不是持续的。然而,在一些情况下,使微服务的状态可用于微服务的下一调用可能是有用的。这不仅作为事务应用的底层技术(例如技术电子商务基础设施)是令人感兴趣的,而且作为云计算环境中的云计算框架和/或多处理器系统的管理的底层技术也是令人感兴趣的。在不同的条件、性能级别和服务级别协定下,可以从不同的提供商组织获得这样的资源。然而,如果对这些资源的资源管理也可以基于无状态服务和/或微服务的交互,则在这些情况下访问相应服务/微服务的“旧”状态也是有用的。
[0003]云提供商通常提供客户端可以订阅并使用服务计算环境的资源的物理或虚拟计算资源,而云提供商可以管理分配以及底层计算和网络基础设施。该操作模型对于客户是有利的,因为他可以优化运营成本。另一方面,云提供商的合法利益是最小化商业模型可行的运营和投资成本。因此,云提供商通常限制计算机资源分配,其中该限制通常由特定编程方法支持。因此,底层编程模型是无状态的、事件驱动的、处理时间有限的无服务器模型。
[0004]虽然这种模型对于特定的执行要求是有利的,但是它也具有一些缺点。显然,一个缺点是它是无状态的,即数据或状态信息不能容易地从功能的一个执行周期到下一个执行周期共享,或者在不同的功能或服务之间共享。
[0005]存在若干公开涉及用于在工作负载执行环境中的节点上执行无状态服务的方法。
[0006]文献US 8112525B2公开了一种会话发起协议(SIP)服务器,包括分布在集群网络环境中的引擎层和状态层。引擎层可以发送、接收和处理各种消息。状态层可以维护与各种SIP会话相关联的存储器内状态数据。近高速缓存可以驻留在引擎层上,以便维护包含在状态层中的状态数据的一部分的本地副本。引擎层中的各种引擎可以在从状态层检索状态数据之前确定近高速缓存是否包含处理消息所需的状态的当前版本。
[0007]文献US 8161163B2公开了一种允许在客户端或网络中而不是在服务器上维护保存服务器状态信息的状态高速缓存对象的无状态分布式计算机体系结构。在一个实现中,计算机体系结构根据分布式组件对象模型(DCOM)实现面向对象的程序模块。使用面向对象的网络协议(例如,远程过程调用),通过应用程序接口调用客户端侧应用,程序对象驻留在服务器计算机处。响应于该调用,该程序对象创建状态高速缓存对象,其包含有关该客户连接的状态信息。服务器将状态高速缓存对象插入本地威胁上下文中,并处理该请求以生成回复。
[0008]然而,已知解决方案的缺点可能在于它们经常关注于经由工作负载执行环境中的持久性存储装置来保持状态。因此,可能需要在灵活的工作负载执行环境中为无状态软件
容器提供更加动态的状态管理。

技术实现思路

[0009]本专利技术的实施例公开了一种用于在工作负载环境中的节点上执行无状态服务的方法、计算机系统和计算机程序产品。本专利技术可以包括为多个节点中的相应节点定义至少一个工作负载容器,其中所述至少一个工作负载容器包括高速缓存网格的高速缓存组件,其中所述高速缓存网格包括多个高速缓存组件,其中所述多个高速缓存组件包括用于彼此之间的通信的协议。
[0010]根据一个方面,本专利技术可以包括响应于在执行容器中从高速缓存网格的多个高速缓存组件中的一个高速缓存组件接收到来自无状态的请求服务的状态请求,确定与该状态请求相关联的所请求的状态是否存在于相关执行容器的高速缓存组件中。
[0011]根据一个方面,本专利技术可以包括响应于高速缓存未命中,将状态请求广播到高速缓存网格的多个高速缓存组件中的其他高速缓存组件。
[0012]根据一个方面,本专利技术可以包括由高速缓存网格的多个高速缓存组件中的其他高速缓存组件确定所请求的状态是否存在于其他高速缓存组件的相应高速缓存中。
[0013]根据一个方面,本专利技术可以包括响应于任何高速缓存组件识别出所请求的状态,使用用于通信的协议将所请求的状态发送到请求服务。
[0014]根据本专利技术的另一方面,可以提供一种用于在工作负载执行环境中的节点上执行无状态服务的相关高速缓存网格系统。工作负载执行环境可以包括多个节点。高速缓存网格系统可以包括存储装置,其适于为多个节点中的每一个存储至少一个工作负载容器的定义,所述工作负载容器包括作为高速缓存网格的一部分的高速缓存组件。高速缓存网格的高速缓存组件可以使用协议来进行彼此之间的通信。
[0015]高速缓存网格系统还可以包括:接收装置,其适于:当在执行容器中从所述高速缓存网格的高速缓存组件中的一个高速缓存组件接收到来自无状态的请求服务的状态请求时,确定所请求的状态是否存在于相关执行容器的高速缓存组件中;以及在高速缓存未命中时,向高速缓存网格的高速缓存组件广播状态请求,由高速缓存网格的其他高速缓存组件确定所请求的状态是否存在于相应的高速缓存中,并且在任何高速缓存组件识别出所请求的状态时,使用协议向请求服务发送所请求的状态。
[0016]所提出的用于在工作负载环境中的节点上执行无状态服务的计算机实现的方法可以提供多个优点、技术效果、贡献和/或改进:
[0017]它可以克服现有技术的限制,特别是通过其在多租户环境中也安全地起作用的能力,这可以通过高速缓存网格组件之间的通信协议的分层加密来实现。另外,这里提出的概念通过使用高速缓存网格组件形式的所谓边车容器(sidecar container)克服了不同荚(pod)之间缺失的隔离。现有的原始边车概念和Kubernetes已经被设计为不是多租户使能的。
[0018]因此,所提出的概念可被允许在无状态服务的1级(L1)高速缓存之间交换内容。由此,L1高速缓存服务的池可被表示为高速缓存网格。此外,这里提出的概念可以通过多层高速缓存设置来丰富,以在高速缓存网格组件之间交换公共状态。为此,高速缓存网格是高速缓存的服务的池,尤其是对于具有相似类型的工作负载的服务,例如使用相同的执行语言
或者在工作负载容器的相同执行环境中执行,例如Java、node.js、Python等。
[0019]因此,这里提出的概念可依赖于紧接保持高速缓存网格实现的实际工作负载执行环境的边车组件。为了设置高速缓存网格,可以利用工作负载类型的理念来增强所使用的协议。由此,工作负载类型可以基于它们的执行模式(例如,运行时引擎、租户信息和/或其他元数据)来定义相似的工作负载。工作负载执行引擎可以在基于拉取和推送的模型上与高速缓存网格边车交互。为了确保一致的二级高速缓存,集中式高速缓存的组件(L2)可以用于在不同类型的工作负载之间共享状态。因此,L1高速缓存网格状态可以被转换为存储在集中式高速缓存的组件(L2)中的统一格式。最本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种计算机实现的方法,包括:为多个节点中的相应节点定义至少一个工作负载容器,其中所述至少一个工作负载容器包括高速缓存网格的高速缓存组件,其中所述高速缓存网格包括多个高速缓存组件,其中所述多个高速缓存组件包括用于彼此之间的通信的协议;响应于在执行容器中从所述高速缓存网格的所述多个高速缓存组件中的高速缓存组件接收到来自无状态的请求服务的状态请求,确定与所述状态请求相关联的所请求的状态是否存在于相关执行容器的所述高速缓存组件中;响应于高速缓存未命中,将所述状态请求广播到所述高速缓存网格的所述多个高速缓存组件中的其他高速缓存组件;由所述高速缓存网格的所述多个高速缓存组件中的所述其他高速缓存组件确定所请求的状态是否存在于所述其他高速缓存组件的相应高速缓存中;以及响应于任何高速缓存组件识别到所请求的状态,使用用于通信的所述协议将所请求的状态发送到所述请求服务。2.根据权利要求1所述的方法,其中,用于通信的所述协议是加密的。3.根据权利要求1或2所述的方法,还包括:响应于在所述相应节点上所述执行容器的执行完成,向所述高速缓存网格广播结束状态。4.根据权利要求1至3中的一项所述的方法,还包括:为所述多个节点提供第一集中式高速缓存组件。5.根据权利要求1至4中的一项所述的方法,还包括:响应于确定所请求的状态在所述高速缓存网格的所述多个高速缓存组件中不可用,从所述第一集中式高速缓存组件加载所请求的状态。6.根据权利要求1至5中的一项所述的方法,其中,用于通信的所述协议包括从由用户的标识符、标识高速缓存的值的键和所高速缓存的值组成的组中选择的组成部分。7.根据权利要求4所述的方法,还包括:响应于在所述相应节点上所述执行容器的执行完成,将所述结束状态广播到所述第一集中式高速缓存组件。8.根据权利要求1至7中的一项所述的方法,其中,所述高速缓存网格的所述多个高速缓存组件包括具有可比较的工作负载类型的高速缓存组件的池。9.根据权利要求8所述的方法,其中所述可比较的工作负载类型包括从由相同的运行时引擎、用户信息和相同的编程语言组成的组中选择的执行模式。10.根据权利要求4所述的方法,还包括:使用复制协议将第二集中式高速缓存组件与所述第一集中式高速缓存组件同步,其中所述第二集中式高速缓存组件被保持在第二远程工作负载执行环境中。11.一种用于在工作负载执行环境中的节点上执行无状态服务的计算机系统,包括:一个或多个处理器、一个或多个计算机可读存储器、一个或多个计算机可读有形存储介质、以及存储在所述一个或多个计算机可读有形存储介质中的至少一个上的程序指令,所述程序指令用于由所述一个或多个处理器中的至少一个经由所述一个或多个存储器中的至少一个来执行,其中所述计算机系统能够执行一种方法,所述方法包括:
为多个节点中的相应节点定义至少一个工作负载容器,其中所述至少一个工作负载容器包括高速缓存网格的高速缓存组件,其中所述高速缓存网格包括多个高速缓存组件,其中所述多个高速缓存组件包括用于彼此之间的通信的协议;响应于在执行容器中从所述高速缓存网格的所述多个高速缓存组件中的高速缓存组件接收到来自...

【专利技术属性】
技术研发人员:S
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1