SlideShare a Scribd company logo
1 of 41
Download to read offline
consistency without borders
Peter Alvaro, Peter Bailis,
Neil Conway, Joseph M. Hellerstein
UC Berkeley
The transaction concept
	
  DEBIT_CREDIT:	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  BEGIN_TRANSACTION;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  GET	
  MESSAGE;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  EXTRACT	
  ACCOUT_NUMBER,	
  DELTA,	
  TELLER,	
  BRANCH	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  MESSAGE;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  FIND	
  ACCOUNT(ACCOUT_NUMBER)	
  IN	
  DATA	
  BASE;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  IF	
  NOT_FOUND	
  	
  |	
  ACCOUNT_BALANCE	
  +	
  DELTA	
  <	
  0	
  THEN	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  PUT	
  NEGATIVE	
  RESPONSE;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ELSE	
  DO;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ACCOUNT_BALANCE	
  =	
  ACCOUNT_BALANCE	
  +	
  DELTA;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  POST	
  HISTORY	
  RECORD	
  ON	
  ACCOUNT	
  (DELTA);	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  CASH_DRAWER(TELLER)	
  =	
  CASH_DRAWER(TELLER)	
  +	
  DELTA;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  BRANCH_BALANCE(BRANCH)	
  =	
  BRANCH_BALANCE(BRANCH)	
  +	
  DELTA;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  PUT	
  MESSAGE	
  ('NEW	
  BALANCE	
  ='	
  ACCOUNT_BALANCE);	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  END;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  COMMIT;	
  	
  
The transaction concept
	
  DEBIT_CREDIT:	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  BEGIN_TRANSACTION;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  GET	
  MESSAGE;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  EXTRACT	
  ACCOUT_NUMBER,	
  DELTA,	
  TELLER,	
  BRANCH	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  FROM	
  MESSAGE;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  FIND	
  ACCOUNT(ACCOUT_NUMBER)	
  IN	
  DATA	
  BASE;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  IF	
  NOT_FOUND	
  	
  |	
  ACCOUNT_BALANCE	
  +	
  DELTA	
  <	
  0	
  THEN	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  PUT	
  NEGATIVE	
  RESPONSE;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ELSE	
  DO;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ACCOUNT_BALANCE	
  =	
  ACCOUNT_BALANCE	
  +	
  DELTA;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  POST	
  HISTORY	
  RECORD	
  ON	
  ACCOUNT	
  (DELTA);	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  CASH_DRAWER(TELLER)	
  =	
  CASH_DRAWER(TELLER)	
  +	
  DELTA;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  BRANCH_BALANCE(BRANCH)	
  =	
  BRANCH_BALANCE(BRANCH)	
  +	
  DELTA;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  PUT	
  MESSAGE	
  ('NEW	
  BALANCE	
  ='	
  ACCOUNT_BALANCE);	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  END;	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  COMMIT;	
  	
  
An application-level contract
Write	
   Read	
  
Application
Opaque
store
Transactions
Pervasive distribution
Pervasive distribution
partial failure
Pervasive distribution
partial failure
asynchrony
Pervasive distribution
CAP
partial failure
asynchrony
Research on consistency
Write	
   Read	
  
Application
Opaque
store
Consistency
models
R1(X=1)	
  R2(X=1)	
  W1(X=2)	
  W2(X=0)	
  
W1(X=1)	
  W1(Y=2)	
  R2(Y=2)	
  R2(X=0)	
  
Research on consistency
Write	
   Read	
  
Application
Opaque
store
Consistency
models
Assert:
balance > 0
causal?
PRAM?
delta?
fork/join?
red/blue?
release?
SC?
(translation)
R1(X=1)	
  R2(X=1)	
  W1(X=2)	
  W2(X=0)	
  
W1(X=1)	
  W1(Y=2)	
  R2(Y=2)	
  R2(X=0)	
  
Meanwhile, in industry…
Application
Opaque
store
Custom solutions
Write	
   Read	
  
Meanwhile, in industry…
Application
Opaque
store
Custom solutions
Assert:
balance > 0
(prayer)
Write	
   Read	
  
