Offloading stateful services from guest machines to host resources
US-2024039803-A1 · Feb 1, 2024 · US
US12379952B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12379952-B2 |
| Application number | US-202217860040-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 7, 2022 |
| Priority date | Jul 13, 2021 |
| Publication date | Aug 5, 2025 |
| Grant date | Aug 5, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Some embodiments provide a method of forwarding data messages to a machine that executes on a host computer and has an associated virtual network interface controller (VNIC) also executing on the host computer. The method retrieves data messages from a queue associated with the VNIC and stores these data messages in a first set of buffer data stores associated with the VNIC. When the first buffer set reaches a threshold congestion level, the method stores data messages subsequently retrieved from the VNIC queue in a second set of buffer data stores associated with the VNIC. In some embodiments, a set of one or more processes executing on the machine retrieves the data messages stored in the buffer sets for processing by these processes or other processes.
Opening claim text (preview).
The invention claimed is: 1. A method of forwarding data messages to a machine executing on a host computer, the machine having an associated virtual network interface controller (VNIC), the method comprising: storing, in a first set of buffer data stores associated with the VNIC, a first plurality of data messages retrieved from a queue of the VNIC associated with the machine; and after the first set of buffer data stores reaches a threshold congestion level, storing, in a second set of buffer data stores associated with the VNIC, a second plurality of data messages retrieved from the VNIC queue, wherein: a set of one or more processes executing on the machine retrieves the data messages from the first and second sets of buffer data stores; and when the first plurality of data messages is stored in the first set of buffer data stores, the buffer data stores of the first set are designated as active buffer data stores and the buffer data stores of the second set are designated as standby buffer data stores, and when the second plurality of data messages is stored in the second set of buffer data stores, the buffer data stores of the second set are designated as active buffer data stores and the buffer data stores of the first set are designated as standby buffer data stores. 2. The method of claim 1 , wherein each set of buffer data stores is implemented by a ring of storage elements. 3. The method of claim 2 , wherein each set of buffer data stores includes receiving (Rx) buffer data stores. 4. The method of claim 2 , wherein each ring in the ring of storage elements comprises a sequence of locations in a memory to which data messages are sequentially stored with a first storage location in the sequence being a next storage location after each data message is stored in the last location. 5. The method of claim 4 , wherein the memory is one of a volatile memory or a non-volatile storage. 6. The method of claim 1 , wherein the threshold congestion level 1s a first threshold congestion level, the method further comprising: after the second set of buffer data stores reaches a second threshold congestion level, storing, in the first set of buffer data stores associated with the VNIC, a third plurality of data messages retrieved from the VNIC queue, wherein the buffer data stores of the second set are now designated as standby buffer data stores and the buffer data stores of the first set are now designated as active buffer data stores. 7. The method of claim 6 , wherein the first threshold congestion level and the second threshold congestion level are the same levels of congestion. 8. The method of claim 6 , wherein the first threshold congestion level and the second threshold congestion level are different levels of congestion. 9. The method of claim 1 , wherein the queue is a first queue and the threshold congestion level is a first threshold congestion level, the method further comprising: storing, in a third set of buffer data stores associated with the VNIC, a third plurality of data messages retrieved from a second queue of the VNIC associated with the machine; and after the third set of buffer data stores reaches a second threshold congestion level, storing, in a fourth set of buffer data stores associated with the VNIC, a fourth plurality of data messages retrieved from the second VNIC queue, wherein the set of one or more processes executing on the machine retrieves the data messages from the third and fourth sets of buffer data stores. 10. The method of claim 1 , wherein the queue is a first queue and the third and fourth sets of buffer data stores are associated with a second VNIC queue. 11. The method of claim 1 , wherein the threshold congestion level is a maximum capacity of storage of the first set of buffer data stores. 12. The method of claim 1 , wherein the first and second pluralities of data messages are retrieved from a port of a software switch external to the machine. 13. A non-transitory machine readable medium storing a program for execution by at least one processing unit, the program for forwarding data messages to a machine executing on a host computer, the machine having an associated virtual network interface controller (VNIC), the program comprising sets of instructions for: storing, in a first set of buffer data stores associated with the VNIC, a first plurality of data messages retrieved from a queue of the VNIC associated with the machine; and after the first set of buffer data stores reaches a threshold congestion level, storing, in a second set of buffer data stores associated with the VNIC, a second plurality of data messages retrieved from the VNIC queue, wherein: a set of one or more processes executing on the machine retrieves the data messages from the first and second sets of buffer data stores; and when the first plurality of data messages is stored in the first set of buffer data stores, the buffer data stores of the first set are designated as active buffer data stores and the buffer data stores of the second set are designated as standby buffer data stores, and when the second plurality of data messages is stored in the second set of buffer data stores, the buffer data stores of the second set are designated as active buffer data stores and the buffer data stores of the first set are designated as standby buffer data stores. 14. The non-transitory machine readable medium of claim 13 , wherein the set of one or more processes comprises a set of one or more applications to process the first and second pluralities of data messages. 15. The non-transitory machine readable medium of claim 13 , wherein the sets of buffer data stores are designated as active or standby by a set of instructions for maintaining a data store. 16. The non-transitory machine readable medium of claim 15 , wherein storing the data messages retrieved from the VNIC queue and maintaining the data store are performed by different modules of a single program. 17. The non-transitory machine readable medium of claim 13 , wherein the first and second sets of buffer data stores use First In, First Out (FIFO) logic. 18. The non-transitory machine readable medium of claim 13 , wherein a first maximum capacity of storage of the first set of buffer data stores and a second maximum capacity of storage of the second set of buffer data stores are small.
Network integration; Enabling network access in virtual machine instances · CPC title
Memory management, e.g. access or allocation · CPC title
Identifying congestion · CPC title
Modifications to standard FIFO or LIFO · CPC title
Wraparound memory, e.g. overrun or underrun detection · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.