当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于重映射多线程应用的会话的方法和设备技术

技术编号:13134425 阅读:66 留言:0更新日期:2016-04-06 20:55
本公开的发明专利技术名称是“用于重映射多线程应用的会话的技术”。示例可以包括多线程应用的会话的重映射,其可以在经由多个传输控制协议(TCP)连接耦合到服务器的客户端或服务器执行。会话可以被重映射,使得多线程应用可以期望通过相同TCP连接来路由会话但是会话经由分开的TCP连接被实际输出。

【技术实现步骤摘要】

本文所描述的示例一般涉及路由通过服务器和客户端之间的多线程程序生成的数据。
技术介绍
与客户端计算装置耦合的网络服务器日益地被布置成支持或主管(host)虚拟计算机(VM),其使多个操作系统和/或应用能够由单一计算平台来支持。同样地,当对于的服务器主管VM希望高有效性时,主VM(PVM)和次VM(SVM)可以各自地在分开的服务器或节点(例如在数据中心内)上被主管,并且它们的状态可以被复制。这种状态的复制可以提供环境无关、软件实现硬件故障容错解决方案用于“非停止服务”。在主管PVM的服务器经受硬件故障和/或PVM进入故障状态时,故障容错解决方案可以考虑SVM来接管(故障转移)。锁步是可以按指令复制VM状态的故障容错解决方案。例如,PVM和SVM并联执行用于确定性指令,但是锁步用于非确定性指令。然而,在处理多处理器(MP)实现时,锁步可以经受很大的开销,其中每个存储器存取可以是非确定性的。检查点是在以周期性时期复制PVM状态到SVM的另一种故障容错解决方案。对于检查点,为了保证成功的故障转移,全部的输出分组可以需要被缓冲直到成功的检查点已被完成。在VM环境中缓冲直到成功的检查点可以导致额外的网络等待时间和开销,归因于输出分组缓冲和频繁的检查点。粗粒度锁步(COLO)是仍有的另一个故障容错解决方案,其使用来自客户端的相同的请求/数据(输入)网络分组来使PVM和SVM都反馈。支持COLO的逻辑可以能够监视PVM和SVM的输出响应以及认为SVM的状态为PVM的状态的有效复本,只要由SVM生成的网络响应(输出)匹配PVM的网络响应。如果给定的网络响应不匹配,那么网络响应到客户端的传送被阻止直到PVM状态已经与SVM状态同步(强加新的检查点)。因此,COLO可以确保经由向SVM的故障转移故障容错系统是高度可用的。这个高可用性可以存在,即使非确定性可以表示SVM的内部状态不同于PVM的内部状态,SVM同等有效并且从外部观测者对于实现COLO的故障容错系统的观点来看保持一致。因此,COLO可以在纯锁步或检查点故障容错解决方案上具有优势。COLO故障容错解决方案可以利用如与传输控制协议(TCP)栈相关的此类协议。TCP栈可以布置成具有按连接的状态并且可以能够从分组损耗和/或分组重排序中恢复。COLO可以包括按TCP的连接响应分组比较的使用。按TCP的连接响应分组比较可以认为SVM状态为有效复本,如果从PVM输出的每个TCP连接的响应分组匹配从SVM输出的每个TCP连接的响应分组。此匹配是不管跨TCP连接的可以能的分组顺序。
技术实现思路
本公开提供一种设备,包括:在服务器的电路,所述服务器经由多个传输控制协议(TCP)连接耦合到客户端,所述服务器布置成主管能够单独地执行第一应用的主或次虚拟机(VM);截取组件,用于由所述电路执行以截取从所述第一应用调用的第一和第二套接字应用接口(API),所述第一和第二套接字API布置成路由相应的第一和第二会话以用于通过来自所述多个TCP连接之中的相同TCP连接的期望输出,所述第一和第二会话由所述第一应用响应于从在所述客户端的第二应用接收的请求而生成;索引组件,用于由所述电路执行以使用对于所述第一和第二会话的相应第一和第二标识符信息来生成会话索引;以及重映射组件,用于由所述电路执行以重映射所述第一和第二会话以用于通过来自所述多个TCP连接之中的分开的TCP连接的实际输出,使得所述会话索引能够在所述客户端用来将所述第一和第二会话与所述相同TCP连接重组合以用于向所述第二应用的递送。本公开还提供一种在布置成主管能够单独执行应用的主或次虚拟机(VM)的服务器的电路实现的方法,所述方法包括:截取从所述应用做出的第一和第二套接字应用接口(API)调用,所述第一和第二套接字API布置成路由相应的第一和第二会话以用于通过来自耦合到所述服务器的客户端的多个TCP连接之中的相同传输控制协议(TCP)连接的期望输出,所述第一和第二会话由所述应用响应于从所述客户端接收的数据而生成;使用对于所述第一和第二会话的相应第一和第二标识符信息来生成会话索引;以及重映射所述第一和第二会话以用于通过来自所述多个TCP连接之中的分开的TCP连接的实际输出,使得所述会话索引能够在所述客户端用来将所述第一和第二会话与所述相同TCP连接重组合。本公开还提供至少一个机器可读媒体,包括多个指令,所述指令响应于被在服务器的系统来执行而促使所述系统实行上述方法。本公开还提供一种设备,包括用于执行上述方法的部件。本公开还提供一种方法,包括:在经由多个传输控制协议(TCP)连接耦合到服务器的客户端的电路经由来自所述多个TCP连接之中的分开的TCP连接接收第一和第二会话,所述第一和第二会话由所述服务器主管的主或次虚拟机执行的第一应用来生成并且经由所述分开的TCP连接从所述服务器输出,所述第一和第二会话是响应于在所述客户端的第二应用先前发送到所述第一应用的请求而生成的;接收具有对于所述第一和第二会话的标识符信息的会话索引;基于所述会话索引重编组所述第一和第二会话至来自所述多个TCP连接之中的相同TCP连接;以及经由所述相同TCP连接转发所述第一和第二会话到相应的第一和第二套接字应用接口(API)以用于所述第二应用。本公开还提供一种设备,包括用于执行前一段所述方法的部件。本公开还提供一种在经由多个传输控制协议(TCP)连接耦合到服务器的客户端的设备,所述服务器布置成主管能够单独地执行第一应用的主或次虚拟机(VM),所述设备包括:电路;接收组件,用于由所述电路执行以经由来自所述多个TCP连接之中的分开的TCP连接接收所述第一应用生成的第一和第二会话,所述第一和第二会话是响应于在所述客户端的第二应用先前发送到所述第一应用的请求而生成的;索引组件,用于由所述电路执行以接收具有对于所述第一和第二会话的标识符信息的会话索引;重编组组件,用于由所述电路执行以基于所述会话索引将所述第一和第二会话重编组到来自所述多个TCP连接之中的相同TCP连接;以及转发组件,用于由所述电路执行以经由所述相同TCP连接转发所述第一和第二会话到相应的第一和第二套接字应用接口(API)以用于所述第二应用。附图说明图1图示示例第一系统。图2图示示例编程模型。图3图示示例第二系统。图4图示示例第三系统。图5本文档来自技高网
...