Distributed consistency:
staying relevant
•  Is this an important problem?
•  Is academia disconnected from reality?
•  OK, what now?
Goal: help programmers write correct applications.
Today: some promising approaches
Case study: a graph
T1
T2
T4
T10
T3
T6
T5
T9
T7
T8
T11
T12
T13
T14
Partitioned, for scalability
T1
T2
T4
T10
T3
T6
T5
T9
T7
T8
T11
T12
T13
T14
Replicated, for availability
T1
T2
T4
T10
T3
T6
T5
T9
T7
T8
T11
T12
T13
T14
T1
T2
T4
T10
T3
T6
T5
T9
T7
T8
T11
T12
T13
T14
Problem: deadlock detection
Task: Identify strongly-connected
components
Waits-for graph
T1
T2
T4
T10
T3
T6
T5
T9
T7
T8
T11
T12
T13
T14
Problem: garbage collection
Task: Identify nodes not reachable
from Root. Root	
  
Refers-to graph
T1
T2
T4
T10
T3
T6
T5
T9
T7
T8
T11
T12
T13
T14
T1
T2
T4
T10
T3
T6
T5
T9
T7
T8
T11
T12
T13
T14
Correctness
Deadlock detection
•  Safety: No false positives-
•  Liveness: Identify all deadlocks
Garbage collection
•  Safety: Never GC live memory!
•  Liveness: GC all orphaned memory
T1
T2
T4
T10
T3
T6
T5
T9
T7
T8
T11
T12
T13
T14
ParLLon	
  
Root	
  
Consistency at the extremes
Storage
Object
Flow
Language
Application
Linearizable
key-value store?
	
  
	
  Custom solutions?
Consistency at the extremes
Storage
Object
Flow
Language
Application
Linearizable
key-value store?
	
  
	
  Custom solutions?
Efficient Correct
Consistency across the stack
Object-level consistency
Capture semantics of data structures that
•  allow greater concurrency
•  maintain guarantees (e.g. convergence)
Storage
Object
Flow
Language
Application
Insert	
   Read	
  
Convergent
data structure
(e.g., Set CRDT)
Object-level consistency
Insert	
   Read	
  
Commutativity
Associativity
Idempotence
Reordering
Batching
Retry/duplication
Tolerant to
Application
Convergent
data structures
Object-level consistency
?	
   ?	
  
GC Assert:
No live nodes are reclaimed
Assert:
Graph replicas
converge
Flow-level consistency	
  
Storage
Object
Flow
Language
Application
Flow-level consistency	
  
Capture semantics of data in motion
•  Asynchronous dataflow model
•  component properties à system-wide guarantees
Graph
store
Transaction
manager
Transitive
closure
Deadlock
detector
Confluent ConfluentConfluent
Flow-level consistency
Order-insensitivity (confluence)
output	
  set	
  =	
  f(input	
  set)	
  	
  	
  
{	
  	
  	
  	
  	
  	
  	
  	
  }	
  
{	
  	
  	
  	
  	
  	
  	
  	
  }	
  
=	
  
Flow-level consistency
Confluence is compositional
output	
  set	
  =	
  f	
  Ÿ	
  g(input	
  set)	
  	
  	
  
Flow-level consistency
Confluence is compositional
output	
  set	
  =	
  f	
  Ÿ	
  g(input	
  set)	
  	
  	
  
Graph
store
Memory
allocator
Transitive
closure
Garbage
collector
Confluent Not
Confluent
Confluent
Graph
store
Transaction
manager
Transitive
closure
Deadlock
detector
Confluent ConfluentConfluent
Graph queries as dataflow
Graph
store
Memory
allocator
Transitive
closure
Garbage
collector
Confluent Not
Confluent
Confluent
Graph
store
Transaction
manager
Transitive
closure
Deadlock
detector
Confluent ConfluentConfluent
Graph queries as dataflow
Confluent
Coordinate	
  here	
  
Language-level consistency	
  
DSLs for distributed programming?
•  Capture consistency concerns in the
type system
	
  
	
  
Storage
Object
Flow
Language
Application
Language-level consistency	
  
CALM Theorem:
Monotonic à confluent
Conservative, syntactic test for confluence
	
  
Language-level consistency
Deadlock detector
Garbage collector
Language-level consistency
Deadlock detector
Garbage collector
nonmonotonic	
  
