SlideShare a Scribd company logo
Blazes: coordination analysis
for distributed programs
Peter Alvaro,
Neil Conway, Joseph M. Hellerstein David Maier
UC Berkeley Portland State
Distributed systems are hard
Asynchrony Partial Failure
Asynchrony isn’t that hard
Logical timestamps
Deterministic interleaving
Ameloriation:
Partial failure isn’t that hard
Replication
Replay
Ameloriation:
Asynchrony * partial failure
is hard2
Logical timestamps
Deterministic interleaving
Replication
Replay
Asynchrony * partial failure
is hard2
Replication
Replay
Today:
Consistency criteria for fault-
tolerant distributed systems
Blazes: analysis and enforcement
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
Little boxes: the dataflow model
Generalization of distributed services
Components interact via asynchronous calls
(streams)
Components
Input	
  interfaces	
   Output	
  interface	
  
Streams
Nondeterministic order
Example: a join operator
R
S
T
Example: a key/value store
put
get
response
Example: a pub/sub service
publish
subscribe
deliver
Logical dataflow
“Software architecture”
Data source
client
Service X filter cache
c
a
b
Dataflow is compositional
Data source
client
Service X filter aggregator
Dataflow is compositional
Components are recursively defined
Dataflow exhibits self-similarity
c
q r
Buffer
Buffer
group
/count
Dataflow exhibits self-similarity
DB	
   HDFS	
  
Hadoop	
  
Index	
  
Combine	
  
Sta:c	
  
HTTP	
  
App1	
  
App2	
  
Buy	
  
Content	
  
User	
  
requests	
  
App1	
  	
  
answers	
  
App2	
  
answers	
  
Physical dataflow
Physical dataflow
Data source
client
Service X filter aggregator
c
a
b
Physical dataflow
Data source
Service X filter
aggregator
client
“System architecture”
What could go wrong?
Cross-run nondeterminism
Data source
client
Service X filter aggregator
c
a
b
Run 1
Nondeterministic replays
Cross-run nondeterminism
Data source
client
Service X filter aggregator
c
a
b
Run 1
Nondeterministic replays
Cross-run nondeterminism
Data source
client
Service X filter aggregator
c
a
b
Nondeterministic replays
Run 2
Cross-run nondeterminism
Data source
client
Service X filter aggregator
c
a
b
Nondeterministic replays
Run 2
Cross-instance nondeterminism
Data	
  source	
  
Service	
  X	
  
client	
  
Transient replica disagreement
Cross-instance nondeterminism
Data	
  source	
  
Service	
  X	
  
client	
  
Transient replica disagreement
Divergence
Data	
  source	
  
Service	
  X	
  
client	
  
Permanent replica disagreement
Divergence
Data	
  source	
  
Service	
  X	
  
client	
  
Permanent replica disagreement
Divergence
Data	
  source	
  
Service	
  X	
  
client	
  
Permanent replica disagreement
Divergence
Data	
  source	
  
Service	
  X	
  
client	
  
Permanent replica disagreement
Hazards
Data	
  source	
  
client	
  
Service	
  X	
   filter	
   aggregator	
  
c	
  
a	
  
b	
  
Order à Contents?
Preventing the anomalies
1.  Understand component semantics
(And disallow certain compositions)
Component properties
•  Convergence
– Component replicas receiving the same
messages reach the same state
– Rules out divergence
Insert	
   Read	
  
Convergent
data structure
(e.g., Set CRDT)
Convergence
Insert	
   Read	
  
Commutativity
Associativity
Idempotence
Insert	
   Read	
  
Convergent
data structure
(e.g., Set CRDT)
Convergence
Insert	
   Read	
  
Commutativity
Associativity
Idempotence
Insert	
   Read	
  
Convergent
data structure
(e.g., Set CRDT)
Convergence
Insert	
   Read	
  
Commutativity
Associativity
Idempotence
Insert	
   Read	
  
Convergent
data structure
(e.g., Set CRDT)
Convergence
Insert	
   Read	
  
Commutativity
Associativity
Idempotence
Reordering
Batching
Retry/duplication
Tolerant to
Convergence isn’t compositional
Data	
  source	
  
