SlideShare une entreprise Scribd logo
1  sur  53
Télécharger pour lire hors ligne
Software-defined Networks as
Databases
AnduoWang* Wenchao Zhou† Brighten Godfrey* Matthew Caesar*
*University of Illinois at Urbana-Champaign †Georgetown University
SDN not built with consistency in mind
2
writing app program is easy
OS
distributed state abstraction: view
PL
configuration abstraction:
function(view)
features techniques, abstractions
control-
plane
interfaces
end user
data-plane
serves
concurrent
apps
SDN not built with consistency in mind
2
writing app program is easy
OS
distributed state abstraction: view
PL
configuration abstraction:
function(view)
features techniques, abstractions
control-
plane
interfaces
end user
data-plane
serves
concurrent
apps
?
forwarding abstraction:
any switch that speaks openflow
SDN not built with consistency in mind
2
writing app program is easy
OS
distributed state abstraction: view
PL
configuration abstraction:
function(view)
features techniques, abstractions
control-
plane
interfaces
end user
data-plane
serves
concurrent
apps
no control over event ordering, timing
of changes
how to instill customizable, flexible
correctness criteria?
how to achieve continuous, reliable
correctness guarantee?
?
forwarding abstraction:
any switch that speaks openflow
this presents a challenge for SDN
3
this presents a challenge for SDN
as networks become foundation of modern lives
-used for critical infrastructure: military, financial, healthcare...
-higher correctness concerns: regulatory requirements (HIPAA, Sarbanes Oxley),
security, privacy
3
this presents a challenge for SDN
as networks become foundation of modern lives
-used for critical infrastructure: military, financial, healthcare...
-higher correctness concerns: regulatory requirements (HIPAA, Sarbanes Oxley),
security, privacy
as SDN deployments advance
3
this presents a challenge for SDN
as networks become foundation of modern lives
-used for critical infrastructure: military, financial, healthcare...
-higher correctness concerns: regulatory requirements (HIPAA, Sarbanes Oxley),
security, privacy
as SDN deployments advance
tension between control- /data-plane increases
3
writing app program is easy
OS
distributed state abstraction: view
PL
configuration abstraction:
function(view)
no control over event ordering, timing of
changes
how to instill customizable, flexible
correctness criteria?
how to achieve continuous, reliable
correctness guarantee?
?
forwarding abstraction:
any switch that speaks openflow
inspiration: databases
4
features techniques, abstractions
control-
plane
interfaces
single user
data-plane
serves
concurrent
apps
writing app program is easy
OS
distributed state abstraction: view
PL
configuration abstraction:
function(view)
no control over event ordering, timing of
changes
how to instill customizable, flexible
correctness criteria?
how to achieve continuous, reliable
correctness guarantee?
?
forwarding abstraction:
any switch that speaks openflow
inspiration: databases
4
features techniques, abstractions
control-
plane
interfaces
single user
data-plane
serves
concurrent
apps
should (like DB)
hide app program from data-plane
concurrency, updates
permit data-plane concurrency and
optimization with correctness
guarantee
DB
forwarding abstraction:
view as database
writing app program is easy
OS
distributed state abstraction: view
PL
configuration abstraction:
function(view)
no control over event ordering, timing of
changes
how to instill customizable, flexible
correctness criteria?
how to achieve continuous, reliable
correctness guarantee?
?
forwarding abstraction:
any switch that speaks openflow
inspiration: databases
4
features techniques, abstractions
control-
plane
interfaces
single user
data-plane
serves
concurrent
apps
should (like DB)
hide app program from data-plane
concurrency, updates
permit data-plane concurrency and
optimization with correctness
guarantee
DB
forwarding abstraction:
view as database
our approach: map database structure onto SDN
5
our approach: map database structure onto SDN
data item corresponds to network view (configuration)
-data item = configuration = path attributes ≠ switching rules
- the attributes associated with each flow’s forwarding path
-switches = distributed data-structure
- the data-structure implements the data item
5
our approach: map database structure onto SDN
data item corresponds to network view (configuration)
-data item = configuration = path attributes ≠ switching rules
- the attributes associated with each flow’s forwarding path
-switches = distributed data-structure
- the data-structure implements the data item
write corresponds to configuration update
5
our approach: map database structure onto SDN
data item corresponds to network view (configuration)
-data item = configuration = path attributes ≠ switching rules
- the attributes associated with each flow’s forwarding path
-switches = distributed data-structure
- the data-structure implements the data item
write corresponds to configuration update
read corresponds to data traffic forwarding
5
our work: map database structure onto SDN
6
network view = configuration = path attributes data item
configuration update W(data item, value), OK()
traffic traversal R(data item), OK(value)
networking entity database structure
k(kids➙YouTube)
S1 S2 S3
parents
controller
kidsYouTube
operations
W(k, S1)
OK()
R(k)
OK(S1)
p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1 y2 p k
dest ...
p: ...
k: ...
y1: ...
y2: ...
database
our work: map database structure onto SDN
6
network view = configuration = path attributes data item
configuration update W(data item, value), OK()
traffic traversal R(data item), OK(value)
networking entity database structure
k(kids➙YouTube)
S1 S2 S3
parents
controller
kidsYouTube
operations
W(k, S1)
OK()
R(k)
OK(S1)
p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1 y2 p k
dest ...
p: ...
k: ...
y1: ...
y2: ...
database
our work: map database structure onto SDN
6
network view = configuration = path attributes data item
configuration update W(data item, value), OK()
traffic traversal R(data item), OK(value)
networking entity database structure
k(kids➙YouTube)
S1 S2 S3
parents
controller
kidsYouTube
operations
W(k, S1)
OK()
R(k)
OK(S1)
p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1 y2 p k
dest ...
p: ...
k: ...
y1: ...
y2: ...
database
our work: map database structure onto SDN
6
network view = configuration = path attributes data item
configuration update W(data item, value), OK()
traffic traversal R(data item), OK(value)
networking entity database structure
k(kids➙YouTube)
S1 S2 S3
parents
controller
kidsYouTube
k: fwdYouTube k: S1 k: S2
operations
W(k, S1)
OK()
R(k)
OK(S1)
p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1 y2 p k
dest ...
p: ...
k: ...
y1: ...
y2: ...
database
our work: map database structure onto SDN
6
network view = configuration = path attributes data item
configuration update W(data item, value), OK()
traffic traversal R(data item), OK(value)
networking entity database structure
k(kids➙YouTube)
S1 S2 S3
parents
controller
kidsYouTube
k: fwdYouTube k: S1 k: S2
operations
W(k, S1)
OK()
R(k)
OK(S1)
ackackack
p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1 y2 p k
dest ...
p: ...
k: ...
y1: ...
y2: ...
database
k: S1
our work: map database structure onto SDN
6
network view = configuration = path attributes data item
configuration update W(data item, value), OK()
traffic traversal R(data item), OK(value)
networking entity database structure
k(kids➙YouTube)
S1 S2 S3
parents
controller
kidsYouTube
operations
W(k, S1)
OK()
R(k)
OK(S1)
p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1 y2 p k
dest ...
p: ...
k: ...
y1: ...
y2: ...
database
k: S1
our work: map database structure onto SDN
6
network view = configuration = path attributes data item
configuration update W(data item, value), OK()
traffic traversal R(data item), OK(value)
networking entity database structure
k(kids➙YouTube)
S1 S2 S3
parents
controller
kidsYouTube
operations
W(k, S1)
OK()
R(k)
OK(S1)
k(kids➙YouTube)p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1 y2 p k
dest ...
p: ...
k: ...
y1: ...
y2: ...
database
k: S1
our work: map database structure onto SDN
6
network view = configuration = path attributes data item
configuration update W(data item, value), OK()
traffic traversal R(data item), OK(value)
networking entity database structure
k(kids➙YouTube)
S1 S2 S3
parents
controller
kidsYouTube
operations
W(k, S1)
OK()
R(k)
OK(S1)
k(kids➙YouTube)p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1 y2 p k
dest ...
p: ...
k: ...
y1: ...
y2: ...
database
k: S1k: S1
our work: map database structure onto SDN
6
network view = configuration = path attributes data item
configuration update W(data item, value), OK()
traffic traversal R(data item), OK(value)
networking entity database structure
k(kids➙YouTube)
S1 S2 S3
parents
controller
kidsYouTube
operations
W(k, S1)
OK()
R(k)
OK(S1)
p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1 y2 p k
dest ...
p: ...
k: ...
y1: ...
y2: ...
database
k: S1k: S1
our work: map database structure onto SDN
7
network view
= per-flow configurations (policies) data item
control domain
actual network view as switch flow tables
network view maintained by controller
database site
register
secure storage
network view update
traffic forwarding
write
read
network view updates
= updates for all affected flows in an app transaction
two configuration update overlap
configuration update overlaps in-flight traffic
(ACID, CAP ...)
write/write conflict
read/write conflict
our contribution: design a database model, a basis for porting DB techniques
towards a more tractable and powerful SDN
networking entity database structure
our work: port DB techniques
identify correctness criteria by adapting well-studied DB properties
-ACID (atomicity, consistency, isolation, durability)
- build solid and reliable SDN by using ACID as reference properties
-CAP: only two of consistency, availability, and partition are achievable
- understand the limitation, potential, and trade-off of SDN
achieve correctness with well-tested DB mechanism
-scheduling SDN write/read by linearization
- improving performance (concurrency) while retaining the correctness (sequential behavior)
8
ongoing work: prototyping scheduling
9
control
program
scheduler
ongoing work: prototyping scheduling
9
control
program
scheduler
scheduler
application
properties
(ACID,
CAP)
SDN
database
model
linearization
algorithm
readwrite
control app
dependency
writing app program is easy
OS
distributed state abstraction: view
PL
configuration abstraction:
function(view)
no control over event ordering, timing of
changes
how to instill customizable, flexible
correctness criteria?
how to achieve continuous, reliable
correctness guarantee?
?
forwarding abstraction:
any switch that speaks openflow
recap: SDN as databases
10
features techniques, abstractions
control-
plane
interfaces
single user
data-plane
serves
concurrent
apps
should (like DB)
hide app program from data-plane
concurrency, updates
permit data-plane concurrency and
optimization with correctness
guarantee
DB
forwarding abstraction:
view as database
grand challenge and great potential
11
grand challenge and great potential
SDN database design space is unusual
-data item = path attributes, implemented by distributed data-structure = switches
-very large scale, communication gap between register & storage
11
grand challenge and great potential
SDN database design space is unusual
-data item = path attributes, implemented by distributed data-structure = switches
-very large scale, communication gap between register & storage
future work
-write control apps with DB query language, which offers
- data-dependency hiding: hide apps from data-plane
- query suggestion/completion: provide hints and automation
-ensure data-plane correctness with general DB mechanism
- synchronizing R/W,W/W by scheduling / locking
11
backup
12
dest ...
p: S1
k: S1
y1: S3
y2: S3
map data to configuration
13
S1 S2 S3
parents
C
kidsYouTube
per flow policy,
implemented by a distributed set of switches
data item attributes,
describe the collective effects of switch
actions
database
p(parents➙Youtube) k(kids➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
switching rules that implement data item k (policy for k)
k: fwdYouTube k: S2k: S1
flows: y1
y2 p k
data-plane and distributed databases
14
dest
p: S1
k: S1
y1: S3
y2: S3
DM
S1 S2 S3
parents
C
kidsYouTube
p(parents➙Youtube) k(kids➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows: y1
y2 p k paths:
s1s2s3
data-plane and distributed databases
14
S1 S2 S3
parents
C
kidsYouTube
p(parents➙Youtube) k(kids➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
data-plane and distributed databases
14
S1 S2 S3
parents
C
kidsYouTube
S5
S4
k1,2: S5
*: drop
p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
k1(kids➙firewall)
k2(kids➙Youtube)
data-plane and distributed databases
14
S1 S2 S3
parents
C
kidsYouTube
S5
S4
k1,2: S5
*: drop
p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
k1(kids➙firewall)
k2(kids➙Youtube)
data-plane and distributed databases
14
dest
k1: S5
k2: drop
y1: drop
DM B
B =S1S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
k1,2: S5
*: drop
p(parents➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
k1(kids➙firewall)
k2(kids➙Youtube)
data-plane and distributed databases
14
dest
k1: S5
k2: drop
y1: drop
DM B
B =S1S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
k1,2: S5
*: S2
*: drop
p: S4
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
p(parents➙Youtube)
k1(kids➙firewall)
k2(kids➙Youtube)
data-plane and distributed databases
14
dest
k1: S5
k2: drop
y1: drop
DM B
B =S1S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
k1,2: S5
*: S2
*: drop
p: S4
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
p(parents➙Youtube)
k1(kids➙firewall)
k2(kids➙Youtube)
data-plane and distributed databases
14
dest
p: S4
y1: S3
DM
A
A=S1...S2S4S3
dest
k1: S5
k2: drop
y1: drop
DM B
B =S1S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
k1,2: S5
*: S2
*: drop
p: S4
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
p(parents➙Youtube)
k1(kids➙firewall)
k2(kids➙Youtube)
data-plane and distributed databases
14
dest
p: S4
y1: S3
DM
A
A=S1...S2S4S3
DM B
B =S1S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
k1,2: S5
*: S2
p: S4
dest
k1: S5
k2: S1
y1: S3
k2: S1
y1,2: S3
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
p(parents➙Youtube)
k1(kids➙firewall)
k2(kids➙Youtube)
networking activities transactions operations
controller sets up paths for kids and parents T1
WB(k1, S5), ok()
WA(p, S4), ok()
kids send firewall set-up request to S5 T2 RB(k1), ok(S5)
firewall accepts kids’ request and controller sets up paths between kids and
YouTube T3
WB(k2, S1), ok()
WB(y, S3), ok()
kids send request toYouTube T4 RB(k2), ok(S1)
YouTube respond with video streaming T5 RB(y), ok(S3)
data-plane and distributed databases
14
dest
p: S4
y1: S3
DM
A
A=S1...S2S4S3
DM B
B =S1S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
k1,2: S5
*: S2
p: S4
dest
k1: S5
k2: S1
y1: S3
k2: S1
y1,2: S3
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
p(parents➙Youtube)
k1(kids➙firewall)
k2(kids➙Youtube)
networking activities transactions operations
controller sets up paths for kids and parents T1
WB(k1, S5), ok()
WA(p, S4), ok()
kids send firewall set-up request to S5 T2 RB(k1), ok(S5)
firewall accepts kids’ request and controller sets up paths between kids and
YouTube T3
WB(k2, S1), ok()
WB(y, S3), ok()
kids send request toYouTube T4 RB(k2), ok(S1)
YouTube respond with video streaming T5 RB(y), ok(S3)
data-plane and distributed databases
14
dest
p: S4
y1: S3
DM
A
A=S1...S2S4S3
DM B
B =S1S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
k1,2: S5
*: S2
p: S4
dest
k1: S5
k2: S1
y1: S3
k2: S1
y1,2: S3
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
p(parents➙Youtube)
k1(kids➙firewall)
k2(kids➙Youtube)
networking activities transactions operations
controller sets up paths for kids and parents T1
WB(k1, S5), ok()
WA(p, S4), ok()
kids send firewall set-up request to S5 T2 RB(k1), ok(S5)
firewall accepts kids’ request and controller sets up paths between kids and
YouTube T3
WB(k2, S1), ok()
WB(y, S3), ok()
kids send request toYouTube T4 RB(k2), ok(S1)
YouTube respond with video streaming T5 RB(y), ok(S3)
data-plane and distributed databases
14
dest
p: S4
y1: S3
DM
A
A=S1...S2S4S3
DM B
B =S1S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
k1,2: S5
*: S2
p: S4
dest
k1: S5
k2: S1
y1: S3
k2: S1
y1,2: S3
y1 (Youtube➙parents)
y2 (Youtube➙kids)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
p(parents➙Youtube)
k1(kids➙firewall)
k2(kids➙Youtube)
15
dest
p: S4
y: S3
DM
A
A=S1...S2S4S3
DM B
B =S1...S2S5S3
S1 S2 S3
parents
C
kidsYouTube
p flowy flow
S5
S4
k1 flow (to S5)
k2 flow (toYouTube)
dest
k1: S5
k2: S1
y: S3
ACID atomicity,consistency, isolation,durability
durable transaction
-a transaction commits after those it depends on commit
- T3 depends on T1
- T1:WB(k1, S5), ok(),WA(p, S4), ok(),T3:WB(k2, S1), ok(),WB(y, S3), ok()
-durability enables
- recovery data-plane failures from controller’s view
15
dest
p: S4
y: S3
DM
A
A=S1...S2S4S3
DM B
B =S1...S2S5S3
S1 S2 S3
parents
C
kidsYouTube
p flowy flow
S5
S4
k1 flow (to S5)
k2 flow (toYouTube)
dest
k1: S5
k2: S1
y: S3
ACID atomicity,consistency, isolation,durability
16
dest
p: S4
y: S3
DM
A
A=S1...S2S4S3
DM B
B =S1...S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
dest
k1: S5
k2: S1
y: S3
ACID atomicity,consistency, isolation,durability
networking activities transactions operations
controller sets up paths for kids and parents T1
WB(k1, S5), ok()
WA(p, S4), ok()
kids send firewall set-up request to S5 T2 RB(k1), ok(S5)
firewall accepts kids’ request and controller sets up paths between kids and
YouTube T3
WB(k2, S1), ok()
WB(y, S3), ok()
kids send request toYouTube T4 RB(k2), ok(S1)
YouTube respond with video streaming T5 RB(y), ok(S3)
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
p(parents➙Youtube)
k1(kids➙firewall)
k2(kids➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
16
dest
p: S4
y: S3
DM
A
A=S1...S2S4S3
DM B
B =S1...S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
dest
k1: S5
k2: S1
y: S3
ACID atomicity,consistency, isolation,durability
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
p(parents➙Youtube)
k1(kids➙firewall)
k2(kids➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)
atomic transaction
-all operations are (effectively) all or none
- T3:WB(k2, S1), ok(),WB(y, S3), ok()
-atomicity ensures
- YouTube could always respond whenever kids request a video
16
dest
p: S4
y: S3
DM
A
A=S1...S2S4S3
DM B
B =S1...S2S5S3
S1 S2 S3
parents
C
kidsYouTube
S5
S4
dest
k1: S5
k2: S1
y: S3
ACID atomicity,consistency, isolation,durability
flows:
y1,2 p k1,2
paths:
s1s2s5s3
s1s2s4s3
p(parents➙Youtube)
k1(kids➙firewall)
k2(kids➙Youtube)
y1 (Youtube➙parents)
y2 (Youtube➙kids)

Contenu connexe

Similaire à Software-defined Networks as Databases

Perfsystems- Consulting Services
Perfsystems- Consulting ServicesPerfsystems- Consulting Services
Perfsystems- Consulting Services
Perfsys Tems
 
Synchronize AD and OpenLDAP with LSC
Synchronize AD and OpenLDAP with LSCSynchronize AD and OpenLDAP with LSC
Synchronize AD and OpenLDAP with LSC
LDAPCon
 
MLOps with a Feature Store: Filling the Gap in ML Infrastructure
MLOps with a Feature Store: Filling the Gap in ML InfrastructureMLOps with a Feature Store: Filling the Gap in ML Infrastructure
MLOps with a Feature Store: Filling the Gap in ML Infrastructure
Data Science Milan
 
2015-05-19-resume
2015-05-19-resume2015-05-19-resume
2015-05-19-resume
Lee Norris
 

Similaire à Software-defined Networks as Databases (20)

Refactoring Wunderlist. UA Mobile 2016.
Refactoring Wunderlist. UA Mobile 2016.Refactoring Wunderlist. UA Mobile 2016.
Refactoring Wunderlist. UA Mobile 2016.
 
Cesar Valiente "Unidirectional architecture on Android with Kotlin"
Cesar Valiente "Unidirectional architecture on Android with Kotlin"Cesar Valiente "Unidirectional architecture on Android with Kotlin"
Cesar Valiente "Unidirectional architecture on Android with Kotlin"
 
Perfsystems- Consulting Services
Perfsystems- Consulting ServicesPerfsystems- Consulting Services
Perfsystems- Consulting Services
 
Managing microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - MeetupManaging microservices with istio on OpenShift - Meetup
Managing microservices with istio on OpenShift - Meetup
 
Machine Learning in the Cloud with GraphLab
Machine Learning in the Cloud with GraphLabMachine Learning in the Cloud with GraphLab
Machine Learning in the Cloud with GraphLab
 
Data Pipeline for The Big Data/Data Science OKC
Data Pipeline for The Big Data/Data Science OKCData Pipeline for The Big Data/Data Science OKC
Data Pipeline for The Big Data/Data Science OKC
 
Advanced #6 clean architecture
Advanced #6  clean architectureAdvanced #6  clean architecture
Advanced #6 clean architecture
 
Velox at SF Data Mining Meetup
Velox at SF Data Mining MeetupVelox at SF Data Mining Meetup
Velox at SF Data Mining Meetup
 
Do flink on web with flow - Dongwon Kim & Haemee park, SK Telecom)
Do flink on web with flow - Dongwon Kim & Haemee park, SK Telecom)Do flink on web with flow - Dongwon Kim & Haemee park, SK Telecom)
Do flink on web with flow - Dongwon Kim & Haemee park, SK Telecom)
 
Do Flink on Web with FLOW
Do Flink on Web with FLOWDo Flink on Web with FLOW
Do Flink on Web with FLOW
 
Designing API: REST | gRPC | GraphQL, which one should you pick? - Cedrick Lu...
Designing API: REST | gRPC | GraphQL, which one should you pick? - Cedrick Lu...Designing API: REST | gRPC | GraphQL, which one should you pick? - Cedrick Lu...
Designing API: REST | gRPC | GraphQL, which one should you pick? - Cedrick Lu...
 
Synchronize AD and OpenLDAP with LSC
Synchronize AD and OpenLDAP with LSCSynchronize AD and OpenLDAP with LSC
Synchronize AD and OpenLDAP with LSC
 
Webinar Oracle adf12c EN
Webinar Oracle adf12c ENWebinar Oracle adf12c EN
Webinar Oracle adf12c EN
 
MLOps with a Feature Store: Filling the Gap in ML Infrastructure
MLOps with a Feature Store: Filling the Gap in ML InfrastructureMLOps with a Feature Store: Filling the Gap in ML Infrastructure
MLOps with a Feature Store: Filling the Gap in ML Infrastructure
 
2015-05-19-resume
2015-05-19-resume2015-05-19-resume
2015-05-19-resume
 
"From Orchestration to Choreography and Back", Yevhen Bobrov
"From Orchestration to Choreography and Back", Yevhen Bobrov "From Orchestration to Choreography and Back", Yevhen Bobrov
"From Orchestration to Choreography and Back", Yevhen Bobrov
 
Cloud-Native Patterns for Data-Intensive Applications
Cloud-Native Patterns for Data-Intensive ApplicationsCloud-Native Patterns for Data-Intensive Applications
Cloud-Native Patterns for Data-Intensive Applications
 
SQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 QuestionsSQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 Questions
 
Velox: Models in Action
Velox: Models in ActionVelox: Models in Action
Velox: Models in Action
 
Refactoring Design Patterns the Functional Way (in Scala)
Refactoring Design Patterns the Functional Way (in Scala)Refactoring Design Patterns the Functional Way (in Scala)
Refactoring Design Patterns the Functional Way (in Scala)
 

Plus de Open Networking Summits

[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4
Open Networking Summits
 

Plus de Open Networking Summits (20)

CORD: Central Office Re-architected as a Datacenter
CORD: Central Office Re-architected as a DatacenterCORD: Central Office Re-architected as a Datacenter
CORD: Central Office Re-architected as a Datacenter
 
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4
 
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
 
Learnings from Carrier SDN Deployments
Learnings from Carrier SDN DeploymentsLearnings from Carrier SDN Deployments
Learnings from Carrier SDN Deployments
 
Software Defined Networking: Enabling The Mobile Workplace
Software Defined Networking: Enabling The Mobile WorkplaceSoftware Defined Networking: Enabling The Mobile Workplace
Software Defined Networking: Enabling The Mobile Workplace
 
Application Driven SDN
Application Driven SDNApplication Driven SDN
Application Driven SDN
 
Software Defined Networks Network Function Virtualization Pivotal Technologies
Software Defined Networks Network Function Virtualization Pivotal TechnologiesSoftware Defined Networks Network Function Virtualization Pivotal Technologies
Software Defined Networks Network Function Virtualization Pivotal Technologies
 
NFV & SDN Customer Deployments
NFV & SDN Customer DeploymentsNFV & SDN Customer Deployments
NFV & SDN Customer Deployments
 
Automation of end-to-end QOS
Automation of end-to-end QOSAutomation of end-to-end QOS
Automation of end-to-end QOS
 
Building a Digital Telco
Building a Digital TelcoBuilding a Digital Telco
Building a Digital Telco
 
Spreading NFV through the Network: the ETSI NFV use cases
Spreading NFV through the Network: the ETSI NFV use casesSpreading NFV through the Network: the ETSI NFV use cases
Spreading NFV through the Network: the ETSI NFV use cases
 
BeHop : SDN for Dense WiFi Networks
BeHop : SDN for Dense WiFi NetworksBeHop : SDN for Dense WiFi Networks
BeHop : SDN for Dense WiFi Networks
 
Ranges & Cross-Entrance Consistency with OpenFlow
Ranges & Cross-Entrance Consistency with OpenFlowRanges & Cross-Entrance Consistency with OpenFlow
Ranges & Cross-Entrance Consistency with OpenFlow
 
On the Necessity of Time-based Updates in SDN
On the Necessity of Time-based Updates in SDNOn the Necessity of Time-based Updates in SDN
On the Necessity of Time-based Updates in SDN
 
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
 
ESPRES: Easy Scheduling and Prioritization for SDN
ESPRES: Easy Scheduling and Prioritization for SDNESPRES: Easy Scheduling and Prioritization for SDN
ESPRES: Easy Scheduling and Prioritization for SDN
 
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATIONSDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
 
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANsSoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
 
RadioVisor - A Slicing Plane for Radio Access Networks
RadioVisor - A Slicing Plane for Radio Access NetworksRadioVisor - A Slicing Plane for Radio Access Networks
RadioVisor - A Slicing Plane for Radio Access Networks
 
Enabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsEnabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing Protocols
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Software-defined Networks as Databases

  • 1.
  • 2.
  • 3. Software-defined Networks as Databases AnduoWang* Wenchao Zhou† Brighten Godfrey* Matthew Caesar* *University of Illinois at Urbana-Champaign †Georgetown University
  • 4. SDN not built with consistency in mind 2 writing app program is easy OS distributed state abstraction: view PL configuration abstraction: function(view) features techniques, abstractions control- plane interfaces end user data-plane serves concurrent apps
  • 5. SDN not built with consistency in mind 2 writing app program is easy OS distributed state abstraction: view PL configuration abstraction: function(view) features techniques, abstractions control- plane interfaces end user data-plane serves concurrent apps ? forwarding abstraction: any switch that speaks openflow
  • 6. SDN not built with consistency in mind 2 writing app program is easy OS distributed state abstraction: view PL configuration abstraction: function(view) features techniques, abstractions control- plane interfaces end user data-plane serves concurrent apps no control over event ordering, timing of changes how to instill customizable, flexible correctness criteria? how to achieve continuous, reliable correctness guarantee? ? forwarding abstraction: any switch that speaks openflow
  • 7. this presents a challenge for SDN 3
  • 8. this presents a challenge for SDN as networks become foundation of modern lives -used for critical infrastructure: military, financial, healthcare... -higher correctness concerns: regulatory requirements (HIPAA, Sarbanes Oxley), security, privacy 3
  • 9. this presents a challenge for SDN as networks become foundation of modern lives -used for critical infrastructure: military, financial, healthcare... -higher correctness concerns: regulatory requirements (HIPAA, Sarbanes Oxley), security, privacy as SDN deployments advance 3
  • 10. this presents a challenge for SDN as networks become foundation of modern lives -used for critical infrastructure: military, financial, healthcare... -higher correctness concerns: regulatory requirements (HIPAA, Sarbanes Oxley), security, privacy as SDN deployments advance tension between control- /data-plane increases 3
  • 11. writing app program is easy OS distributed state abstraction: view PL configuration abstraction: function(view) no control over event ordering, timing of changes how to instill customizable, flexible correctness criteria? how to achieve continuous, reliable correctness guarantee? ? forwarding abstraction: any switch that speaks openflow inspiration: databases 4 features techniques, abstractions control- plane interfaces single user data-plane serves concurrent apps
  • 12. writing app program is easy OS distributed state abstraction: view PL configuration abstraction: function(view) no control over event ordering, timing of changes how to instill customizable, flexible correctness criteria? how to achieve continuous, reliable correctness guarantee? ? forwarding abstraction: any switch that speaks openflow inspiration: databases 4 features techniques, abstractions control- plane interfaces single user data-plane serves concurrent apps should (like DB) hide app program from data-plane concurrency, updates permit data-plane concurrency and optimization with correctness guarantee DB forwarding abstraction: view as database
  • 13. writing app program is easy OS distributed state abstraction: view PL configuration abstraction: function(view) no control over event ordering, timing of changes how to instill customizable, flexible correctness criteria? how to achieve continuous, reliable correctness guarantee? ? forwarding abstraction: any switch that speaks openflow inspiration: databases 4 features techniques, abstractions control- plane interfaces single user data-plane serves concurrent apps should (like DB) hide app program from data-plane concurrency, updates permit data-plane concurrency and optimization with correctness guarantee DB forwarding abstraction: view as database
  • 14. our approach: map database structure onto SDN 5
  • 15. our approach: map database structure onto SDN data item corresponds to network view (configuration) -data item = configuration = path attributes ≠ switching rules - the attributes associated with each flow’s forwarding path -switches = distributed data-structure - the data-structure implements the data item 5
  • 16. our approach: map database structure onto SDN data item corresponds to network view (configuration) -data item = configuration = path attributes ≠ switching rules - the attributes associated with each flow’s forwarding path -switches = distributed data-structure - the data-structure implements the data item write corresponds to configuration update 5
  • 17. our approach: map database structure onto SDN data item corresponds to network view (configuration) -data item = configuration = path attributes ≠ switching rules - the attributes associated with each flow’s forwarding path -switches = distributed data-structure - the data-structure implements the data item write corresponds to configuration update read corresponds to data traffic forwarding 5
  • 18. our work: map database structure onto SDN 6 network view = configuration = path attributes data item configuration update W(data item, value), OK() traffic traversal R(data item), OK(value) networking entity database structure k(kids➙YouTube) S1 S2 S3 parents controller kidsYouTube operations W(k, S1) OK() R(k) OK(S1) p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1 y2 p k dest ... p: ... k: ... y1: ... y2: ... database
  • 19. our work: map database structure onto SDN 6 network view = configuration = path attributes data item configuration update W(data item, value), OK() traffic traversal R(data item), OK(value) networking entity database structure k(kids➙YouTube) S1 S2 S3 parents controller kidsYouTube operations W(k, S1) OK() R(k) OK(S1) p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1 y2 p k dest ... p: ... k: ... y1: ... y2: ... database
  • 20. our work: map database structure onto SDN 6 network view = configuration = path attributes data item configuration update W(data item, value), OK() traffic traversal R(data item), OK(value) networking entity database structure k(kids➙YouTube) S1 S2 S3 parents controller kidsYouTube operations W(k, S1) OK() R(k) OK(S1) p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1 y2 p k dest ... p: ... k: ... y1: ... y2: ... database
  • 21. our work: map database structure onto SDN 6 network view = configuration = path attributes data item configuration update W(data item, value), OK() traffic traversal R(data item), OK(value) networking entity database structure k(kids➙YouTube) S1 S2 S3 parents controller kidsYouTube k: fwdYouTube k: S1 k: S2 operations W(k, S1) OK() R(k) OK(S1) p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1 y2 p k dest ... p: ... k: ... y1: ... y2: ... database
  • 22. our work: map database structure onto SDN 6 network view = configuration = path attributes data item configuration update W(data item, value), OK() traffic traversal R(data item), OK(value) networking entity database structure k(kids➙YouTube) S1 S2 S3 parents controller kidsYouTube k: fwdYouTube k: S1 k: S2 operations W(k, S1) OK() R(k) OK(S1) ackackack p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1 y2 p k dest ... p: ... k: ... y1: ... y2: ... database k: S1
  • 23. our work: map database structure onto SDN 6 network view = configuration = path attributes data item configuration update W(data item, value), OK() traffic traversal R(data item), OK(value) networking entity database structure k(kids➙YouTube) S1 S2 S3 parents controller kidsYouTube operations W(k, S1) OK() R(k) OK(S1) p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1 y2 p k dest ... p: ... k: ... y1: ... y2: ... database k: S1
  • 24. our work: map database structure onto SDN 6 network view = configuration = path attributes data item configuration update W(data item, value), OK() traffic traversal R(data item), OK(value) networking entity database structure k(kids➙YouTube) S1 S2 S3 parents controller kidsYouTube operations W(k, S1) OK() R(k) OK(S1) k(kids➙YouTube)p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1 y2 p k dest ... p: ... k: ... y1: ... y2: ... database k: S1
  • 25. our work: map database structure onto SDN 6 network view = configuration = path attributes data item configuration update W(data item, value), OK() traffic traversal R(data item), OK(value) networking entity database structure k(kids➙YouTube) S1 S2 S3 parents controller kidsYouTube operations W(k, S1) OK() R(k) OK(S1) k(kids➙YouTube)p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1 y2 p k dest ... p: ... k: ... y1: ... y2: ... database k: S1k: S1
  • 26. our work: map database structure onto SDN 6 network view = configuration = path attributes data item configuration update W(data item, value), OK() traffic traversal R(data item), OK(value) networking entity database structure k(kids➙YouTube) S1 S2 S3 parents controller kidsYouTube operations W(k, S1) OK() R(k) OK(S1) p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1 y2 p k dest ... p: ... k: ... y1: ... y2: ... database k: S1k: S1
  • 27. our work: map database structure onto SDN 7 network view = per-flow configurations (policies) data item control domain actual network view as switch flow tables network view maintained by controller database site register secure storage network view update traffic forwarding write read network view updates = updates for all affected flows in an app transaction two configuration update overlap configuration update overlaps in-flight traffic (ACID, CAP ...) write/write conflict read/write conflict our contribution: design a database model, a basis for porting DB techniques towards a more tractable and powerful SDN networking entity database structure
  • 28. our work: port DB techniques identify correctness criteria by adapting well-studied DB properties -ACID (atomicity, consistency, isolation, durability) - build solid and reliable SDN by using ACID as reference properties -CAP: only two of consistency, availability, and partition are achievable - understand the limitation, potential, and trade-off of SDN achieve correctness with well-tested DB mechanism -scheduling SDN write/read by linearization - improving performance (concurrency) while retaining the correctness (sequential behavior) 8
  • 29. ongoing work: prototyping scheduling 9 control program scheduler
  • 30. ongoing work: prototyping scheduling 9 control program scheduler scheduler application properties (ACID, CAP) SDN database model linearization algorithm readwrite control app dependency
  • 31. writing app program is easy OS distributed state abstraction: view PL configuration abstraction: function(view) no control over event ordering, timing of changes how to instill customizable, flexible correctness criteria? how to achieve continuous, reliable correctness guarantee? ? forwarding abstraction: any switch that speaks openflow recap: SDN as databases 10 features techniques, abstractions control- plane interfaces single user data-plane serves concurrent apps should (like DB) hide app program from data-plane concurrency, updates permit data-plane concurrency and optimization with correctness guarantee DB forwarding abstraction: view as database
  • 32. grand challenge and great potential 11
  • 33. grand challenge and great potential SDN database design space is unusual -data item = path attributes, implemented by distributed data-structure = switches -very large scale, communication gap between register & storage 11
  • 34. grand challenge and great potential SDN database design space is unusual -data item = path attributes, implemented by distributed data-structure = switches -very large scale, communication gap between register & storage future work -write control apps with DB query language, which offers - data-dependency hiding: hide apps from data-plane - query suggestion/completion: provide hints and automation -ensure data-plane correctness with general DB mechanism - synchronizing R/W,W/W by scheduling / locking 11
  • 36. dest ... p: S1 k: S1 y1: S3 y2: S3 map data to configuration 13 S1 S2 S3 parents C kidsYouTube per flow policy, implemented by a distributed set of switches data item attributes, describe the collective effects of switch actions database p(parents➙Youtube) k(kids➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) switching rules that implement data item k (policy for k) k: fwdYouTube k: S2k: S1 flows: y1 y2 p k
  • 37. data-plane and distributed databases 14 dest p: S1 k: S1 y1: S3 y2: S3 DM S1 S2 S3 parents C kidsYouTube p(parents➙Youtube) k(kids➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1 y2 p k paths: s1s2s3
  • 38. data-plane and distributed databases 14 S1 S2 S3 parents C kidsYouTube p(parents➙Youtube) k(kids➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids)
  • 39. data-plane and distributed databases 14 S1 S2 S3 parents C kidsYouTube S5 S4 k1,2: S5 *: drop p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 k1(kids➙firewall) k2(kids➙Youtube)
  • 40. data-plane and distributed databases 14 S1 S2 S3 parents C kidsYouTube S5 S4 k1,2: S5 *: drop p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 k1(kids➙firewall) k2(kids➙Youtube)
  • 41. data-plane and distributed databases 14 dest k1: S5 k2: drop y1: drop DM B B =S1S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 k1,2: S5 *: drop p(parents➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 k1(kids➙firewall) k2(kids➙Youtube)
  • 42. data-plane and distributed databases 14 dest k1: S5 k2: drop y1: drop DM B B =S1S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 k1,2: S5 *: S2 *: drop p: S4 y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 p(parents➙Youtube) k1(kids➙firewall) k2(kids➙Youtube)
  • 43. data-plane and distributed databases 14 dest k1: S5 k2: drop y1: drop DM B B =S1S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 k1,2: S5 *: S2 *: drop p: S4 y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 p(parents➙Youtube) k1(kids➙firewall) k2(kids➙Youtube)
  • 44. data-plane and distributed databases 14 dest p: S4 y1: S3 DM A A=S1...S2S4S3 dest k1: S5 k2: drop y1: drop DM B B =S1S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 k1,2: S5 *: S2 *: drop p: S4 y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 p(parents➙Youtube) k1(kids➙firewall) k2(kids➙Youtube)
  • 45. data-plane and distributed databases 14 dest p: S4 y1: S3 DM A A=S1...S2S4S3 DM B B =S1S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 k1,2: S5 *: S2 p: S4 dest k1: S5 k2: S1 y1: S3 k2: S1 y1,2: S3 y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 p(parents➙Youtube) k1(kids➙firewall) k2(kids➙Youtube)
  • 46. networking activities transactions operations controller sets up paths for kids and parents T1 WB(k1, S5), ok() WA(p, S4), ok() kids send firewall set-up request to S5 T2 RB(k1), ok(S5) firewall accepts kids’ request and controller sets up paths between kids and YouTube T3 WB(k2, S1), ok() WB(y, S3), ok() kids send request toYouTube T4 RB(k2), ok(S1) YouTube respond with video streaming T5 RB(y), ok(S3) data-plane and distributed databases 14 dest p: S4 y1: S3 DM A A=S1...S2S4S3 DM B B =S1S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 k1,2: S5 *: S2 p: S4 dest k1: S5 k2: S1 y1: S3 k2: S1 y1,2: S3 y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 p(parents➙Youtube) k1(kids➙firewall) k2(kids➙Youtube)
  • 47. networking activities transactions operations controller sets up paths for kids and parents T1 WB(k1, S5), ok() WA(p, S4), ok() kids send firewall set-up request to S5 T2 RB(k1), ok(S5) firewall accepts kids’ request and controller sets up paths between kids and YouTube T3 WB(k2, S1), ok() WB(y, S3), ok() kids send request toYouTube T4 RB(k2), ok(S1) YouTube respond with video streaming T5 RB(y), ok(S3) data-plane and distributed databases 14 dest p: S4 y1: S3 DM A A=S1...S2S4S3 DM B B =S1S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 k1,2: S5 *: S2 p: S4 dest k1: S5 k2: S1 y1: S3 k2: S1 y1,2: S3 y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 p(parents➙Youtube) k1(kids➙firewall) k2(kids➙Youtube)
  • 48. networking activities transactions operations controller sets up paths for kids and parents T1 WB(k1, S5), ok() WA(p, S4), ok() kids send firewall set-up request to S5 T2 RB(k1), ok(S5) firewall accepts kids’ request and controller sets up paths between kids and YouTube T3 WB(k2, S1), ok() WB(y, S3), ok() kids send request toYouTube T4 RB(k2), ok(S1) YouTube respond with video streaming T5 RB(y), ok(S3) data-plane and distributed databases 14 dest p: S4 y1: S3 DM A A=S1...S2S4S3 DM B B =S1S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 k1,2: S5 *: S2 p: S4 dest k1: S5 k2: S1 y1: S3 k2: S1 y1,2: S3 y1 (Youtube➙parents) y2 (Youtube➙kids) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 p(parents➙Youtube) k1(kids➙firewall) k2(kids➙Youtube)
  • 49. 15 dest p: S4 y: S3 DM A A=S1...S2S4S3 DM B B =S1...S2S5S3 S1 S2 S3 parents C kidsYouTube p flowy flow S5 S4 k1 flow (to S5) k2 flow (toYouTube) dest k1: S5 k2: S1 y: S3 ACID atomicity,consistency, isolation,durability
  • 50. durable transaction -a transaction commits after those it depends on commit - T3 depends on T1 - T1:WB(k1, S5), ok(),WA(p, S4), ok(),T3:WB(k2, S1), ok(),WB(y, S3), ok() -durability enables - recovery data-plane failures from controller’s view 15 dest p: S4 y: S3 DM A A=S1...S2S4S3 DM B B =S1...S2S5S3 S1 S2 S3 parents C kidsYouTube p flowy flow S5 S4 k1 flow (to S5) k2 flow (toYouTube) dest k1: S5 k2: S1 y: S3 ACID atomicity,consistency, isolation,durability
  • 51. 16 dest p: S4 y: S3 DM A A=S1...S2S4S3 DM B B =S1...S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 dest k1: S5 k2: S1 y: S3 ACID atomicity,consistency, isolation,durability networking activities transactions operations controller sets up paths for kids and parents T1 WB(k1, S5), ok() WA(p, S4), ok() kids send firewall set-up request to S5 T2 RB(k1), ok(S5) firewall accepts kids’ request and controller sets up paths between kids and YouTube T3 WB(k2, S1), ok() WB(y, S3), ok() kids send request toYouTube T4 RB(k2), ok(S1) YouTube respond with video streaming T5 RB(y), ok(S3) flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 p(parents➙Youtube) k1(kids➙firewall) k2(kids➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids)
  • 52. 16 dest p: S4 y: S3 DM A A=S1...S2S4S3 DM B B =S1...S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 dest k1: S5 k2: S1 y: S3 ACID atomicity,consistency, isolation,durability flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 p(parents➙Youtube) k1(kids➙firewall) k2(kids➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids)
  • 53. atomic transaction -all operations are (effectively) all or none - T3:WB(k2, S1), ok(),WB(y, S3), ok() -atomicity ensures - YouTube could always respond whenever kids request a video 16 dest p: S4 y: S3 DM A A=S1...S2S4S3 DM B B =S1...S2S5S3 S1 S2 S3 parents C kidsYouTube S5 S4 dest k1: S5 k2: S1 y: S3 ACID atomicity,consistency, isolation,durability flows: y1,2 p k1,2 paths: s1s2s5s3 s1s2s4s3 p(parents➙Youtube) k1(kids➙firewall) k2(kids➙Youtube) y1 (Youtube➙parents) y2 (Youtube➙kids)