Storage
Object
Flow
Language
Application
correct
reusable
efficient
intuitive
Where we’ve been;
where we’re headed
Storage
Object
Flow
Language
Application
correct
reusable
efficient
intuitive
Where we’ve been;
where we’re headed
Storage
Object
Flow
Language
Application
correct
reusable
efficient
intuitive
Where we’ve been;
where we’re headed
Remember
•  Consistency is an application-level property
•  Correctness and performance are compatible
•  Meet programmers on their home turf
•  Build bridges!
Queries?

More Related Content

Similar to consistency without borders

Improving application design with a rich domain model (springone 2007)
Improving application design with a rich domain model (springone 2007)Improving application design with a rich domain model (springone 2007)
Improving application design with a rich domain model (springone 2007)Chris Richardson
 
How to Send a Receipt, Topics in Concurrency and Distributed Systems
How to Send a Receipt, Topics in Concurrency and Distributed SystemsHow to Send a Receipt, Topics in Concurrency and Distributed Systems
How to Send a Receipt, Topics in Concurrency and Distributed SystemsPascal-Louis Perez
 
Forward Chaining in HALO
Forward Chaining in HALOForward Chaining in HALO
Forward Chaining in HALOESUG
 
Using R to Characterize Hedge Fund Clustering
Using R to Characterize Hedge Fund ClusteringUsing R to Characterize Hedge Fund Clustering
Using R to Characterize Hedge Fund ClusteringGreg Kapoustin
 
Practical approach for testing your software with php unit
Practical approach for testing your software with php unitPractical approach for testing your software with php unit
Practical approach for testing your software with php unitMario Bittencourt
 
Droid on Chain - Berry Ventura Lev, Kik
Droid on Chain - Berry Ventura Lev, KikDroid on Chain - Berry Ventura Lev, Kik
Droid on Chain - Berry Ventura Lev, KikDroidConTLV
 
Dependency injection - the right way
Dependency injection - the right wayDependency injection - the right way
Dependency injection - the right wayThibaud Desodt
 
Building high productivity applications
Building high productivity applicationsBuilding high productivity applications
Building high productivity applicationsHutomo Sugianto
 
"An introduction to object-oriented programming for those who have never done...
"An introduction to object-oriented programming for those who have never done..."An introduction to object-oriented programming for those who have never done...
"An introduction to object-oriented programming for those who have never done...Fwdays
 
Scalability: Rdbms Vs Other Data Stores
Scalability: Rdbms Vs Other Data StoresScalability: Rdbms Vs Other Data Stores
Scalability: Rdbms Vs Other Data StoresRamki Gaddipati
 
Kudler has plenty of room to increase sales while controlling cost.docx
Kudler has plenty of room to increase sales while controlling cost.docxKudler has plenty of room to increase sales while controlling cost.docx
Kudler has plenty of room to increase sales while controlling cost.docxDIPESH30
 
Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)
Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)
Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)Luke Tillman
 
DataWeave 2.0 - MuleSoft CONNECT 2019
DataWeave 2.0 - MuleSoft CONNECT 2019DataWeave 2.0 - MuleSoft CONNECT 2019
DataWeave 2.0 - MuleSoft CONNECT 2019Sabrina Marechal
 

Similar to consistency without borders (20)

Improving application design with a rich domain model (springone 2007)
Improving application design with a rich domain model (springone 2007)Improving application design with a rich domain model (springone 2007)
Improving application design with a rich domain model (springone 2007)
 
Unit 5
Unit 5Unit 5
Unit 5
 
How to Send a Receipt, Topics in Concurrency and Distributed Systems
How to Send a Receipt, Topics in Concurrency and Distributed SystemsHow to Send a Receipt, Topics in Concurrency and Distributed Systems
How to Send a Receipt, Topics in Concurrency and Distributed Systems
 
Spring Transaction
Spring TransactionSpring Transaction
Spring Transaction
 
Transaction
TransactionTransaction
Transaction
 
Forward Chaining in HALO
Forward Chaining in HALOForward Chaining in HALO
Forward Chaining in HALO
 
Ch 9
Ch 9Ch 9
Ch 9
 
Dynamic Itemset Counting
Dynamic Itemset CountingDynamic Itemset Counting
Dynamic Itemset Counting
 
