发明名称 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