client	
  
Convergent
(identical input contents è identical state)
Convergence isn’t compositional
Data	
  source	
  
client	
  
Convergent
(identical input contents è identical state)
Convergence isn’t compositional
Data	
  source	
  
client	
  
Convergent
(identical input contents è identical state)
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
Confluence
Confluence
Confluence
Confluence
Confluence
=	
  
Confluence
output	
  set	
  =	
  f(input	
  set)	
  	
  	
  
{	
  	
  	
  	
  	
  	
  	
  	
  }	
  
{	
  	
  	
  	
  	
  	
  	
  	
  }	
  
=	
  
Confluence is compositional
output	
  set	
  =	
  f	
  Ÿ	
  g(input	
  set)	
  	
  	
  
Confluence is compositional
output	
  set	
  =	
  f	
  Ÿ	
  g(input	
  set)	
  	
  	
  
Preventing the anomalies
1.  Understand component semantics
(And disallow certain compositions)
2.  Constrain message delivery orders
1.  Ordering
Ordering – global coordination
Determinis:c	
  
outputs	
  
Order-sensitive
Ordering – global coordination
Data	
  source	
  
client	
  
The first principle of successful scalability
is to batter the consistency mechanisms down to a minimum.
– James Hamilton
Preventing the anomalies
1.  Understand component semantics
(And disallow certain compositions)
2.  Constrain message delivery orders
1.  Ordering
2.  Barriers and sealing
Barriers – local coordination
Determinis:c	
  
outputs	
  
Data source
client
Order-sensitive
Barriers – local coordination
Data source
client
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
Sealing – continuous barriers
Finite partitions of infinite inputs are common
…in distributed systems
–  Sessions
–  Transactions
–  Epochs / views
…and applications
–  Auctions
–  Chats
–  Shopping carts
Blazes:
consistency analysis
+
coordination selection
Blazes:
Mode 1: Grey boxes
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
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
Label propagation –
confluent composition
CW	
   CR	
  
CR	
  
CR	
  
CR	
  
Label propagation –
confluent composition
CW	
   CR	
  
CR	
  
CR	
  
CR	
  
Determinis:c	
  
outputs	
  
Label propagation –
confluent composition
CW	
   CR	
  
CR	
  
CR	
  
CR	
  
Determinis:c	
  
outputs	
  
CW	
  
Label propagation –
unsafe composition
OW	
   CR	
  
CR	
  
CR	
  
CR	
  
Label propagation –
unsafe composition
OW	
   CR	
  
CR	
  
CR	
  
CR	
  
Tainted	
  
outputs	
  
Label propagation –
unsafe composition
OW	
   CR	
  
CR	
  
CR	
  
CR	
  
Tainted	
  
outputs	
  
Interposi:on	
  
point	
  
Label propagation –
sealing
OWkey	
   CR	
  
CR	
  
CR	
  
CR	
  
Seal(key=x)	
  
Seal(key=x)	
  
Label propagation –
sealing
OWkey	
   CR	
  
CR	
  
CR	
  
CR	
  
Determinis:c	
  
outputs	
  
Seal(key=x)	
  
Seal(key=x)	
  
Label propagation –
sealing
OWkey	
   CR	
  
CR	
  
CR	
  
CR	
  
Determinis:c	
  
outputs	
  
OWkey	
  
Seal(key=x)	
  
Seal(key=x)	
  
Blazes:
Mode 1: White boxes
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
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)
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
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
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	
  
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
The Blazes frame of mind:
•  Asynchronous dataflow model
•  Focus on consistency of data in motion
– Component semantics
– Delivery mechanisms and costs
•  Automatic, minimal coordination
Queries?

More Related Content

What's hot

02. chapter 3 lexical analysis
02. chapter 3   lexical analysis02. chapter 3   lexical analysis
02. chapter 3 lexical analysisraosir123
 
Lexical
LexicalLexical
Lexical
baran19901990
 
Lexical analyzer
Lexical analyzerLexical analyzer
Lexical analyzer
kiran acharya
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#
SAMIR BHOGAYTA
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
Soran University
 
