发明名称 |
Synchronizing state among load balancer components |
摘要 |
The present invention extends to methods, systems, and computer program products for synchronizing state among load balancer components. Embodiments of the invention include load balancers using a consistent hashing algorithm to decide how new connections should be load balanced. Use of consistent hashing algorithm permits load balancers to work in a stateless manner in steady state. Load balancers start keeping flow state information (destination address for a given flow) about incoming packets when it is needed, i.e. such as, for example, when a change in destination host configuration is detected. State information is shared across load balancers in a deterministic way, which allows knowing which load balancer is authoritative (e.g., is the owner) for a given flow. Each load balancer can reach the authoritative load balancer to learn about a flow that cannot be determined locally. |
申请公布号 |
US9438520(B2) |
申请公布日期 |
2016.09.06 |
申请号 |
US201414546729 |
申请日期 |
2014.11.18 |
申请人 |
Microsoft Technology Licensing, LLC |
发明人 |
Patel Parveen;Ivanov Volodymyr;Zikos Marios;Petter Vladimir;Kuznetsov Vyacheslav;Dion David Allen |
分类号 |
H04L12/803;H04L12/26;H04L12/707;H04L12/801 |
主分类号 |
H04L12/803 |
代理机构 |
|
代理人 |
Tabor Ben;Barker Doug;Minhas Micky |
主权项 |
1. One or more computer hardware storage device having stored computer-executable instructions which, when executed by at least one computer hardware processor, cause a load balancer to implement a method that includes the following:
monitoring a plurality of destination hosts for changes in an arrangement of the plurality of destination hosts; maintaining a destination host array that maps flow identifiers to destination hosts; prior to each array update, copying the destination host array to an old version of the destination host array; updating the destination host array at periodic intervals; providing the destination host array and the old version of the destination host array to a plurality of muxes; monitoring the plurality of muxes for changes; maintaining a primary ownership array mapping the flow identifiers to primary owner muxes; maintain a backup ownership array mapping the flow identifiers to backup owner muxes; providing the primary ownership array and the backup ownership array to the plurality of muxes; wherein each of the plurality of muxes is configured for: receiving packets from a router; formulating a flow identifier for each received packet based on information contained in the packet; identifying an appropriate destination host, from among the plurality of destination hosts, for the packet; andsending the packet to identified appropriate destination host. |
地址 |
Redmond WA US |