Load balancing in distributed computing systems

US10652320B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10652320-B2
Application numberUS-201715438585-A
CountryUS
Kind codeB2
Filing dateFeb 21, 2017
Priority dateFeb 21, 2017
Publication dateMay 12, 2020
Grant dateMay 12, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for facilitating load balancing in distributed computing systems are disclosed herein. In one embodiment, a method includes receiving, at a destination server, a request packet from a load balancer via the computer network requesting a remote direct memory access (“RDMA”) connection between an originating server and one or more other servers selectable by the load balancer. The method can also include configuring, at the destination server, a rule for processing additional packets transmittable to the originating server via the RDMA connection based on the received reply packet. The rule is configured to encapsulate an outgoing packet transmittable to the originating server with an outer header having a destination field containing a network address of the originating server and a source field containing another network address of the destination server.

First claim

Opening claim text (preview).

We claim: 1. A method of facilitating load balancing in a distributed computing system having multiple servers interconnected by a computer network, the method comprising: transmitting, from a first server, a request packet to a load balancer via the computer network, the request packet requesting a remote direct memory access (“RDMA”) connection with one or more other servers selectable by the load balancer, wherein the request packet includes an RDMA header configurable based on RDMA header operation codes defined based on an RDMA protocol, the RDMA header comprising the connection request for establishing the RDMA connection, wherein the RDMA protocol establishes rules for processing RDMA packets communicated through load balancers; receiving, from a second server, a reply packet in response to the request packet, the second server having a network address in the computer network; configuring, at the first server, a rule for processing additional packets transmittable via the RDMA connection based on the received reply packet, the rule being configured to encapsulate an outgoing packet transmittable via the RDMA connection with an outer header having a destination field containing the network address of the second server; generating, at the first server, a confirmation packet in response to the received reply packet, the confirmation packet indicating that the RDMA connection with the second server is ready to use; and processing the generated confirmation packet according to the configured rule before transmitting the processed confirmation packet to the second server via the computer network. 2. The method of claim 1 , wherein the first server, the second server, and the load balancer operate based on the RDMA protocol comprising RDMA semantics that are different from TCP/IP semantics, wherein RDMA protocol supports one or more the following: address translation, packet encapsulation, packet decapsulation, and termination signaling. 3. The method of claim 1 wherein the configured rule commands encapsulation of an outgoing packet transmittable via the RDMA connection with an outer header having a destination field containing the network address of the second server when a header of the outgoing packet having a source field containing another network address of the first server and a port field containing a first port assigned to the requested RDMA connection at the first server. 4. The method of claim 1 wherein: the transmitted request packet has a header with a destination field containing a virtual network address, the virtual network address being corresponding to the load balancer; receiving, from the second server, the reply packet includes receiving the reply packet directly from the second server without passing through the load balancer; and receiving, from the second server, the reply packet includes receiving the reply packet having a header with a source field containing the network address of the second server and a destination field containing another network address of the first server. 5. The method of claim 1 wherein: the transmitted request packet has a header with a destination field containing a virtual network address, the virtual network address being corresponding to the load balancer; and receiving, from the second server, the reply packet includes receiving the reply packet having: an outer header with a source field containing the network address of the second server and a destination field containing another network address of the first server; and an inner header with a source field containing the virtual network address and a destination field containing the another network address of the first server. 6. The method of claim 4 wherein configuring the rule includes: removing the outer header from the received reply packet; and configuring the rule for enforcement by a packet handler in the first server to encapsulate an outgoing packet to the virtual network address via the RDMA connection with an outer header having a destination field containing the network address of the second server, such that the outgoing packet bypasses the load balancer to be deliverable directly to the second server, the packet handler including a field programmable gate array. 7. The method of claim 6 wherein: the configured rule is a first rule; and the method further includes configuring a second rule for processing additional packets transmittable via the RDMA connection based on the received reply packet, the second rule being configured for enforcement by the packet handler to decapsulate an incoming packet to the first server via the RDMA connection by removing an outer header having a destination field containing the another network address of the first server and a source field containing the network address of the second server. 8. The method of claim 1 wherein: the generated confirmation packet has a header with a destination field containing the virtual network address; and processing the generated confirmation packet includes encapsulating the generated confirmation packet with an outer header having a destination field containing the network address of the second server instead of the virtual network address. 9. The method of claim 1 wherein: the generated confirmation packet has a header with a destination field containing the virtual network address; and processing the generated confirmation packet includes encapsulating the generated confirmation packet with an outer header having a destination field containing the network address of the second server instead of the virtual network address; and transmitting the confirmation packet includes transmitting the confirmation packet directly to the second server according to the outer header of the encapsulated confirmation packet, thereby bypassing the load balancer. 10. A computing device for facilitating load balancing in a distributed computing system having multiple servers interconnected by a computer network, the computing device comprising: a processor; and a memory operatively coupled to the processor, the memory containing instructions executable by the processor to cause the processor to: receive, from a first server, a request packet via the computer network, the request packet requesting a remote direct memory access (“RDMA”) connection with one or more other servers selectable by the computing device for establishing the RDMA connection with the first server, wherein the request packet includes an RDMA header configurable based on RDMA header operation codes defined based on an RDMA protocol, the RDMA header comprising the connection request for establishing the RDMA connection, wherein the RDMA protocol establishes rules for processing RDMA packets communicated through load balancers; in response to the received request packet, determine a second server in the distributed computing system to establish the requested RDMA connection with the first server, the second server having a second address in the computer network; encapsulate the request packet with an outer header having a destination field containing the second address of the second server; and forward the encapsulated request packet to the second server; and perform no further actions in facilitating establishment, packet transmission, or demolishment of the requested RDMA connection between the first and second servers. 11. The computing device of claim 10 wherein: the received request packet from the first server has a header with a destination field containing a virtual network address announced by the computing device; to determine the second server includes to determine the second server based on a map of virtual

Assignees

Inventors

Classifications

  • Load balancing arrangements to avoid a single path through a load balancer · CPC title

  • Address processing for routing · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30) · CPC title

  • Architectures of general purpose stored program computers (with program plugboard G06F15/08; multicomputers G06F15/16) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10652320B2 cover?
Techniques for facilitating load balancing in distributed computing systems are disclosed herein. In one embodiment, a method includes receiving, at a destination server, a request packet from a load balancer via the computer network requesting a remote direct memory access (“RDMA”) connection between an originating server and one or more other servers selectable by the load balancer. The metho…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification H04L67/1008. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 12 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 9 related publications on this page (citations in our corpus or others sharing the same primary CPC).