CN110609866A - 用于协商事务的方法、设备和计算机程序产品 - Google Patents
用于协商事务的方法、设备和计算机程序产品 Download PDFInfo
- Publication number
- CN110609866A CN110609866A CN201810621964.6A CN201810621964A CN110609866A CN 110609866 A CN110609866 A CN 110609866A CN 201810621964 A CN201810621964 A CN 201810621964A CN 110609866 A CN110609866 A CN 110609866A
- Authority
- CN
- China
- Prior art keywords
- transaction
- negotiation
- entity
- negotiating
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1025—Dynamic adaptation of the criteria on which the server selection is based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
本公开的实施例涉及用于协商事务的方法、设备和计算机程序产品。该用于协商事务的方法包括:从服务器接收用于进行协商的实体信息,所述实体信息指示可用于协商事务的实体基于所述实体信息来确定至少一个实体;响应于接收到针对与分布式应用相关联的事务的协商请求,与所述至少一个实体关于所述事务进行协商,以得到事务协商信息,所述事务协商信息包括关于所述事务而与所述至少一个实体所达成的一致性;以及向所述服务器发送所述事务协商信息。使用本公开的技术方案,不仅可以减少在协商事务时的网络延时以及分布式应用的处理延时,还可以节省CPU的处理负担,并且也能够加速对其他网络流量的处理。
Description
技术领域
本公开的实施例总体上涉及分布式应用领域,具体地涉及用于协商事务的方法、设备和计算机程序产品。
背景技术
目前存在多种分布式应用。分布式应用在利用网络的连接而紧密关联地工作的许多服务器上运行。对于分布式应用保持应用行为的正确性而言,一致性是最为重要的问题之一。
为了获得一致的结果,所有服务器上的应用通过网络相互协商,并且最终确认相同的结果。例如,Phaxos算法是被用于在多个参与方之间的协商的最为重要的协商算法之一。
然而,由于前述协商通过网络来进行并且有时涉及很多网络往返行程,因此协商对于网络延时非常敏感,并且需要使用CPU周期来处理网络流量。因此,前述协商会增加在处理分布式应用时的处理延时、增加CPU的负担,并且由此影响用户体验。
发明内容
本公开的实施例提供了用于协商事务的方法、设备和计算机程序产品。
在本公开的第一方面,提供了一种用于协商事务的方法。该方法包括:从服务器接收用于进行协商的实体信息,所述实体信息指示可用于协商事务的实体;基于所述实体信息来确定至少一个实体;响应于接收到针对与分布式应用相关联的事务的协商请求,与所述至少一个实体关于所述事务进行协商,以得到事务协商信息,所述事务协商信息包括关于所述事务而与所述至少一个实体所达成的一致性;以及向所述服务器发送所述事务协商信息。
在本公开的第二方面,提供了一种用于协商事务的方法。该方法包括:向网络适配器发送用于进行协商的实体信息,所述实体信息指示可用于协商事务的实体;以及从所述网络适配器接收事务协商信息,所述事务协商信息包括所述网络适配器与基于所述实体信息而被确定的至少一个实体关于事务进行协商所达成的一致性。
在本公开的第三方面,提供了一种用于协商事务的设备。该设备包括:至少一个处理单元;至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:从服务器接收用于进行协商的实体信息,所述实体信息指示可用于协商事务的实体;基于所述实体信息来确定至少一个实体;响应于接收到针对与分布式应用相关联的事务的协商请求,与所述至少一个实体关于所述事务进行协商,以得到事务协商信息,所述事务协商信息包括关于所述事务而与所述至少一个实体所达成的一致性;以及向所述服务器发送所述事务协商信息。
在本公开的第四方面,提供了一种用于协商事务的设备。该设备包括:至少一个处理单元;至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:向网络适配器发送用于进行协商的实体信息,所述实体信息指示可用于协商事务的实体;以及从所述网络适配器接收事务协商信息,所述事务协商信息包括所述网络适配器与基于所述实体信息而被确定的至少一个实体关于事务进行协商所达成的一致性。
在本公开的第五方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行使得机器执行根据本公开的第一方面所描述的方法的任意步骤。
在本公开的第六方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行使得机器执行根据本公开的第二方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本公开的实施例的分布式应用环境100的示意图;
图2示出了传统方案中的应用节点120的示意图;
图3示出了根据本公开的实施例的应用节点120’的示意图;
图4示出了根据本公开的另一些实施例的应用节点120’的示意图;
图5示出了根据本公开的实施例的用于协商事务的方法500的流程图;
图6示出了根据本公开的实施例的用于协商事务的方法600的流程图;
图7示出了根据本公开的实施例的服务器与网络适配器交互操作流程700的示意图;
图8示出了根据本公开的实施例的网络延时与分布式应用延时之间的关系图800;
图9示出了可以用来实施本公开内容的实施例的示例设备900的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以按照各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了根据本公开的实施例的分布式应用环境100的示意图。如图1中所示,分布式应用环境100包括负载均衡器110以及N个应用节点120-1至120-N(被统称为应用节点120)。负载均衡器110例如被用于将针对分布式应用的使用请求按照预定规则分配到不同的应用节点120。应用节点120例如被用于响应于负载均衡器110对使用请求的分配来在执行分布式应用,其中应用节点可以进一步包括服务器以及网络适配器。
如以上在背景技术中所描述的,当应用节点中的服务器为了获得一致的结果而通过网络相互协商时,会增加在处理分布式应用时的处理延时、增加CPU的负担,并且由此影响用户体验。
具体而言,图2示出了传统方案中的应用节点120的示意图。如图2中所示,传统方案中的应用节点120包括服务器121和网络适配器122。服务器121进一步包括分布式应用1211和服务器TCP/IP栈1214,并且分布式应用1211进一步包括应用功能模块1212和协商模块1213。
在传统方案中的应用节点120中,网络适配器122仅具有例如通过服务器121中的服务器TCP/IP栈1214来与服务器121以及其他网络实体(例如,节点)传输数据的功能,而并不具有存储功能或者进行协商操作的功能。在传统方案中的应用节点120中,服务器121中的分布式应用1211包括提供分布式应用的各种功能的应用功能模块1212以及用于与其他网络实体进行协商的协商模块1213,在协商模块1213中可以使用例如Phaxos算法的各种协商算法。
在传统方案中,当为了获得分布式应用的一致的结果而在所有服务器之间进行协商时,服务器121中的协商模块1213必须与其他服务器进行多轮往返行程的协商。具体而言,协商模块1213需要通过网络向其他服务器发送并且从其他服务器接收消息,从而尝试达成能够被所有服务器(即,针对分布式应用1211的协商参与者)接受的一致结果。当所有服务器达成一致结果后,分布式应用1211可以根据达成的一致结果来对该一致结果所涉及的数据进行处理。
由于协商模块1213被包括在服务器121中,并且服务器121需要通过网络适配器122来与其他服务器进行通信,因此服务器121中的服务器TCP/IP栈1214将被多次使用。同时,由于协商的过程中也涉及服务器121与网络适配器122之间的通信,因此也会导致更长的网络路径。因此,传统方案中的协商会增加在处理分布式应用时的处理延时、增加CPU的负担,并且由此影响用户体验。
为了至少部分地克服传统方案中存在的上述问题,本公开的实施例提供了用于协商事务的方案。该方案的出发点在于将协商模块1213及其所使用的协商算法卸载到由于具有嵌入式处理器而具备处理能力的网络适配器中,同时保持分布式应用在服务器(例如,X86主机)中运行。
根据本公开的实施例的上述方案利用了目前已经出现的具有嵌入式处理器的网络适配器,这样的网络适配器有时也可以被称为智能网络适配器或者智能NIC。智能NIC不仅可以处理例如向和从服务器转发网络分组的网络流量,还可以在智能NIC上运行用户的软件(例如,Linux)。因此,智能NIC允许用户将一部分计算放在服务器与其他实体之间的网络路径上,从而使得能够在服务器之前对网络流量进行处理。
图3示出了根据本公开的实施例的应用节点120’的示意图。如图3中所示,根据本公开的实施例的应用节点120’包括服务器121’和网络适配器122’。服务器121’进一步包括分布式应用1211’和服务器TCP/IP栈1213’,并且分布式应用1211’进一步包括应用功能模块1212’。网络适配器122’进一步包括协商模块1221’。
与图2中所示的传统方案中的协商模块1213被包括在服务器121中相比,在根据本公开的实施例的应用节点120’中,协商模块1221’被包括在网络适配器122’中。由于分布式应用1211’机器中的应用功能模块1212’位于服务器121’中而协商模块1221’位于网络适配器122’中,因此应用功能模块1212’可以使用功能调用来使用协商模块1221’的功能。前述调用以及应用功能模块1212’与协商模块1221’之间的其他通信可以使用在服务器121’与网络适配器122’之间的PCIe物理链路来进行。对于协商模块1221’,由于网络适配器122’具有计算能力,所以协商模块1221’可以直接与其他网络实体进行协商,并且只需要在特定情况时(例如,协商模块1221’被初始化,向服务器121’存储在协商时生成的状态数据以及向服务器121’发送协商的结果等时)与服务器121’通信。
图4示出了根据本公开的另一些实施例的应用节点120’的示意图。如图4中所示,根据本公开的另一些实施例的应用节点120’包括服务器121’和网络适配器122’。
服务器121’包括应用功能模块1212’、服务器服务1214’和服务器TCP/IP套接字1215’。服务器服务1214’进一步包括节点配置模块12141’、持久存储装置12142’和通信模块12143’。如服务器服务1214’的两个箭头所示,应用功能模块1212’可以向服务器服务1214’中的通信模块12143’提交针对与分布式浏览器相关联的事务的协商请求,并且可以从通信模块12143’接收针对前述协商请求的确认,即,由网络适配器122’与其他实体(例如,同样具有处理能力的网络适配器或者其他服务器)达成的一致结果。
网络适配器122’包括协商模块1221’、网络适配器服务1222’和网络适配器TCP/IP套接字1223’。网络适配器服务1222’进一步包括节点配置模块12221’、学习模块12222’、伪持久存储装置12223’和通信模块12224’。
图4中的应用功能模块1212’和协商模块1221’与图3中的应用功能模块1212’和协商模块1221’的功能基本上相同,在此不再赘述。
图4中的服务器121’和网络适配器122’中的节点配置模块12141’和节点配置模块12221’用于存储配置信息,其包括例如用于进行协商的实体信息,实体信息可以指示可用于协商事务的实体。具体而言,配置信息可以描述分布式应用环境100中的应用节点120的信息,比如每个实体(例如,网络适配器或者服务器)的IP地址。这样的信息最初仅被存储在服务器121’中的节点配置模块12141’中。由于协商模块1221’需要这一信息来与其他实体进行协商,因此可以存在相应的逻辑以用于将存储在节点配置模块12141’复制到节点配置模块12221’中。这一复制可以通过通信模块12143’和通信模块12224’之间的通信来实现。
持久存储装置12142’和伪持久存储装置12223’用于存储与事务的协商有关的状态数据。前述状态数据通常是在进行协商时被生成的,并且需要被存储并且需要被存储在持久存储装置中以使得如果承载协商模块1221’的实体(在本实施例中为网络适配器122’)发生故障(例如,崩溃或者宕机),该实体在恢复后可以通过从持久存储装置中读取存储的状态数据来恢复正常状态。
由于网络适配器122’中通常不具有持久存储装置而仅具有非持久存储装置(例如,随机访问存储器RAM),因此可以使用网络适配器122’中的非持久存储装置来形成伪持久存储装置12223’以用于临时存储前述状态数据。此时,由于状态数据可以被存储在伪持久存储装置12223’中,因此协商模块1221’可以正常工作。然而,由于状态数据此时被存储在伪持久存储装置12223’中,因而如果网络适配器122’掉电则状态数据会丢失。因此,需要有相应的逻辑来例如周期性地将被存储在伪持久存储装置12223’中的状态数据复制到持久存储装置12142’中。此时,如果网络适配器122’掉电,则可以从持久存储装置12142’将状态数据复制回伪持久存储装置12223’中。上述复制同样可以通过通信模块12143’和通信模块12224’之间的通信来实现。
通信模块12143’和通信模块12224’可以用于实现服务器121’与网络适配器122’之间的通信和数据传输。由于应用功能模块1212’和协商模块1221’位于不同的实体(服务器121’和网络适配器122’)上,因此应用功能模块1212’无法通过功能调用来直接调用协商模块1221’的功能。通信模块12143’和通信模块12224’解决了这一问题。由于在服务器121’和网络适配器122’之间存在天然的TCP/IP网络流量,因此通信模块12143’和通信模块12224’可以基于现有的TCP/IP网络栈而被构建以用于应用功能模块1212’和协商模块1221’之间的通信。同时,可以基于TCP/IP来设计自定义协议。通信模块12143’和通信模块12224’可以向分布式应用提供功能调用接口以允许分布式应用提交数据以及获得关于提交的数据是否被所有参与方接受的确认。
服务器TCP/IP套接字1215’和网络适配器TCP/IP套接字1223’用于支持通过服务器121’与网络适配器122’之间的PCIe物理链路来进行通信和数据传输。
学习模块12222’用于当协商模块1221’与其他实体进行协商时,获取(学习)在这些参与方之间的协商的结果,并且可以用于将协商的结果以消息的形式来发送给服务器121’。
通过对比图3和图4可以知晓,尽管图3和图4分别示出了根据本公开的不同实施例的应用节点120’的示意图,但是图3和图4中示出的应用节点120’具有统一性,并且图4中示出的应用节点120’可以被视为是图3中示出的应用节点120’的细化。
基于以上参照图3和图4对根据本公开的实施例的应用节点120’的示意图进行了描述,以下参照图5至图7来详细描述根据本公开的实施例的用于协商事务的方法500、用于协商事务的方法600以及服务器与网络适配器交互操作流程700的具体流程和操作。具体而言,图5至图7参照图3和图4中所示的应用节点120’而被描述,其中应用节点120’可以包括服务器121’和网络适配器122’。由于服务器121’和网络适配器122’中的相应模块的功能分布和实施将不会影响本公开的实施例的实现,因此以下针对图5至图7仅从服务器121’和网络适配器122’的角度进行描述。应当理解的是,以下描述的流程和操作还可以包括未示出的附加步骤和操作和/或可以省略所示出的步骤和操作,本公开的范围在此方面不受限制。
图5示出了根据本公开的实施例的用于协商事务的方法500的流程图。具体而言,方法500可以由网络适配器122’或其他适当的设备来执行。应当理解的是,方法500还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的范围在此方面不受限制。
在框502,网络适配器122’从服务器121’接收用于进行协商的实体信息,该实体信息指示可用于协商事务的实体。根据本公开的实施例,实体信息可以是以上参照图4而被描述的配置信息,信息网络适配器122’可以通过实体知道其针对与分布式应用相关的事务应当与哪些实体进行协商。
框502本质上体现的是初始化步骤,这是因为网络适配器122’最初并未存储实体信息。根据本公开的实施例,框502还可以包括其他初始化步骤。
首先,在应用节点120’被上电启动之后,网络适配器122’也被上电启动。这时,网络适配器122’可以监听用于由服务器121’通过例如标准TCP/IP来向网络适配器122’发送包括实体信息的数据的端口,例如,通过监视相应的IP地址。通常,监视的对象例如可以是网关IP地址和预定端口。由于来自服务器121’的所有网络流量均由网络适配器122’处理,因此,网络适配器122’可以容易地通过监视上述IP地址和预定端口来拦截从服务器121’去往网络适配器122’的数据。
在服务器121’中的各种应用被启动之后,分布式应用1211’也被启动。此时,分布式应用1211’同样监听前述IP地址和预定端口,从而使得当网络适配器122’希望向服务器121’中的分布式应用1211’发送数据时,分布式应用1211’可以容易地通过监听前述IP地址和预定端口来接收到网络适配器122’通过标准TCP/IP地址而发送的网络分组。
在服务器121’和网络适配器122’均被启动之后,具体而言,在例如参照图4描述的服务器服务1214’和网络适配器服务1222’均被启动之后,服务器121’通过前述IP地址和预定端口、利用节点配置模块12141’和节点配置模块12221’来向网络适配器服务1222’发送实体信息,即,框502中所描述的步骤。
继续参考图5,在框504,网络适配器122’基于实体信息来确定至少一个实体。根据本公开的实施例,确定的至少一个实体可以是同样具有协商能力的其他网络适配器或者服务器。
在框506,网络适配器122’响应于接收到针对与分布式应用相关联的事务的协商请求,与至少一个实体关于事务进行协商,以得到事务协商信息,事务协商信息包括关于事务而与至少一个实体所达成的一致性。根据本公开的实施例,前述事务是指针对分布式应用1211’而需要在多个实体之间进行协商的内容。根据本公开的实施例,当协商由服务器121’发起时,网络适配器122’从服务器121’接收前述协商请求,当协商由其他实体发起时,网络适配器122’从发起协商的实体接收前述协商请求。
根据本公开的实施例,当由服务器121’发起协商时,服务器121’向通信模块12143’发出相应的数据,而后,通信模块12143’将该数据通过前述IP地址和预定端口发送给通信模块12224’。通信模块12224’在接收到前述数据时,将其转发给协商模块1221’。
根据本公开的实施例,网络适配器122’在与至少一个实体进行协商时,会产生对应的状态数据。网络适配器122’在伪持久存储装置12223’中存储状态数据,并且周期性地将状态数据发送给服务器121’的持久存储装置12142’。
根据本公开的实施例,有可能网络适配器122’在周期性地将状态数据发送给服务器121’的持久存储装置12142’之前即掉电。此时,由于状态数据尚未被发送给持久存储装置12142’,因此无法从网络适配器122’或者服务器121’恢复状态数据(即,状态数据在应用节点120’处不可用)。此时,由于协商是对等进行并且分布式应用基于具有一致性的系统,即,协商必定是在网络适配器122’与其他实体之间发生的,因此,网络适配器122’可以利用协商模块1221’来从其他实体接收与在本地不可用的状态数据对应的状态数据,并且可以通过该对应的状态数据来重新获得掉电时丢失的状态数据。应当理解,这一过程需要较长的时间来进行,属于保障性的功能。
继续参考图5,在框508,网络适配器122’向服务器121’发送在框506中得到的事务协商信息。根据本公开的实施例,学习模块12222’可以与协商模块1221’进行通信以学习协商的所有结果,并且将最终得到的事务协商信息通过通信模块12224’和通信模块12143’发送给服务器121’。
以上参考图5、从网络适配器122’的角度描述了用于协商事务的方法的流程。应当理解,以上从网络适配器122’的角度进行描述是为了更好地展示本公开中所记载的内容,而不是以任何方式进行限制。
图6示出了根据本公开的实施例的用于协商事务的方法600的流程图。具体而言,方法600可以由服务器121’或其他适当的设备来执行。应当理解的是,方法600还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的范围在此方面不受限制。
在框602,服务器121’向网络适配器122’发送用于进行协商的实体信息,所述实体信息指示可用于协商事务的实体。框602中的具体操作与以上参考图5的框502所描述的具体操作相对应,在此不再赘述。
根据本公开的实施例,当协商由服务器121’发起时,框602中还可以包括服务器121’向网络适配器122’发送协商请求。
在框604,服务器121’从网络适配器122’接收事务协商信息,事务协商信息包括网络适配器122’与基于实体信息而被确定的至少一个实体关于事务进行协商所达成的一致性。框604中的具体操作与以上参考图5的框504、506和508所描述的具体操作相对应,在此不再赘述。
根据本公开的实施例,框604中还可以包括服务器121’从网络适配器122’接收由网络适配器122’确定的、与事务的协商有关的状态数据。
以上参考图6、从服务器121’的角度描述了用于协商事务的方法600的流程。应当理解,以上从服务器121’的角度进行描述是为了更好地展示本公开中所记载的内容,而不是以任何方式进行限制。
图7示出了根据本公开的实施例的服务器与网络适配器交互操作流程700的示意图。以下参照图7更加详细地描述本公开中的用于协商事务的方法500和600。
在框702中,示出了从服务器121’向网络适配器122’发送用于进行协商的实体信息。框702所涉及的具体操作与以上参考图5的框502以及图6的框602所描述的具体操作相对应,在此不再赘述。
在704中,网络适配器122’基于实体信息来确定至少一个实体。框704所涉及的具体操作与以上参考图5的框504所描述的具体操作相对应,在此不再赘述。
在框706中,服务器121’向网络适配器122’发送协商请求。根据本公开的另一些实施例,协商请求可以是由其他实体发送给网络适配器122’的,本公开的保护范围在此方面不受限制。框706所涉及的具体操作与以上参考图5和图6描述的具体操作相对应,在此不再赘述。
在框708中,网络适配器122’与至少一个实体关于事务进行协商,以得到事务协商信息。框708所涉及的具体操作与以上参考图5的框506所描述的具体操作相对应,在此不再赘述。
在框710中,网络适配器122’确定与事务的协商有关的状态数据。框710所涉及的具体操作与以上参考图5和图6描述的具体操作相对应,在此不再赘述。
在框712中,网络适配器122’向服务器121’发送状态数据。框712所涉及的具体操作与以上参考图5和图6描述的具体操作相对应,在此不再赘述。
在框712中,网络适配器122’向服务器121’发送事务协商信息。框702所涉及的具体操作与以上参考图5的框508以及图6的框604所描述的具体操作相对应,在此不再赘述。
在框714中,网络适配器122’响应于状态数据不可用,从至少一个实体接收与状态数据对应的另一状态数据,并且基于另一状态数据来确定状态数据。框712所涉及的具体操作与以上参考图5描述的具体操作相对应,在此不再赘述。
图8示出了根据本公开的实施例的网络延时与分布式应用延时之间的关系图800。图8中所示的关系图为分布式应用1211的用户提交50字节的数据时在应用节点120为三个时的关系图。图8中的横轴为以微秒为单位的网络延时,纵轴为以微秒为单位的分布式应用延时。从图8中可以看出,随时网络延时的增加,分布式应用延时基本呈线性增加。因此,当网络延时被减少时,可以显著减小分布式应用延时。通过进一步的测试,当使用根据本公开的实施例的用于协商事务的方案时,可以将网络延时降低1/3左右,从而显著地降低了分布式应用延时。
通过以上参考图1至图8的描述,可以看出,根据本公开的实施例的技术方案相对于传统方案具有诸多优点。使用本公开的实施例的技术方案,可以克服传统方案中的、由于服务器121中的服务器TCP/IP栈1214将被多次使用以及协商的过程中涉及服务器121与网络适配器122之间的通信的更长的网络路径所导致的增加在处理分布式应用时的处理延时、增加CPU的负担,并且由此影响用户体验的问题。相比之下,本公开的实施例中提供的技术方案使得网络适配器122’及其协商模块1221’无需多次与服务器121’进行通信,因此可以减少对服务器TCP/IP套接字1215’的使用,并且进行协商时所需的网络路径也更短。因此,采用本公开的实施例中提供的技术方案,不仅可以减少在协商事务时的网络延时以及分布式应用的处理延时,还可以节省CPU的处理负担,并且也能够加速对其他网络流量的处理。
图9图示出了可以用来实施本公开内容的实施例的示例设备900的示意性框图。如图所示,设备900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的计算机程序指令或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法500和方法600,可由处理单元901执行。例如,在一些实施例中,方法500和方法600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序被加载到RAM903并由CPU 901执行时,可以执行上文描述的方法500和方法600的一个或多个动作。
本公开可以是方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是、但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (16)
1.一种用于协商事务的方法,包括:
从服务器接收用于进行协商的实体信息,所述实体信息指示可用于协商事务的实体;
基于所述实体信息来确定至少一个实体;
响应于接收到针对与分布式应用相关联的事务的协商请求,与所述至少一个实体关于所述事务进行协商,以得到事务协商信息,所述事务协商信息包括关于所述事务而与所述至少一个实体所达成的一致性;以及
向所述服务器发送所述事务协商信息。
2.根据权利要求1所述的方法,还包括:
确定与所述事务的协商有关的状态数据;以及
向所述服务器发送所述状态数据。
3.根据权利要求1所述的方法,还包括:
接收来自所述服务器的所述协商请求;或者
接收来自所述至少一个实体的所述协商请求。
4.根据权利要求1所述的方法,还包括:
确定与所述事务的协商有关的状态数据是否可用;
响应于所述状态数据不可用,从所述至少一个实体接收与所述状态数据对应的另一状态数据;以及
基于所述另一状态数据来确定所述状态数据。
5.一种用于协商事务的方法,包括:
向网络适配器发送用于进行协商的实体信息,所述实体信息指示可用于协商事务的实体;以及
从所述网络适配器接收事务协商信息,所述事务协商信息包括所述网络适配器与基于所述实体信息而被确定的至少一个实体关于事务进行协商所达成的一致性。
6.根据权利要求5所述的方法,还包括:
从所述网络适配器接收由所述网络适配器确定的、与所述事务的协商有关的状态数据。
7.根据权利要求5所述的方法,还包括:
向所述网络适配器发送所述协商请求。
8.一种用于协商事务的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
从服务器接收用于进行协商的实体信息,所述实体信息指示可用于协商事务的实体;
基于所述实体信息来确定至少一个实体;
响应于接收到针对与分布式应用相关联的事务的协商请求,与所述至少一个实体关于所述事务进行协商,以得到事务协商信息,所述事务协商信息包括关于所述事务而与所述至少一个实体所达成的一致性;以及
向所述服务器发送所述事务协商信息。
9.根据权利要求8所述的设备,其中所述动作还包括:
确定与所述事务的协商有关的状态数据;以及
向所述服务器发送所述状态数据。
10.根据权利要求8所述的设备,其中所述动作还包括:
接收来自所述服务器的所述协商请求;或者
接收来自所述至少一个实体的所述协商请求。
11.根据权利要求8所述的设备,其中所述动作还包括:
确定与所述事务的协商有关的状态数据是否可用;
响应于所述状态数据不可用,从所述至少一个实体接收与所述状态数据对应的另一状态数据;以及
基于所述另一状态数据来确定所述状态数据。
12.一种用于协商事务的设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
向网络适配器发送用于进行协商的实体信息,所述实体信息指示可用于协商事务的实体;以及
从所述网络适配器接收事务协商信息,所述事务协商信息包括所述网络适配器与基于所述实体信息而被确定的至少一个实体关于事务进行协商所达成的一致性。
13.根据权利要求12所述的设备,其中所述动作还包括:
从所述网络适配器接收由所述网络适配器确定的、与所述事务的协商有关的状态数据。
14.根据权利要求12所述的设备,其中所述动作还包括:
向所述网络适配器发送所述协商请求。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行使得机器执行根据权利要求1至4中的任一权利要求所述的方法的步骤。
16.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行使得机器执行根据权利要求5至7中的任一权利要求所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810621964.6A CN110609866B (zh) | 2018-06-15 | 2018-06-15 | 用于协商事务的方法、设备和计算机程序产品 |
US16/362,216 US11070615B2 (en) | 2018-06-15 | 2019-03-22 | Method, device and computer program product for transaction negotiation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810621964.6A CN110609866B (zh) | 2018-06-15 | 2018-06-15 | 用于协商事务的方法、设备和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110609866A true CN110609866A (zh) | 2019-12-24 |
CN110609866B CN110609866B (zh) | 2023-08-11 |
Family
ID=68840529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810621964.6A Active CN110609866B (zh) | 2018-06-15 | 2018-06-15 | 用于协商事务的方法、设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11070615B2 (zh) |
CN (1) | CN110609866B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797170A (zh) * | 2020-07-15 | 2020-10-20 | 智博云信息科技(广州)有限公司 | 一种医疗数据信息协调处理方法、装置及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568826A (zh) * | 2021-06-08 | 2021-10-29 | 国网江苏省电力有限公司电力科学研究院 | 关联协商服务测试方法、系统、存储介质及计算设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1511406A (zh) * | 2001-03-27 | 2004-07-07 | �������(ŷ��)�ɷ�����˾ | 用于实现分布式多媒体应用端到端服务质量协商的方法 |
CN1547706A (zh) * | 2001-08-24 | 2004-11-17 | ض� | 提供同步信道的通用输入/输出体系结构、协议和方法 |
CN1604550A (zh) * | 2003-09-30 | 2005-04-06 | 英特尔公司 | 维持两个网络实体之间的链路的方法、系统和程序 |
CN1832472A (zh) * | 2004-12-03 | 2006-09-13 | 微软公司 | 消息交换协议扩展协商 |
CN101022471A (zh) * | 2006-02-15 | 2007-08-22 | 华为技术有限公司 | 一种实现公共电话交换网仿真业务的方法及系统 |
CN102137151A (zh) * | 2010-01-22 | 2011-07-27 | 微软公司 | 多链路远程协议 |
CN102301674A (zh) * | 2008-12-16 | 2011-12-28 | 高通股份有限公司 | 有助于至接入网络的连接的系统和方法 |
US20130160022A1 (en) * | 2011-12-19 | 2013-06-20 | International Business Machines Corporation | Transaction manager for negotiating large transactions |
US20150074168A1 (en) * | 2013-06-19 | 2015-03-12 | Hitachi Data Systems Engineering UK Limited | Decentralized distributed computing system |
CN105556500A (zh) * | 2013-05-06 | 2016-05-04 | 康维达无线有限责任公司 | 用于物联网的智能协商服务 |
CN106126448A (zh) * | 2015-05-08 | 2016-11-16 | 三星电子株式会社 | 用于灵活存储平台的多协议io基础架构 |
US20170187819A1 (en) * | 2015-12-29 | 2017-06-29 | Nexenta Systems, Inc. | Negotiating proxy server for distributed storage and compute clusters |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7290056B1 (en) * | 1999-09-09 | 2007-10-30 | Oracle International Corporation | Monitoring latency of a network to manage termination of distributed transactions |
US7409378B2 (en) * | 2002-10-24 | 2008-08-05 | Xerox Corporation | System for negotiation using graphs |
US20050013294A1 (en) * | 2003-04-11 | 2005-01-20 | Sun Microsystems, Inc. | Multi-node computer system with active devices employing promise arrays for outstanding transactions |
CN104380269B (zh) * | 2012-10-22 | 2018-01-30 | 英特尔公司 | 高性能互连相干协议 |
US9264516B2 (en) * | 2012-12-28 | 2016-02-16 | Wandisco, Inc. | Methods, devices and systems enabling a secure and authorized induction of a node into a group of nodes in a distributed computing environment |
US10164870B2 (en) * | 2013-06-28 | 2018-12-25 | Avago Technologies International Sales Pte. Limited | Relaxed ordering network |
US11328214B2 (en) * | 2017-09-28 | 2022-05-10 | Kyndryl, Inc. | Real-time multi-agent response based on a preference-based consensus |
-
2018
- 2018-06-15 CN CN201810621964.6A patent/CN110609866B/zh active Active
-
2019
- 2019-03-22 US US16/362,216 patent/US11070615B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1511406A (zh) * | 2001-03-27 | 2004-07-07 | �������(ŷ��)�ɷ�����˾ | 用于实现分布式多媒体应用端到端服务质量协商的方法 |
CN1547706A (zh) * | 2001-08-24 | 2004-11-17 | ض� | 提供同步信道的通用输入/输出体系结构、协议和方法 |
CN1604550A (zh) * | 2003-09-30 | 2005-04-06 | 英特尔公司 | 维持两个网络实体之间的链路的方法、系统和程序 |
CN1832472A (zh) * | 2004-12-03 | 2006-09-13 | 微软公司 | 消息交换协议扩展协商 |
CN101022471A (zh) * | 2006-02-15 | 2007-08-22 | 华为技术有限公司 | 一种实现公共电话交换网仿真业务的方法及系统 |
CN102301674A (zh) * | 2008-12-16 | 2011-12-28 | 高通股份有限公司 | 有助于至接入网络的连接的系统和方法 |
CN102137151A (zh) * | 2010-01-22 | 2011-07-27 | 微软公司 | 多链路远程协议 |
US20130160022A1 (en) * | 2011-12-19 | 2013-06-20 | International Business Machines Corporation | Transaction manager for negotiating large transactions |
CN105556500A (zh) * | 2013-05-06 | 2016-05-04 | 康维达无线有限责任公司 | 用于物联网的智能协商服务 |
US20150074168A1 (en) * | 2013-06-19 | 2015-03-12 | Hitachi Data Systems Engineering UK Limited | Decentralized distributed computing system |
CN106126448A (zh) * | 2015-05-08 | 2016-11-16 | 三星电子株式会社 | 用于灵活存储平台的多协议io基础架构 |
US20170187819A1 (en) * | 2015-12-29 | 2017-06-29 | Nexenta Systems, Inc. | Negotiating proxy server for distributed storage and compute clusters |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797170A (zh) * | 2020-07-15 | 2020-10-20 | 智博云信息科技(广州)有限公司 | 一种医疗数据信息协调处理方法、装置及系统 |
CN111797170B (zh) * | 2020-07-15 | 2022-06-03 | 广西康仕源医疗科技有限公司 | 一种医疗数据信息协调处理方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20190387052A1 (en) | 2019-12-19 |
CN110609866B (zh) | 2023-08-11 |
US11070615B2 (en) | 2021-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210241271A1 (en) | Transaction Processing | |
WO2023005773A1 (zh) | 基于远程直接数据存储的报文转发方法、装置、网卡及设备 | |
JP5735883B2 (ja) | ローカル・アダプタの読み取り操作により操作の完了が確認されるまで操作の肯定応答を遅延させる方法 | |
CN109729040B (zh) | 协议的选择的方法、设备以及计算机可读介质 | |
CN109218356B (zh) | 管理服务器上有状态应用的方法和设备 | |
CN110609746B (zh) | 管理网络系统的方法、设备和计算机可读介质 | |
CN110389711B (zh) | 帮助端点设备实现sr-iov功能的方法、设备和非瞬态计算机可读介质 | |
US20150371327A1 (en) | System for dynamically selecting a communications fabric | |
US8959171B2 (en) | Method and apparatus for acknowledging a request for data transfer | |
US10609155B2 (en) | Scalable self-healing architecture for client-server operations in transient connectivity conditions | |
US10601692B2 (en) | Integrating a communication bridge into a data processing system | |
CN112416632B (zh) | 事件通信方法、装置、电子设备和计算机可读介质 | |
KR102210289B1 (ko) | 하드웨어 관리 통신 프로토콜 | |
CN110870286B (zh) | 容错处理的方法、装置和服务器 | |
CN104199716A (zh) | 一种虚拟机热迁移的方法、物理主机及系统 | |
CN110609866B (zh) | 用于协商事务的方法、设备和计算机程序产品 | |
US11575540B2 (en) | Method and system for managing network-to-network interconnection | |
US9112907B2 (en) | System and method for managing TLS connections among separate applications within a network of computing systems | |
CN111726401B (zh) | 一种文件传输方法和装置 | |
CN111510384B (zh) | 处理服务产生的数据的方法、电子设备和计算机可读介质 | |
TW201644249A (zh) | 用以執行傳輸控制協定交握之裝置及方法 | |
CN104081728B (zh) | 网络管理 | |
CN115767786A (zh) | 多集群通信方法、装置、电子设备及存储介质 | |
US9584444B2 (en) | Routing communication between computing platforms | |
CN110011767B (zh) | 用于tcp连接备份的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |