Distributed network control system with a distributed hash table
First Claim
1. A non-transitory machine readable medium storing a program for a controller of a network control system, the network control system comprising (i) a plurality of controllers for managing a plurality of switching elements that forward data between a plurality of host computing devices and (ii) a distributed hash table (DHT) stored across the plurality of controllers, the DHT comprising a plurality of DHT instances each of which is stored on a different one of the plurality of controllers, the program comprising sets of instructions for:
- receiving an update for a value of a particular data tuple stored on a local DHT instance;
updating the value of the particular data tuple in the local DHT instance, said local DHT instance storing for the particular data tuple a trigger list that identifies a set of modules on a set of controllers to notify when the value of the particular data tuple is updated; and
based on the trigger list for the particular data tuple, notifying the set of modules of the set of controllers regarding the update to the value of the particular data tuple, wherein said DHT is for storing data regarding the switching elements.
2 Assignments
0 Petitions
Accused Products
Abstract
A network control system that includes several controllers for managing several switching elements and a distributed hash table (DHT) formed across the controllers for storing data regarding the switching elements that is accessible by the controllers. Each hash table serves as a DHT instance. In some embodiments, the DHT instances of all controller instances collectively store one set of records that is indexed based on hashed indices for quick access. These records are distributed across the different controller instances to minimize the size of the records within each instance and to allow for the size of the DHT to be increased by adding other DHT instances. According to this scheme, each DHT record is not stored in each controller instance. In fact, in some embodiments, each DHT record is stored in at most one controller instance.
-
Citations
26 Claims
-
1. A non-transitory machine readable medium storing a program for a controller of a network control system, the network control system comprising (i) a plurality of controllers for managing a plurality of switching elements that forward data between a plurality of host computing devices and (ii) a distributed hash table (DHT) stored across the plurality of controllers, the DHT comprising a plurality of DHT instances each of which is stored on a different one of the plurality of controllers, the program comprising sets of instructions for:
-
receiving an update for a value of a particular data tuple stored on a local DHT instance; updating the value of the particular data tuple in the local DHT instance, said local DHT instance storing for the particular data tuple a trigger list that identifies a set of modules on a set of controllers to notify when the value of the particular data tuple is updated; and based on the trigger list for the particular data tuple, notifying the set of modules of the set of controllers regarding the update to the value of the particular data tuple, wherein said DHT is for storing data regarding the switching elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory machine readable medium storing a program for a controller of a network control system, the network control system comprising a plurality of controllers for managing a plurality of switching elements that forward data between a plurality of host computing devices, the program comprising sets of instructions for:
-
receiving (i) a data tuple for storing in a distributed hash table (DHT), the DHT comprising a plurality of DHT instances each of which is stored on a different one of the plurality of controllers, and (ii) a trigger list identifying a set of modules executing on a set of controllers; generating a hash index for the data tuple; identifying a DHT instance for storing the data tuple; and directing the identified DHT instance to store the data tuple along with the trigger list, the data tuple pertaining to the forwarding of data by the switching elements between the plurality of host computing devices, the trigger list for use by the identified DHT instance when the data tuple is subsequently modified in order to notify the set of modules executing on the set of controllers that the data tuple has been modified. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. For a controller of a network control system, the network control system comprising (i) a plurality of controllers for managing a plurality of switching elements that forward data between a plurality of host computing devices and (ii) a distributed hash table (DHT) stored across the plurality of controllers, the DHT comprising a plurality of DHT instances each of which is stored on a different one of the plurality of controllers, a method comprising:
-
receiving an update for a value of a particular data tuple stored on a local DHT instance; updating the value of the particular data tuple in the local DHT instance, said local DHT instance storing for the particular data tuple a trigger list that identifies a set of modules on a set of controllers to notify when the value of the particular data tuple is updated; and based on the trigger list for the particular data tuple, notifying the set of modules of the set of controllers regarding the update to the value of the particular data tuple, wherein said DHT is for storing data regarding the switching elements. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. For a controller of a network control system, the network control system comprising a plurality of controllers for managing a plurality of switching elements that forward data between a plurality of host computing devices, a method comprising:
-
receiving (i) a data tuple for storing in a distributed hash table (DHT), the DHT comprising a plurality of DHT instances each of which is stored on a different one of the plurality of controllers, and (ii) a trigger list identifying a set of modules executing on a set of controllers; generating a hash index for the data tuple; identifying a DHT instance for storing the data tuple; and directing the identified DHT instance to store the data tuple along with the trigger list, the data tuple pertaining to the forwarding of data by the switching elements between the plurality of host computing devices, the trigger list for use by the identified DHT instance when the data tuple is subsequently modified in order to notify the set of modules executing on the set of controllers that the data tuple has been modified. - View Dependent Claims (23, 24, 25, 26)
-
Specification