C programming Ms. Pranoti Doke
C programming Ms. Pranoti DokeC programming Ms. Pranoti Doke
C programming Ms. Pranoti Doke
Pranoti Doke
 
Computer programming questions
Computer programming questionsComputer programming questions
Computer programming questions
estoredesignerclothi
 
A simple approach of lexical analyzers
A simple approach of lexical analyzersA simple approach of lexical analyzers
A simple approach of lexical analyzers
Archana Gopinath
 
Chapter 2 c#
Chapter 2 c#Chapter 2 c#
Chapter 2 c#
megersaoljira
 
Unsupervised Machine Learning for clone detection
Unsupervised Machine Learning for clone detectionUnsupervised Machine Learning for clone detection
Unsupervised Machine Learning for clone detection
Valerio Maggio
 
Basic C Programming language
Basic C Programming languageBasic C Programming language
Basic C Programming language
Abhishek Soni
 
Clean code _v2003
 Clean code _v2003 Clean code _v2003
Clean code _v2003
R696
 
Lex and Yacc ppt
Lex and Yacc pptLex and Yacc ppt
Lex and Yacc ppt
pssraikar
 
Syntax directed translation
Syntax directed translationSyntax directed translation
Syntax directed translation
Akshaya Arunan
 
Automata Theory
Automata TheoryAutomata Theory
C# for-java-developers
C# for-java-developersC# for-java-developers
C# for-java-developersDhaval Dalal
 
C# in depth
C# in depthC# in depth
C# in depth
Arnon Axelrod
 
Syntax analysis
Syntax analysisSyntax analysis
Syntax analysis
Akshaya Arunan
 
C101 – Intro to Programming with C
C101 – Intro to Programming with CC101 – Intro to Programming with C
C101 – Intro to Programming with C
gpsoft_sk
 

What's hot (20)

02. chapter 3 lexical analysis
02. chapter 3   lexical analysis02. chapter 3   lexical analysis
02. chapter 3 lexical analysis
 
Lexical
LexicalLexical
Lexical
 
Lexical analyzer
Lexical analyzerLexical analyzer
Lexical analyzer
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#
 
Lecture 1
Lecture 1Lecture 1
Lecture 1
 
C programming Ms. Pranoti Doke
C programming Ms. Pranoti DokeC programming Ms. Pranoti Doke
C programming Ms. Pranoti Doke
 
Computer programming questions
Computer programming questionsComputer programming questions
Computer programming questions
 
Basics1
Basics1Basics1
Basics1
 
A simple approach of lexical analyzers
A simple approach of lexical analyzersA simple approach of lexical analyzers
A simple approach of lexical analyzers
 
Chapter 2 c#
Chapter 2 c#Chapter 2 c#
Chapter 2 c#
 
Unsupervised Machine Learning for clone detection
Unsupervised Machine Learning for clone detectionUnsupervised Machine Learning for clone detection
Unsupervised Machine Learning for clone detection
 
Basic C Programming language
Basic C Programming languageBasic C Programming language
Basic C Programming language
 
Clean code _v2003
 Clean code _v2003 Clean code _v2003
Clean code _v2003
 
Lex and Yacc ppt
Lex and Yacc pptLex and Yacc ppt
Lex and Yacc ppt
 
Syntax directed translation
Syntax directed translationSyntax directed translation
Syntax directed translation
 
Automata Theory
Automata TheoryAutomata Theory
Automata Theory
 
C# for-java-developers
C# for-java-developersC# for-java-developers
C# for-java-developers
 
C# in depth
C# in depthC# in depth
C# in depth
 
Syntax analysis
Syntax analysisSyntax analysis
Syntax analysis
 
C101 – Intro to Programming with C
C101 – Intro to Programming with CC101 – Intro to Programming with C
C101 – Intro to Programming with C
 

Viewers also liked

Chloe and the Realtime Web
Chloe and the Realtime WebChloe and the Realtime Web
Chloe and the Realtime Web
Trotter Cashion
 