Dynamic Itemset Counting
Dynamic Itemset CountingDynamic Itemset Counting
Dynamic Itemset Counting
 
Using R to Characterize Hedge Fund Clustering
Using R to Characterize Hedge Fund ClusteringUsing R to Characterize Hedge Fund Clustering
Using R to Characterize Hedge Fund Clustering
 
Practical approach for testing your software with php unit
Practical approach for testing your software with php unitPractical approach for testing your software with php unit
Practical approach for testing your software with php unit
 
Droid on Chain - Berry Ventura Lev, Kik
Droid on Chain - Berry Ventura Lev, KikDroid on Chain - Berry Ventura Lev, Kik
Droid on Chain - Berry Ventura Lev, Kik
 
Dependency injection - the right way
Dependency injection - the right wayDependency injection - the right way
Dependency injection - the right way
 
Building high productivity applications
Building high productivity applicationsBuilding high productivity applications
Building high productivity applications
 
"An introduction to object-oriented programming for those who have never done...
"An introduction to object-oriented programming for those who have never done..."An introduction to object-oriented programming for those who have never done...
"An introduction to object-oriented programming for those who have never done...
 
Scalability: Rdbms Vs Other Data Stores
Scalability: Rdbms Vs Other Data StoresScalability: Rdbms Vs Other Data Stores
Scalability: Rdbms Vs Other Data Stores
 
0273685988 ch13
0273685988 ch130273685988 ch13
0273685988 ch13
 
Kudler has plenty of room to increase sales while controlling cost.docx
Kudler has plenty of room to increase sales while controlling cost.docxKudler has plenty of room to increase sales while controlling cost.docx
Kudler has plenty of room to increase sales while controlling cost.docx
 
Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)
Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)
Event Sourcing with Cassandra (from Cassandra Japan Meetup in Tokyo March 2016)
 
DataWeave 2.0 - MuleSoft CONNECT 2019
DataWeave 2.0 - MuleSoft CONNECT 2019DataWeave 2.0 - MuleSoft CONNECT 2019
DataWeave 2.0 - MuleSoft CONNECT 2019
 

Recently uploaded

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
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...Martijn de Jong
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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 CVKhem
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Recently uploaded (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
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...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

consistency without borders

Editor's Notes

  1. 2 things happened: academia ran down the stack, creating new I/O-level models with no accompanying intuitive contract for apps.Industry ran up the stack, developing best practices for app-level consistency without support (or guarantees!) from infrastructure
  2. Recover common ground with programmers that was lost with the abandonment of xacts
  3. To guard against failures, we replicate.NB: asynchrony =&gt; replicas might not agree
  4. Very similar looking criteria (1 safe 1 live). Takes some work, even on a single site. But hard in our scenario: disorder =&gt; replica disagreement, partial failure =&gt; missing partitions
  5. recall “the developer’s conundrum.” essentially 3 choices: 1) SC, meaningful at app level,
  6. Ie, reorderability, batchability, tolerance to duplication / retryNow programmer must map from application invariants to object API (with richer semantics than read/write).
  7. All API calls to add() commute; no CC necessaryApproach: adjacency lists as setsHowever, not sufficient to synchronize GC.
  8. However, not sufficient to synchronize GC.Perhaps more importantly, not *compositional* -- what guarantees does my app – pieced together from many convergent objects – give?To reason compositionally, need guarantees about what comes OUT of my objects, and how it transits the app.
  9. We are interested in the properties of component *outputs* rather than just internal state. Hence we are interested in a different property: confluence.A confluent module behaves like a function from sets (of inputs) to sets (of outputs)
  10. Confluence is compositional: Composing confluent components yields a confluent dataflow
  11. All of these components are confluent! Composing confluent components yields a confluent dataflowBut annotations are burdensome
  12. M – a semantic property of code – implies confluenceAn appropriately constrained language provides a conservative syntactic test for M.
  13. M – a semantic property of code – implies confluenceAn appropriately constrained language provides a conservative syntactic test for M.
  14. Also note that a data-centric language give us the dataflow graph automatically, via dependencies (across LOC, modules, processes, nodes, etc)
  15. Consistency models and mechanisms are only useful if they help programmers write correct applications.