Independent datastore in a network routing environment
Systems, methods, and devices for offloading network data to a datastore. A system includes a publisher device in a network computing environment. The system includes a subscriber device in the network computing environment. The system includes a datastore independent of the publisher device and the subscriber device, the datastore comprising one or more processors in a processing platform configurable to execute instructions stored in non-transitory computer readable storage media. The instructions includes receiving data from the publisher device. The instructions include storing the data across one or more of a plurality of shared storage devices. The instructions include providing the data to the subscriber device.
1 . A system comprising:
a publisher device in a network computing environment, the publisher device being a switch or router and executing a first border gateway protocol (BGP) instance;
a subscriber device in the network computing environment; and
a datastore independent of the publisher device and the subscriber device, the datastore comprising one or more processors in a processing platform configurable to execute instructions stored in non-transitory computer readable storage media, the non-transitory computer readable storage media storing instructions that, when executed by the one or more processors, causes the one or more processors to perform a method comprising:
receiving data from the publisher device, the data comprising one or more of state information for the publisher device or best path information determined by the publisher device;
storing the data across one or more of a plurality of shared storage devices by storing the one or more of the state information for the publisher device or the best path information in a database in the datastore, the one or more of the state information for the publisher device or the best path information being partitioned according to a database schema; and
providing the data to the subscriber device;
wherein the publisher device is configured to not locally store the state information for the publisher device or the best path information.
2 . The system of claim 1 , wherein:
the data comprises paths learned by the publisher device for a prefix; and
the instructions, when executed by the one or more processors, further cause the one or more processors to determine a best path from among the paths and return the best path to the publisher device.
3 . The system of claim 2 , wherein the subscriber device is configured to retrieve the best path from the datastore.
4 . The system of claim 2 , wherein the publisher device is configured to advertise the best path to one or more neighbors in the network computing environment.
5 . The system of claim 2 , wherein the publisher device is a BGP route reflector.
6 . The system of claim 1 , wherein the subscriber device executes a second BGP instance.
7 . The system of claim 1 , wherein the subscriber device executes at least one of system to intermediate system (ISIS) routing, a routing information base (RIB), and open shortest path first (OSPF).
8 . The system of claim 1 , wherein:
the data comprises paths learned by the publisher device for a prefix; and
the instructions, when executed by the one or more processors, further causes the one or more processors to modify a next-hop of one or more of the paths.
9 . The system of claim 1 , wherein the method further comprises offloading the data to cloud-based storage, and wherein the datastore itself is a cloud-based database instance.
10 . The system of claim 1 , wherein a copy of at least a portion of the datastore is stored in the publisher device.
11 . The system of claim 1 , wherein the publisher device is configured to communicate directly with the subscriber device by way of inter-process communication (IPC).
12 . A method comprising:
executing, by a publisher device in a network computing environment, a first border gateway protocol (BGP) instance, the publisher device being a switch or router;
receiving, by a controller device, data from the publisher device, the data comprising one or more of state information for the publisher device or best path information determined by the publisher device, the publisher device not locally storing the state information for the publisher device or the best path information;
storing, by the controller device, the data in a datastore across one or more of a plurality of shared storage devices by storing the one or more of the state information for the publisher device or the best path information in a database in the datastore, the one or more of the state information for the publisher device or the best path information being partitioned according to a database schema; and
providing, by the controller device, the data to a subscriber device in the network computing environment.
13 . Method of claim 12 , wherein:
the data comprises paths learned by the publisher device for a prefix; and
the method further comprises:
determining, by the controller device, a best path from among the paths; and
returning, by the controller device, the best path to the publisher device.
14 . The method of claim 13 , further comprising retrieving, by the subscriber device, the best path from the datastore.
15 . The method of claim 13 , further comprising advertising, by the publisher device, the best path to one or more neighbors in the network computing environment.
16 . The method of claim 13 , wherein the publisher device is a BGP route reflector.
17 . The method of claim 12 , wherein the subscriber device executes a second BGP instance.
18 . The method of claim 12 , wherein the subscriber device executes at least one of system to intermediate system (ISIS) routing, a routing information base (RIB), and open shortest path first (OSPF).
19 . The method of claim 12 , wherein:
the data comprises paths learned by the publisher device for a prefix; and
the method further comprises modifying, by the controller device, a next-hop of one or more of the paths.
20 . The method of claim 12 , further comprising offloading, by the controller device, the data to cloud-based storage, and wherein the datastore itself is a cloud-based database instance.