Hyperdex - A closer look
Hyperdex - A closer lookHyperdex - A closer look
Hyperdex - A closer lookDECK36
 
Brunch With Coffee
Brunch With CoffeeBrunch With Coffee
Brunch With Coffee
Sébastien Gruhier
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
dotCloud
 
Riak Search - Erlang Factory London 2010
Riak Search - Erlang Factory London 2010Riak Search - Erlang Factory London 2010
Riak Search - Erlang Factory London 2010
Rusty Klophaus
 
ElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseElasticSearch - index server used as a document database
ElasticSearch - index server used as a document database
Robert Lujo
 
(Functional) reactive programming (@pavlobaron)
(Functional) reactive programming (@pavlobaron)(Functional) reactive programming (@pavlobaron)
(Functional) reactive programming (@pavlobaron)
Pavlo Baron
 
Complex Legacy System Archiving/Data Retention with MongoDB and Xquery
Complex Legacy System Archiving/Data Retention with MongoDB and XqueryComplex Legacy System Archiving/Data Retention with MongoDB and Xquery
Complex Legacy System Archiving/Data Retention with MongoDB and Xquery
DATAVERSITY
 
Spring Cleaning for Your Smartphone
Spring Cleaning for Your SmartphoneSpring Cleaning for Your Smartphone
Spring Cleaning for Your Smartphone
Lookout
 
NkSIP: The Erlang SIP application server
NkSIP: The Erlang SIP application serverNkSIP: The Erlang SIP application server
NkSIP: The Erlang SIP application server
Carlos González Florido
 
Web-Oriented Architecture (WOA)
Web-Oriented Architecture (WOA)Web-Oriented Architecture (WOA)
Web-Oriented Architecture (WOA)
thetechnicalweb
 
Scalable XQuery Processing with Zorba on top of MongoDB
Scalable XQuery Processing with Zorba on top of MongoDBScalable XQuery Processing with Zorba on top of MongoDB
Scalable XQuery Processing with Zorba on top of MongoDB
William Candillon
 
Interoperability With RabbitMq
Interoperability With RabbitMqInteroperability With RabbitMq
Interoperability With RabbitMq
Alvaro Videla
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsSpike Brehm
 
Erlang plus BDB: Disrupting the Conventional Web Wisdom
Erlang plus BDB: Disrupting the Conventional Web WisdomErlang plus BDB: Disrupting the Conventional Web Wisdom
Erlang plus BDB: Disrupting the Conventional Web Wisdomguest3933de
 
Shrinking the Haystack" using Solr and OpenNLP
Shrinking the Haystack" using Solr and OpenNLPShrinking the Haystack" using Solr and OpenNLP
Shrinking the Haystack" using Solr and OpenNLP
lucenerevolution
 
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
C4Media
 
AST - the only true tool for building JavaScript
AST - the only true tool for building JavaScriptAST - the only true tool for building JavaScript
AST - the only true tool for building JavaScriptIngvar Stepanyan
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughput
Paolo Negri
 
Pregel: A System for Large-Scale Graph Processing
Pregel: A System for Large-Scale Graph ProcessingPregel: A System for Large-Scale Graph Processing
Pregel: A System for Large-Scale Graph Processing
Chris Bunch
 

Viewers also liked (20)

Chloe and the Realtime Web
Chloe and the Realtime WebChloe and the Realtime Web
Chloe and the Realtime Web
 
Hyperdex - A closer look
Hyperdex - A closer lookHyperdex - A closer look
Hyperdex - A closer look
 
Brunch With Coffee
Brunch With CoffeeBrunch With Coffee
Brunch With Coffee
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
 
Riak Search - Erlang Factory London 2010
Riak Search - Erlang Factory London 2010Riak Search - Erlang Factory London 2010
Riak Search - Erlang Factory London 2010
 
ElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseElasticSearch - index server used as a document database
ElasticSearch - index server used as a document database
 
(Functional) reactive programming (@pavlobaron)
(Functional) reactive programming (@pavlobaron)(Functional) reactive programming (@pavlobaron)
(Functional) reactive programming (@pavlobaron)
 