【技术保护点】
一种设备,包括:在服务器的电路,所述服务器经由多个传输控制协议(TCP)连接耦合到客户端,所述服务器布置成主管能够单独地执行第一应用的主或次虚拟机(VM);截取组件,用于由所述电路执行以截取从所述第一应用调用的第一和第二套接字应用接口(API),所述第一和第二套接字API布置成路由相应的第一和第二会话以用于通过来自所述多个TCP连接之中的相同TCP连接的期望输出,所述第一和第二会话由所述第一应用响应于从在所述客户端的第二应用接收的请求而生成;索引组件,用于由所述电路执行以使用对于所述第一和第二会话的相应第一和第二标识符信息来生成会话索引;以及重映射组件,用于由所述电路执行以重映射所述第一和第二会话以用于通过来自所述多个TCP连接之中的分开的TCP连接的实际输出,使得所述会话索引能够在所述客户端用来将所述第一和第二会话与所述相同TCP连接重组合以用于向所述第二应用的递送。

【技术特征摘要】
2014.09.15 US 14/4862701.一种设备,包括:
在服务器的电路,所述服务器经由多个传输控制协议(TCP)连
接耦合到客户端,所述服务器布置成主管能够单独地执行第一应用的
主或次虚拟机(VM);
截取组件,用于由所述电路执行以截取从所述第一应用调用的第
一和第二套接字应用接口(API),所述第一和第二套接字API布置
成路由相应的第一和第二会话以用于通过来自所述多个TCP连接之中
的相同TCP连接的期望输出,所述第一和第二会话由所述第一应用响
应于从在所述客户端的第二应用接收的请求而生成;
索引组件,用于由所述电路执行以使用对于所述第一和第二会话
的相应第一和第二标识符信息来生成会话索引;以及
重映射组件,用于由所述电路执行以重映射所述第一和第二会话
以用于通过来自所述多个TCP连接之中的分开的TCP连接的实际输
出,使得所述会话索引能够在所述客户端用来将所述第一和第二会话
与所述相同TCP连接重组合以用于向所述第二应用的递送。
2.如权利要求1所述的设备,包括:
所述截取组件通过介入由所述应用用来路由会话以用于通过所
述多个TCP连接向所述客户端的期望输出的套接字API的动态链接
库,用TCP去耦链接库来介入所述动态链接库;以及
所述重映射组件重映射所述第一和第二会话,包括使用所述TCP
去耦链接库以促使所述第一和第二会话通过所述分开的TCP连接被实
际输出到所述客户端。
3.如权利要求1所述的设备,所述截取组件截取所述第一和第二
套接字API包括所述截取组件基于与所述客户端的TCP数据交换或与
所述客户端的TCP连接设置之一来模仿所述第一和第二套接字API。
4.如权利要求3所述的设备,包括:
所述截取组件基于所述TCP连接设置来模仿所述第一和第二套接
字API,所述截取组件创建对于所述第一和第二套接字API的多个操
作系统(OS)套接字API并且指派所述多个OS套接字到所述分开的
TCP连接;以及
重映射所述第一和第二会话的所述重映射组件使用所述多个OS
套接字以促使所述第一和第二会话通过所述分开的TCP连接被实际输
出到所述客户端。
5.如权利要求4所述的设备,包括:
截取组件响应于与所述客户端的TCP拆除的文件结束(EOF)消
息而移除对于所述第一和第二套接字API的所述多个OS套接字。
6.如权利要求3所述的设备,包括:
截取组件基于所述TCP数据交换来模仿所述第一和第二套接字
API并且使用所述会话索引以寻址将所述第一和第二会话映射到指派
到所述分开的TCP连接的多个操作系统(OS)套接字API的固定映射
表;以及
所述重映射组件基于所述固定映射表来重映射所述第一和第二
会话以促使所述第一和第二会话通过所述分开的TCP连接被实际输出
到所述客户端。
7.如权利要求1所述的设备,所述截取组件基于所述应用有选择
地被选取用于截取而能够由所述主或次VM执行的另一个应用不被选
取用于截取来截取所述第一和第二套接字API。
8.如权利要求1所述的设备,所述第一和第二标识符信息包括指
派给用来生成所述第一会话的第一线程的第一线程名或标识符以及
指派给用来生成所述第二会话的第二线程的第二线程名或标识符。
9.如权利要求1所述的设备,所述第一和第二标识符信息包括含
有与所述第一会话的生成关联的第一英特网(IP)地址的第一协议栈
模式以及含有与所述第二会话的生成关联的第二IP地址的第二协议
栈模式。
10.一种在布置成主管能够单独执行应用的主或次虚拟机(VM)
的服务器的电路实现的方法,所述方法包括:
截取从所述应用做出的第一和第二套接字应用接口(API)调用,
所述第一和第二套接字API布置成路由相应的第一和第二会话以用于
通过来自耦合到所述服务器的客户端的多个TCP连接之中的相同传输
控制协议(TCP)连接的期望输出,所述第一和第二会话由所述应用
响应于从所述客户端接收的数据而生成;
使用对于所述第一和第二会话的相应第一和第二标识符信息来
生成会话索引;以及
重映射所述第一和第二会话以用于通过来自所述多个TCP连接之
中的分开的TCP连接的实际输出,使得所述会话索引能够在所述客户
端用来将所述第一和第二会话与所述相同TCP连接重组合。
11.如权利要求10所述的方法,包括:
截取所述第一和第二套接字API包括替代由所述应用用来路由会
话以用于通过所述多个TCP连接向所述客户端的期望输...

【专利技术属性】
技术研发人员:董耀祖田坤
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1