![Page 1: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/1.jpg)
RAVEL: A DATABASE-DEFINED NETWORK
![Page 2: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/2.jpg)
RAVEL: A DATABASE-DEFINED NETWORK
ravel |ˈravəl|
verb 1 (ravel something out) untangle or unravel something
2 confuse or complicate (a question or situation).
Ravel, Maurice |rəˈvel|
(1875–1937), French composer; full name Maurice Joseph Ravel. His works, which are noted for their colorful orchestration, have a distinctive tone and make use of unresolved dissonances.
© New Oxford American Dictionary
![Page 3: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/3.jpg)
PROBLEM
For SDNs to be useful, abstraction is necessary
…but what's the right kind of abstraction?
Authors’ argument: existing controller solutions are too rigid
difficult to fundamentally upgrade, or run a network with vastly different abstractions
![Page 4: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/4.jpg)
PROPOSED SOLUTION
Turn controller into SQL database
“SDN control fundamentally revolves around data representation”
Base tables contain low-level representation of controller / switch state
When modified by applications, propagate changes via e.g. OpenFlow
Incoming events from switches cause base table changes, invoke triggers / rules
Higher-level representations formed by views
![Page 5: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/5.jpg)
tp(sid, nid)
rm(fid, sid, nid, vol)
cf(fid, sid, nid)
Topology Switch ID Next hop ID
Reachability Matrix Source DestinationFlow ID Volume
(bandwidth)
BASE TABLES
Configuration Flow ID Switch ID Next hop ID
![Page 6: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/6.jpg)
STRUCTURE
Network
Topology Reachability Configuration Base Tables
Load BalancingRouting
Firewall
ApplicationsHorizontal
Orchestration
…
(Console) Interface
POX
control even
ts
![Page 7: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/7.jpg)
HORIZONTAL ORCHESTRATION
Mediation protocol
Requires global (total) ordering of application priorities
e.g. Firewall > Routing > Load Balancing – user-defined
When an application wants to change data in base table, other applications are “asked” whether their invariants / constraints are violated
How does that happen?
![Page 8: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/8.jpg)
![Page 9: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/9.jpg)
HORIZONTAL ORCHESTRATION
Higher priority → checked later
When is it run?
![Page 10: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/10.jpg)
EVALUATION
Various topologies (fat tree, ISP) with various (seemingly realistic) amounts of network devices
Three types of experiments
Ravel overhead – cost of database operations and orchestration
Scalability (of orchestration)
View optimization
![Page 11: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/11.jpg)
EVALUATION
![Page 12: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/12.jpg)
EVALUATION
![Page 13: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/13.jpg)
EVALUATION
![Page 14: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/14.jpg)
SHORTCOMINGS
What about distributed controllers?
Fault tolerance?
Inconsistencies in paper (non-existent columns, …)
![Page 15: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/15.jpg)
![Page 16: RAVEL: A DATABASE-DEFINED NETWORK · RAVEL: A DATABASE-DEFINED NETWORK ravel |ˈravəl| verb 1 (ravel something out) untangle or unravel something 2 confuse or complicate (a question](https://reader030.vdocuments.us/reader030/viewer/2022021612/5e995a8aa32df027f35cc3f2/html5/thumbnails/16.jpg)
THANKS FOR LISTENING!