Complex Legacy System Archiving/Data Retention with MongoDB and Xquery
Complex Legacy System Archiving/Data Retention with MongoDB and XqueryComplex Legacy System Archiving/Data Retention with MongoDB and Xquery
Complex Legacy System Archiving/Data Retention with MongoDB and Xquery
 
Spring Cleaning for Your Smartphone
Spring Cleaning for Your SmartphoneSpring Cleaning for Your Smartphone
Spring Cleaning for Your Smartphone
 
NkSIP: The Erlang SIP application server
NkSIP: The Erlang SIP application serverNkSIP: The Erlang SIP application server
NkSIP: The Erlang SIP application server
 
Web-Oriented Architecture (WOA)
Web-Oriented Architecture (WOA)Web-Oriented Architecture (WOA)
Web-Oriented Architecture (WOA)
 
Scalable XQuery Processing with Zorba on top of MongoDB
Scalable XQuery Processing with Zorba on top of MongoDBScalable XQuery Processing with Zorba on top of MongoDB
Scalable XQuery Processing with Zorba on top of MongoDB
 
Interoperability With RabbitMq
Interoperability With RabbitMqInteroperability With RabbitMq
Interoperability With RabbitMq
 
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript AppsIn Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
In Pursuit of the Holy Grail: Building Isomorphic JavaScript Apps
 
Erlang plus BDB: Disrupting the Conventional Web Wisdom
Erlang plus BDB: Disrupting the Conventional Web WisdomErlang plus BDB: Disrupting the Conventional Web Wisdom
Erlang plus BDB: Disrupting the Conventional Web Wisdom
 
Shrinking the Haystack" using Solr and OpenNLP
Shrinking the Haystack" using Solr and OpenNLPShrinking the Haystack" using Solr and OpenNLP
Shrinking the Haystack" using Solr and OpenNLP
 
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
Scaling Gilt: from Monolithic Ruby Application to Distributed Scala Micro-Ser...
 
AST - the only true tool for building JavaScript
AST - the only true tool for building JavaScriptAST - the only true tool for building JavaScript
AST - the only true tool for building JavaScript
 
Erlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughputErlang as a cloud citizen, a fractal approach to throughput
Erlang as a cloud citizen, a fractal approach to throughput
 
Pregel: A System for Large-Scale Graph Processing
Pregel: A System for Large-Scale Graph ProcessingPregel: A System for Large-Scale Graph Processing
Pregel: A System for Large-Scale Graph Processing
 

Similar to Blazes: coordination analysis for distributed programs

Coding style for good synthesis
Coding style for good synthesisCoding style for good synthesis
Coding style for good synthesis
Vinchipsytm Vlsitraining
 
Self healing data
Self healing dataSelf healing data
Self healing data
Uwe Friedrichsen
 
ParaSail
ParaSail  ParaSail
ParaSail
AdaCore
 
HCI 3e - Ch 16: Dialogue notations and design
HCI 3e - Ch 16:  Dialogue notations and designHCI 3e - Ch 16:  Dialogue notations and design
HCI 3e - Ch 16: Dialogue notations and design
Alan Dix
 
Distributed Coordination
Distributed CoordinationDistributed Coordination
Distributed Coordination
Luis Galárraga
 
Linq To The Enterprise
Linq To The EnterpriseLinq To The Enterprise
Linq To The EnterpriseDaniel Egan
 
NIPS2007: structured prediction
NIPS2007: structured predictionNIPS2007: structured prediction
NIPS2007: structured predictionzukun
 
Design Patterns for Distributed Non-Relational Databases
Design Patterns for Distributed Non-Relational DatabasesDesign Patterns for Distributed Non-Relational Databases
Design Patterns for Distributed Non-Relational Databases
guestdfd1ec
 
Java q ref 2018
Java q ref 2018Java q ref 2018
Java q ref 2018
Christopher Akinlade
 
bluespec talk
bluespec talkbluespec talk
bluespec talk
Suman Karumuri
 
