主权项 |
1. A computing device to perform locality sensitive load balancing between a plurality of servers, the computing device comprising:
a set of one or more network interfaces communicatively coupled with a network to receive packets, wherein each of the packets includes header field values that identify a flow the packet belongs to; a candidate generation module coupled to the set of network interfaces and configured to, for each of the received packets,
generate, based upon one or more of the header field values of the packet, one or more Bloom filter keys, andquery a plurality of Bloom filters, using the one or more generated Bloom filter keys, to generate a set of candidate servers of the plurality of servers, wherein each of the plurality of Bloom filters is to indicate whether a corresponding one of the plurality of servers is to be included in the generated set of candidate servers; and a candidate filtering module coupled to the candidate generation module and configured to, for each of the generated sets of candidate servers that include a plurality of servers for a packet of a flow,
identify, based upon one or more of the header field values of the packet, whether an entry of a false positive table exists for the flow, wherein the false positive table is to include entries corresponding to flows of packets, and wherein the entries include server identifiers indicating which candidate servers will be falsely included in the sets of candidate servers generated by the plurality of Bloom filters for the respective flow of packets, andwhen an entry of the false positive table exists for the flow, remove, from the set of candidate servers, those servers identified by the server identifiers of the entry; and a transmission module coupled to the set of network interfaces and configured to cause the packets to be transmitted to the plurality of servers based upon the respective sets of candidate servers. |