blazes: coordination analysis for distributed programs
DESCRIPTION
Slides from ICDE'14TRANSCRIPT
![Page 1: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/1.jpg)
Blazes: coordination analysis for distributed program
Peter Alvaro, Neil Conway, Joseph M. Hellerstein David Maier UC Berkeley Portland State
![Page 2: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/2.jpg)
Distributed systems are hard
Asynchrony Partial Failure
![Page 3: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/3.jpg)
Asynchrony isn’t that hard
Logical timestamps Deterministic interleaving
Ameloriation:
![Page 4: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/4.jpg)
Partial failure isn’t that hard
Replication Replay
Ameloriation:
![Page 5: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/5.jpg)
Asynchrony * partial failure is hard2
Logical timestamps Deterministic interleaving
Replication Replay
![Page 6: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/6.jpg)
Asynchrony * partial failure is hard2
Replication Replay
Today: Consistency criteria for fault-tolerant distributed systems Blazes: analysis and enforcement
![Page 7: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/7.jpg)
This talk is all setup Frame of mind: 1. Dataflow: a model of distributed computation 2. Anomalies: what can go wrong? 3. Remediation strategies
1. Component properties 2. Delivery mechanisms
Framework: Blazes – coordination analysis and synthesis
![Page 8: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/8.jpg)
Little boxes: the dataflow model
Generalization of distributed services Components interact via asynchronous calls (streams)
![Page 9: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/9.jpg)
Components
Input interfaces Output interface
![Page 10: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/10.jpg)
Streams
Nondeterministic order
![Page 11: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/11.jpg)
Example: a join operator
R
S T
![Page 12: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/12.jpg)
Example: a key/value store
put
get response
![Page 13: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/13.jpg)
Example: a pub/sub service
publish
subscribe deliver
![Page 14: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/14.jpg)
Logical dataflow
“Software architecture”
Data source
client
Service X filter cache
c
a
b
![Page 15: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/15.jpg)
Dataflow is compositional
Data source
client
Service X filter aggregator
![Page 16: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/16.jpg)
Dataflow is compositional
Components are recursively defined
![Page 17: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/17.jpg)
Dataflow exhibits self-similarity
c
q r
Buffer
Buffer
group/count
![Page 18: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/18.jpg)
Dataflow exhibits self-similarity
DB HDFS
Hadoop
Index Combine
Sta:c HTTP App1
App2
Buy
Content
User requests
App1 answers
App2 answers
![Page 19: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/19.jpg)
Physical dataflow
![Page 20: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/20.jpg)
Physical dataflow
Data source
client
Service X filter aggregator
c
a
b
![Page 21: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/21.jpg)
Physical dataflow
Data source
Service X filter
aggregator
client “System architecture”
![Page 22: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/22.jpg)
What could go wrong?
![Page 23: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/23.jpg)
Cross-run nondeterminism
Data source
client
Service X filter aggregator
c
a
b
Run 1
Nondeterministic replays
![Page 24: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/24.jpg)
Cross-run nondeterminism
Data source
client
Service X filter aggregator
c
a
b
Run 1
Nondeterministic replays
![Page 25: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/25.jpg)
Cross-run nondeterminism
Data source
client
Service X filter aggregator
c
a
b
Nondeterministic replays
Run 2
![Page 26: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/26.jpg)
Cross-run nondeterminism
Data source
client
Service X filter aggregator
c
a
b
Nondeterministic replays
Run 2
![Page 27: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/27.jpg)
Cross-instance nondeterminism
Data source
Service X
client
Transient replica disagreement
![Page 28: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/28.jpg)
Cross-instance nondeterminism
Data source
Service X
client
Transient replica disagreement
![Page 29: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/29.jpg)
Divergence
Data source
Service X
client
Permanent replica disagreement
![Page 30: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/30.jpg)
Divergence
Data source
Service X
client
Permanent replica disagreement
![Page 31: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/31.jpg)
Divergence
Data source
Service X
client
Permanent replica disagreement
![Page 32: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/32.jpg)
Divergence
Data source
Service X
client
Permanent replica disagreement
![Page 33: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/33.jpg)
Hazards
Data source
client
Service X filter aggregator c
a
b
Order à Contents?
![Page 34: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/34.jpg)
Preventing the anomalies
1. Understand component semantics (And disallow certain compositions)
![Page 35: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/35.jpg)
Component properties
• Convergence – Component replicas receiving the same
messages reach the same state – Rules out divergence
![Page 36: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/36.jpg)
Insert Read
Convergent data structure (e.g., Set CRDT)
Convergence
Insert Read
Commutativity Associativity Idempotence
![Page 37: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/37.jpg)
Insert Read
Convergent data structure (e.g., Set CRDT)
Convergence
Insert Read
Commutativity Associativity Idempotence
![Page 38: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/38.jpg)
Insert Read
Convergent data structure (e.g., Set CRDT)
Convergence
Insert Read
Commutativity Associativity Idempotence
![Page 39: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/39.jpg)
Insert Read
Convergent data structure (e.g., Set CRDT)
Convergence
Insert Read
Commutativity Associativity Idempotence
Reordering Batching Retry/duplication
Tolerant to
![Page 40: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/40.jpg)
Convergence isn’t compositional
Data source
client
Convergent (identical input contents è identical state)
![Page 41: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/41.jpg)
Convergence isn’t compositional
Data source
client
Convergent (identical input contents è identical state)
![Page 42: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/42.jpg)
Convergence isn’t compositional
Data source
client
Convergent (identical input contents è identical state)
![Page 43: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/43.jpg)
Component properties
• Convergence – Component replicas receiving the same
messages reach the same state – Rules out divergence
• Confluence – Output streams have deterministic contents – Rules out all stream anomalies
Confluent è convergent
![Page 44: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/44.jpg)
Confluence
![Page 45: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/45.jpg)
Confluence
![Page 46: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/46.jpg)
Confluence
![Page 47: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/47.jpg)
Confluence
![Page 48: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/48.jpg)
Confluence
=
![Page 49: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/49.jpg)
Confluence
output set = f(input set)
{ }
{ } =
![Page 50: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/50.jpg)
Confluence is compositional
output set = f � g(input set)
![Page 51: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/51.jpg)
Confluence is compositional
output set = f � g(input set)
![Page 52: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/52.jpg)
Preventing the anomalies
1. Understand component semantics (And disallow certain compositions)
2. Constrain message delivery orders 1. Ordering
![Page 53: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/53.jpg)
Ordering – global coordination
Determinis:c outputs
Order-sensitive
![Page 54: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/54.jpg)
Ordering – global coordination
Data source
client
The first principle of successful scalability is to batter the consistency mechanisms down to a minimum. – James Hamilton
![Page 55: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/55.jpg)
Preventing the anomalies
1. Understand component semantics (And disallow certain compositions)
2. Constrain message delivery orders 1. Ordering 2. Barriers and sealing
![Page 56: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/56.jpg)
Barriers – local coordination
Determinis:c outputs
Data source
client Order-sensitive
![Page 57: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/57.jpg)
Barriers – local coordination
Data source
client
![Page 58: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/58.jpg)
Sealing – continuous barriers
Do partitions of (infinite) input streams “end”? Can components produce deterministic results given “complete” input partitions?
Sealing: partition barriers for infinite streams
![Page 59: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/59.jpg)
Sealing – continuous barriers
Finite partitions of infinite inputs are common …in distributed systems
– Sessions – Transactions – Epochs / views
…and applications – Auctions – Chats – Shopping carts
![Page 60: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/60.jpg)
Blazes:
consistency analysis
+
coordination selection
![Page 61: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/61.jpg)
Blazes:
Mode 1: Grey boxes
![Page 62: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/62.jpg)
Grey boxes
Example: pub/sub x = publish y = subscribe z = deliver
x
y z
Determinis:c but unordered
Severity Label Confluent Stateless
1 CR X X
2 CW X
3 ORgate X
4 OWgate
x->z : CW y->z : CWT
![Page 63: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/63.jpg)
Grey boxes
Example: key/value store
x = put; y = get; z = response
x
y z
Determinis:c but unordered
Severity Label Confluent Stateless
1 CR X X
2 CW X
3 ORgate X
4 OWgate
x->z : OWkey y->z : ORT
![Page 64: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/64.jpg)
Label propagation – confluent composition
CW CR
CR
CR
CR
![Page 65: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/65.jpg)
Label propagation – confluent composition
CW CR
CR
CR
CR Determinis:c outputs
![Page 66: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/66.jpg)
Label propagation – confluent composition
CW CR
CR
CR
CR Determinis:c outputs
CW
![Page 67: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/67.jpg)
Label propagation – unsafe composition
OW CR
CR
CR
CR
![Page 68: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/68.jpg)
Label propagation – unsafe composition
OW CR
CR
CR
CR Tainted outputs
![Page 69: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/69.jpg)
Label propagation – unsafe composition
OW CR
CR
CR
CR Tainted outputs
Interposi:on point
![Page 70: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/70.jpg)
Label propagation – sealing
OWkey CR
CR
CR
CR
Seal(key=x) Seal(key=x)
![Page 71: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/71.jpg)
Label propagation – sealing
OWkey CR
CR
CR
CR Determinis:c outputs
Seal(key=x) Seal(key=x)
![Page 72: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/72.jpg)
Label propagation – sealing
OWkey CR
CR
CR
CR Determinis:c outputs
OWkey Seal(key=x)
Seal(key=x)
![Page 73: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/73.jpg)
Blazes:
Mode 1: White boxes
![Page 74: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/74.jpg)
white boxes module KVS! state do! interface input, :put, [:key, :val]! interface input, :get, [:ident, :key]! interface output, :response, ! ! ! ! ! ! !!
! ! ! ![:response_id, :key, :val]! table :log, [:key, :val]! end! bloom do! log <+ put! log <- (put * log).rights(:key => :key)! response <= (log * get).pairs(:key=>:key) do |s,l| !
! ![l.ident, s.key, s.val]!! end!
end!end
![Page 75: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/75.jpg)
white boxes module KVS! state do! interface input, :put, [:key, :val]! interface input, :get, [:ident, :key]! interface output, :response, ! ! ! ! ! ! !!
! ! ! ![:response_id, :key, :val]! table :log, [:key, :val]! end! bloom do! log <+ put! log <- (put * log).rights(:key => :key)! response <= (log * get).pairs(:key=>:key) do |s,l| !
! ![l.ident, s.key, s.val]!! end!
end!end Negation (à order sensitive)
![Page 76: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/76.jpg)
white boxes module KVS! state do! interface input, :put, [:key, :val]! interface input, :get, [:ident, :key]! interface output, :response, ! ! ! ! ! ! !!
! ! ! ![:response_id, :key, :val]! table :log, [:key, :val]! end! bloom do! log <+ put! log <- (put * log).rights(:key => :key)! response <= (log * get).pairs(:key=>:key) do |s,l| !
! ![l.ident, s.key, s.val]!! end!
end!end Negation (à order sensitive)
Partitioned by :key
![Page 77: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/77.jpg)
white boxes module KVS! state do! interface input, :put, [:key, :val]! interface input, :get, [:ident, :key]! interface output, :response, ! ! ! ! ! ! !!
! ! ! ![:response_id, :key, :val]! table :log, [:key, :val]! end! bloom do! log <+ put! log <- (put * log).rights(:key => :key)! response <= (log * get).pairs(:key=>:key) do |s,l| !
! ![l.ident, s.key, s.val]!! end!
end!end
put àresponse: OWkey get à response: ORkey
Negation (à order sensitive)
Partitioned by :key
![Page 78: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/78.jpg)
white boxes module PubSub! state do! interface input, :publish, [:key, :val]! interface input, :subscribe, [:ident, :key]! interface output, :response, ! ! ! ! ! ! !!
! ! ! ![:response_id, :key, :val]! table :log, [:key, :val]! table :sub_log, [:ident, :key]! end! bloom do! log <= publish!
!sub_log <= subscribe!!response <= (log * sub_log).pairs(:key=>:key) do |s,l| !! ![l.ident, s.key, s.val]!! end!
end!end
publish à response: CW subscribe à response: CR
![Page 79: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/79.jpg)
white boxes module PubSub! state do! interface input, :publish, [:key, :val]! interface input, :subscribe, [:ident, :key]! interface output, :response, ! ! ! ! ! ! !!
! ! ! ![:response_id, :key, :val]! table :log, [:key, :val]! table :sub_log, [:ident, :key]! end! bloom do! log <= publish!
!sub_log <= subscribe!!response <= (log * sub_log).pairs(:key=>:key) do |s,l| !! ![l.ident, s.key, s.val]!! end!
end!end
![Page 80: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/80.jpg)
The Blazes frame of mind:
• Asynchronous dataflow model • Focus on consistency of data in motion – Component semantics – Delivery mechanisms and costs
• Automatic, minimal coordination
![Page 81: Blazes: coordination analysis for distributed programs](https://reader034.vdocument.in/reader034/viewer/2022051610/5482d1745806b501058b472d/html5/thumbnails/81.jpg)
Queries?