You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There could be a TEManager.get_state() method that returns all the state we care about, and then SDX Controller would not have to care about details (topologies present, VLAN/bandwidth/latency allocations):
# At various SDX Controller checkpoints:state=temanager.get_state()
db.upsert("temanager-state", state)
# During SDX Controller startup:state=db.read("temanager-state")
temanager.restore_state(state)
Basically: when there are events that cause state to change (a topology is published, a new connection is made, a link was cut, service degraded... etc?), SDX Controller would have to call TEManager.get_state() and save the results in the DB. And then SDX Controller should call TEManager.restore_state() at startup, so that PCE can resume its work between SDX Controller restarts.
If PCE was a service, we probably could have done this in an even more transparent manner -- in that case PCE would get to maintain its state persistently (in a DB), but since PCE is only a library, SDX Controller will have to do the state management.
To ensure consistency and simplicity for sdx_controller, both available_bandwidth and vlan_range in port service are updated in the topology JSON objects that are saved in DB.
After crash recovery, the topology objects with the latest states will be recovered from the DB.
Spinning this off #244.
There could be a
TEManager.get_state()
method that returns all the state we care about, and then SDX Controller would not have to care about details (topologies present, VLAN/bandwidth/latency allocations):Basically: when there are events that cause state to change (a topology is published, a new connection is made, a link was cut, service degraded... etc?), SDX Controller would have to call
TEManager.get_state()
and save the results in the DB. And then SDX Controller should callTEManager.restore_state()
at startup, so that PCE can resume its work between SDX Controller restarts.If PCE was a service, we probably could have done this in an even more transparent manner -- in that case PCE would get to maintain its state persistently (in a DB), but since PCE is only a library, SDX Controller will have to do the state management.
Thoughts, @YufengXin, @congwang09, @italovalcy?
The text was updated successfully, but these errors were encountered: