发明名称 Optimized communication between program components executing in virtual machines
摘要 Communication between program components executing in different virtual machines on the same physical computer may be optimized utilizing various mechanisms. A virtual machine manager may be configured to route network communications between virtual machines on the same physical host through a memory buffer. The virtual machine manager might also be configured to provide a shared memory and/or a shared data structure for enabling data communication between program components executing in different virtual machines on the same physical computing device. Mechanisms might also be implemented in order to prevent inconsistent read and/or write operations from being performed on the shared memory and/or the shared data structure. Mechanisms might also be implemented to minimize copying of a memory buffer, shared memory, and/or shared data structure.
申请公布号 US9588788(B1) 申请公布日期 2017.03.07
申请号 US201313791193 申请日期 2013.03.08
申请人 Amazon Technologies, Inc. 发明人 Ramalingam Harsha;Lathia Bhavnish H.;McInerny Michael James;Peterson Kyle Bradley;Warman Leon Robert
分类号 G06F15/16;G06F9/455 主分类号 G06F15/16
代理机构 Lee & Hayes, PLLC 代理人 Lee & Hayes, PLLC
主权项 1. A computer-implemented method for optimizing network communication between two or more virtual machines executing on the same computing system, the method comprising performing computer-implemented operations for: exposing a first virtual network interface controller (NIC) to a first virtual machine by way of a virtual machine manager, the virtual machine manager configured to control the execution of the two or more virtual machines; exposing a second virtual NIC to a second virtual machine by way of the virtual machine manager, wherein the virtual machine manager manages network communication between a physical NIC, the first virtual NIC, and the second virtual NIC; providing an address of a memory buffer of the virtual machine manager to the first virtual machine; receiving, by the memory buffer, a network message transmitted by the first virtual machine through the first virtual NIC using the address of the memory buffer; providing the address of the memory buffer to the second virtual machine and at least one operating system driver associated with the second virtual NIC, wherein the at least one operating system driver verifies the network message in the memory buffer; providing the network message received by the memory buffer to the second virtual machine and the operating system driver through the second virtual NIC; and blocking, by the virtual machine manager, execution of one or more operations of the second virtual machine to write data to the memory buffer until one or more operations of the first virtual machine to write data to the memory buffer are completed.
地址 Seattle WA US