Consistent hashing using exact matching with application to hardware load balancing
First Claim
1. A method of maintaining routing information for a distributed service provided by a plurality of service instances, comprising:
- providing an address table including a set of entries, wherein;
the address table has a number of entries less than or equal to a number of index values in a set of provisioned index values, and wherein each of the entries is assigned to a respective provisioned index value and an instance of the distributed service; and
adding a new service instance to the address table by;
obtaining, by a network device controller, an assignable index value to assign to the new service instance by
1) identifying an existing, unassigned, index value in the set of provisioned index values, or when no existing index values in the set of provisioned index values are unassigned, by
2) increasing the number of index values in the set of provisioned index values and selecting a newly provisioned index value;
identifying, by the network device controller based on the obtained index value and the number of provisioned index values in the set of provisioned index values, an assigned index value that is a companion index value to the obtained index value, wherein the companion index value is associated with a packet source address set;
dividing, by the network device controller, the packet source address set associated with the companion index value into a first address subset and a second address subset; and
assigning, by the network device controller, the first address subset to the service instance entry in the address table associated with the companion index value and the second address subset to an entry in the address table associated with the obtained index value and the newly added service instance.
2 Assignments
0 Petitions
Accused Products
Abstract
Aspects and implementations of the present disclosure are directed to a network device storing an address table. Each of the address table entries is assigned to a respective provisioned index value and an instance of a distributed service. The device is configured to add a new service instance to the address table by obtaining an assignable index value for the new service instance, identifying an assigned index value that is a companion index value to the obtained index value, dividing a packet source address set associated with the companion index value into first and second address subsets, and assigning the first address subset to the service instance entry in the address table associated with the assigned companion index value and the second address subset to an entry in the address table associated with the obtained index value and the newly added service instance.
-
Citations
21 Claims
-
1. A method of maintaining routing information for a distributed service provided by a plurality of service instances, comprising:
-
providing an address table including a set of entries, wherein; the address table has a number of entries less than or equal to a number of index values in a set of provisioned index values, and wherein each of the entries is assigned to a respective provisioned index value and an instance of the distributed service; and adding a new service instance to the address table by; obtaining, by a network device controller, an assignable index value to assign to the new service instance by
1) identifying an existing, unassigned, index value in the set of provisioned index values, or when no existing index values in the set of provisioned index values are unassigned, by
2) increasing the number of index values in the set of provisioned index values and selecting a newly provisioned index value;identifying, by the network device controller based on the obtained index value and the number of provisioned index values in the set of provisioned index values, an assigned index value that is a companion index value to the obtained index value, wherein the companion index value is associated with a packet source address set; dividing, by the network device controller, the packet source address set associated with the companion index value into a first address subset and a second address subset; and assigning, by the network device controller, the first address subset to the service instance entry in the address table associated with the companion index value and the second address subset to an entry in the address table associated with the obtained index value and the newly added service instance. - View Dependent Claims (4, 5, 6, 7)
-
-
2. A method comprising:
-
providing an address table including a set of entries, wherein; the address table has a number of entries less than or equal to a number of index values in a set of provisioned index values, and wherein each of the entries is assigned to a respective provisioned index value and an instance of the distributed service; adding a new service instance to the address table by; obtaining, by a network device controller, an assignable index value to assign to the new service instance by
1) identifying an existing, unassigned, index value in the set of provisioned index values, or by
2) increasing the number of index values in the set of provisioned index values and selecting a newly provisioned index value;identifying, by the network device controller, an assigned index value that is a companion index value to the obtained index value, wherein the companion index value is associated with a packet source address set; dividing, by the network device controller, the packet source address set associated with the companion index value into a first address subset and a second address subset; and assigning, by the network device controller, the first address subset to the service instance entry in the address table associated with the companion index value and the second address subset to an entry in the address table associated with the obtained index value and the newly added service instance; and removing a service instance from the address table by; identifying, by the network device controller, a third address subset assigned to a service instance entry in the address table, associated with a first index value, for the service instance to be removed; identifying, by the network device controller, a fourth address subset assigned to a service instance entry in the address table associated with a second index value that is a companion index value to the first index value; assigning, by the network device controller, a combined address subset, comprising the third address subset and the fourth address subset, to the service instance entry in the address table associated with the second index value; and clearing, by the network device controller, the service instance entry associated with the first index value from the table. - View Dependent Claims (3, 20)
-
-
8. A network device controller comprising:
-
memory storing an address table including a set of entries, wherein the address table has a number of entries less than or equal to a number of index values in a set of provisioned index values, and wherein each of the entries is assigned to a respective provisioned index value and an instance of a distributed service provided by a plurality of service instances; and at least one processor, the at least one processor configured to add a new service instance to the address table by performing the operations of; obtaining an assignable index value to assign to the new service instance by
1) identifying an existing, unassigned, index value in the set of provisioned index values, or when no existing index values in the set of provisioned index values are unassigned, by
2) increasing the number of index values in the set of provisioned index values and selecting a newly provisioned index value;identifying, based on the obtained index value and the number of provisioned index values in the set of provisioned index values, an assigned index value that is a companion index value to the obtained index value, wherein the companion index value is associated with a packet source address set; dividing the packet source address set associated with the companion index value into a first address subset and a second address subset; and assigning the first address subset to the service instance entry in the address table associated with the companion index value and the second address subset to an entry in the address table associated with the obtained index value and the newly added service instance. - View Dependent Claims (11, 12, 13, 14)
-
-
9. A network device controller comprising:
-
memory storing an address table including a set of entries, wherein the address table has a number of entries less than or equal to a number of index values in a set of provisioned index values, and wherein each of the entries is assigned to a respective provisioned index value and an instance of a distributed service provided by a plurality of service instances; and at least one processor, the at least one processor configured to add a new service instance to the address table by performing the operations of; obtaining an assignable index value to assign to the new service instance by
1) identifying an existing, unassigned, index value in the set of provisioned index values, or by
2) increasing the number of index values in the set of provisioned index values and selecting a newly provisioned index value;identifying an assigned index value that is a companion index value to the obtained index value; dividing a packet source address set associated with the companion index value into a first address subset and a second address subset; and assigning the first address subset to the service instance entry in the address table associated with the companion index value and the second address subset to an entry in the address table associated with the obtained index value and the newly added service instance; wherein the at least one processor is further configured to remove a service instance from the address table by performing the operations of; identifying a third address subset assigned to a service instance entry in the address table, associated with a first index value, for the service instance to be removed; identifying a fourth address subset assigned to a service instance entry in the address table associated with a second index value that is a companion index value to the first index value; assigning a combined address subset, comprising the third address subset and the fourth address subset, to the service instance entry in the address table associated with the second index value; and clearing the service instance entry associated with the first index value from the table. - View Dependent Claims (10, 21)
-
-
15. Tangible computer readable media storing instructions which, when executed by one or more computing processors, cause the one or more computing processors to:
-
provide an address table including a set of entries, wherein; the address table has a number of entries less than or equal to a number of index values in a set of provisioned index values, and wherein each of the entries is assigned to a respective provisioned index value and an instance of a distributed service; add a new service instance to the address table by; obtaining an assignable index value to assign to the new service instance by
1) identifying an existing, unassigned, index value in the set of provisioned index values, or by
2) increasing the number of index values in the set of provisioned index values and selecting a newly provisioned index value;identifying an assigned index value that is a companion index value to the obtained index value; dividing a packet source address set associated with the companion index value into a first address subset and a second address subset; and assigning the first address subset to the service instance entry in the address table associated with the assigned companion index value and the second address subset to an entry in the address table associated with the obtained index value and the newly added service instance; and remove a service instance from the address table by; identifying a third address subset assigned to a service instance entry in the address table, associated with a first index value, for the service instance to be removed; identifying a fourth address subset assigned to a service instance entry in the address table associated with a second index value that is a companion index value to the first index value; assigning a combined address subset, comprising the third address subset and the fourth address subset, to the service instance entry in the address table associated with the second index value; and clearing the service instance entry associated with the first index value from the table. - View Dependent Claims (16, 17, 18, 19)
-
Specification