Big Data & NoSQL - EFS'11 (Pavlo Baron)
Big Data & NoSQL - EFS'11 (Pavlo Baron)Big Data & NoSQL - EFS'11 (Pavlo Baron)
Big Data & NoSQL - EFS'11 (Pavlo Baron)
Pavlo Baron
 
Design Patterns For Distributed NO-reational databases
Design Patterns For Distributed NO-reational databasesDesign Patterns For Distributed NO-reational databases
Design Patterns For Distributed NO-reational databaseslovingprince58
 
Buiilding reactive distributed systems with Akka
Buiilding reactive distributed systems with AkkaBuiilding reactive distributed systems with Akka
Buiilding reactive distributed systems with Akka
Johan Andrén
 
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
AboutYouGmbH
 
Machine Learning with Apache Mahout
Machine Learning with Apache MahoutMachine Learning with Apache Mahout
Machine Learning with Apache MahoutDaniel Glauser
 
Introduction to Cassandra: Replication and Consistency
Introduction to Cassandra: Replication and ConsistencyIntroduction to Cassandra: Replication and Consistency
Introduction to Cassandra: Replication and Consistency
Benjamin Black
 
BioWeka
BioWekaBioWeka
BioWeka
Martin Szugat
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
Hawkman Academy
 
Java 8 - A step closer to Parallelism
Java 8 - A step closer to ParallelismJava 8 - A step closer to Parallelism
Java 8 - A step closer to Parallelism
jbugkorea
 

Similar to Blazes: coordination analysis for distributed programs (20)

Coding style for good synthesis
Coding style for good synthesisCoding style for good synthesis
Coding style for good synthesis
 
Self healing data
Self healing dataSelf healing data
Self healing data
 
ParaSail
ParaSail  ParaSail
ParaSail
 
HCI 3e - Ch 16: Dialogue notations and design
HCI 3e - Ch 16:  Dialogue notations and designHCI 3e - Ch 16:  Dialogue notations and design
HCI 3e - Ch 16: Dialogue notations and design
 
Java basics
Java basicsJava basics
Java basics
 
Distributed Coordination
Distributed CoordinationDistributed Coordination
Distributed Coordination
 
Linq To The Enterprise
Linq To The EnterpriseLinq To The Enterprise
Linq To The Enterprise
 
NIPS2007: structured prediction
NIPS2007: structured predictionNIPS2007: structured prediction
NIPS2007: structured prediction
 
Design Patterns for Distributed Non-Relational Databases
Design Patterns for Distributed Non-Relational DatabasesDesign Patterns for Distributed Non-Relational Databases
Design Patterns for Distributed Non-Relational Databases
 
Java q ref 2018
Java q ref 2018Java q ref 2018
Java q ref 2018
 
bluespec talk
bluespec talkbluespec talk
bluespec talk
 
Big Data & NoSQL - EFS'11 (Pavlo Baron)
Big Data & NoSQL - EFS'11 (Pavlo Baron)Big Data & NoSQL - EFS'11 (Pavlo Baron)
Big Data & NoSQL - EFS'11 (Pavlo Baron)
 
Design Patterns For Distributed NO-reational databases
Design Patterns For Distributed NO-reational databasesDesign Patterns For Distributed NO-reational databases
Design Patterns For Distributed NO-reational databases
 
Buiilding reactive distributed systems with Akka
Buiilding reactive distributed systems with AkkaBuiilding reactive distributed systems with Akka
Buiilding reactive distributed systems with Akka
 
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
 
Machine Learning with Apache Mahout
Machine Learning with Apache MahoutMachine Learning with Apache Mahout
Machine Learning with Apache Mahout
 
Introduction to Cassandra: Replication and Consistency
Introduction to Cassandra: Replication and ConsistencyIntroduction to Cassandra: Replication and Consistency
Introduction to Cassandra: Replication and Consistency
 
BioWeka
BioWekaBioWeka
BioWeka
 
C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#C# 101: Intro to Programming with C#
C# 101: Intro to Programming with C#
 
Java 8 - A step closer to Parallelism
Java 8 - A step closer to ParallelismJava 8 - A step closer to Parallelism
Java 8 - A step closer to Parallelism
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 

Blazes: coordination analysis for distributed programs