SlideShare a Scribd company logo
1 of 21
Amazon`s
Presented By
Sarang Metkar
Dynamo: Highly Available Key-value Store
Giuseppe DeCandia
Deniz Hastorun
Madan Jampani
Gunavardhan Kakulapati
and others
Introduction
• Highly available and scalable distributed data store
• Flexible key – value data model
Key-Value Data Model
• Simple Key-Value pairs
• Table - collection of items
• Item - collections of attributes
Introduction
• Highly available and scalable distributed data store
• Flexible key – value data model
• Fast performance with seamless scalability
• Eventually consistent
• Decentralized system
Motivation
• ‘Always On’ experience to large customer base
• Reduce impact of failure without compromising
performance
• Diverse applications with different storage and
data access requirement
• Configurable to achieve stringent SLAs
SLA requirements
• Decentralized service
oriented architecture
• Multiple dependencies
hence tight constraints
• 99.9th percentile SLA
measurement
Reference : Dynamo: Amazon’s Highly Available Key-value Store : Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Alex Pilchin, Peter Vosshall
and Werner Vogels
Design Considerations - Consistency
• Availability using optimistic replication - eventual
consistency
• Challenges in conflict resolution
• When to resolve ?
- Always writable requirement
• Who resolves?
- Application assisted
- Data store`s “last write wins” policy
Other Design Considerations
• Incremental Scalability
• Symmetry
• Decentralization
• Heterogeneity
System Interface
• Object storage and access
• get(key)
- Locate object replicas
- Return single or list of objects
• put(key, context, object)
- Determine location of replica
- Context for conflict resolution
Partition and Replication
• Consistent hashing for load and data
distribution
• Less impact of addition or deletion of
nodes
• Virtual nodes account for heterogeneity
• Coordinator node stores preference list
Eventual Consistency
• Asynchronous updates of replicas
• Versioning, based on vector clocks
• Reconciliation
• Syntactic reconciliation
• Semantic reconciliation
• Sloppy quorum like consistency
protocol
• Configurable R , W and N
[ R + W > N ]
Reference : Dynamo: Amazon’s Highly Available Key-value Store : Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Alex Pilchin, Peter Vosshall
and Werner Vogels
Handling failures
• High Availability and Durability requirement
• Hinted handoff – temporary failures
• Replica synchronization – permanent failures
• Merkle Trees
- Less data transfer and faster replication
- One for each key range on node
- Recalculation of tree on key range changes
Membership and Failure Detection
• Manual addition or removal of nodes
• Gossip based protocol to reconcile membership
changes
• Partitioning and node-to-token sets mapping
information propagation
• Seeds avoids logical partitioning
• Decentralized failure detection
Implementation
• Local persistence engine
• Application specific
• Pluggable
• Request coordination
• Read/write request execution
• Read repair
• ‘Read-your-writes’ consistency
• Java NIO channel
• Membership and failure detection
Key Learnings - 1
• Common (N,R,W) configuration – (3, 2, 2)
• Balancing Performance and Durability
• Buffering of write operations
• Durable write
Key Learnings [cont`d]
• Uniform load distribution
• More load imbalance for low load
• Q/S tokens per node, equal-sized partition
• Faster bootstrapping and recovery
• Ease of archival
Key Learnings [cont`d]
• Divergent Versions
• Failures in system
• Concurrent writes to single object by multiple nodes
• Client driven coordination
• Request coordination at client
• Pull membership information
• Reduces latency
• Admission Control mechanism for background
tasks
Related Work
• Peer to Peer systems
• Unstructured peer-to-peer network
• Gnutella [1]
• Freenet [2]
• Structure peer-to-peer network
• Oceanstore [3]
• Beehive [4]
• Distributed File Systems and Databases
• Google File System [5]
• Bayou [6]
Conclusion
• Application specific configuration for availability,
durability, performance and consistency
• Evaluation of different techniques to build highly
available system
• Use of eventually consistent storage system in
production
• Tuning of various techniques to meet strict production
performance requirements
References
• [1] http://www.gnutella.org/
• [2] http://freenetproject.org/
• [3] Kubiatowicz, J., Bindel, D., Chen, Y., Czerwinski, S., Eaton, P., Geels, D.,
Gummadi, R., Rhea, S., Weatherspoon, H., Wells, C., and Zhao, B. 2000.
OceanStore: an architecture for global-scale persistent storage.
• [4] Ghemawat, S., Gobioff, H., and Leung, S. 2003. The Google file system. In
Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles
• [5] Ramasubramanian, V., and Sirer, E. G. Beehive: O(1)lookup performance for
power-law query distributions in peer-to-peer overlays.
• [6] Terry, D. B., Theimer, M. M., Petersen, K., Demers, A. J., Spreitzer, M. J., and
Hauser, C. H. 1995. Managing update conflicts in Bayou, a weakly connected
replicated storage system.
Thank You

More Related Content

What's hot

Microsoft SQL Server - Server Consolidation Datasheet
Microsoft SQL Server - Server Consolidation DatasheetMicrosoft SQL Server - Server Consolidation Datasheet
Microsoft SQL Server - Server Consolidation Datasheet
Microsoft Private Cloud
 
Application Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a ServiceApplication Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a Service
WSO2
 

What's hot (20)

The Evolution of VMTurbo, now Turbonomic, Product Releases
The Evolution of VMTurbo, now Turbonomic, Product ReleasesThe Evolution of VMTurbo, now Turbonomic, Product Releases
The Evolution of VMTurbo, now Turbonomic, Product Releases
 
(SOV208) Amazon WorkSpaces and Amazon Zocalo | AWS re:Invent 2014
(SOV208) Amazon WorkSpaces and Amazon Zocalo | AWS re:Invent 2014(SOV208) Amazon WorkSpaces and Amazon Zocalo | AWS re:Invent 2014
(SOV208) Amazon WorkSpaces and Amazon Zocalo | AWS re:Invent 2014
 
Nutanix overview
Nutanix overviewNutanix overview
Nutanix overview
 
Azure reference architectures
Azure reference architecturesAzure reference architectures
Azure reference architectures
 
Architectural Refactoring
Architectural RefactoringArchitectural Refactoring
Architectural Refactoring
 
Scaling Your Database in the Cloud
Scaling Your Database in the CloudScaling Your Database in the Cloud
Scaling Your Database in the Cloud
 
How Lenovo and Nutanix are delivering the invisible infrastructure
How Lenovo and Nutanix are delivering the invisible infrastructureHow Lenovo and Nutanix are delivering the invisible infrastructure
How Lenovo and Nutanix are delivering the invisible infrastructure
 
Caching for Microservices Architectures: Session II - Caching Patterns
Caching for Microservices Architectures: Session II - Caching PatternsCaching for Microservices Architectures: Session II - Caching Patterns
Caching for Microservices Architectures: Session II - Caching Patterns
 
Nutanix and microsoft_webinar_oct_28
Nutanix and microsoft_webinar_oct_28Nutanix and microsoft_webinar_oct_28
Nutanix and microsoft_webinar_oct_28
 
VMworld 2013: Dell Solutions for VMware Virtual SAN
VMworld 2013: Dell Solutions for VMware Virtual SAN VMworld 2013: Dell Solutions for VMware Virtual SAN
VMworld 2013: Dell Solutions for VMware Virtual SAN
 
MySQL: Scale Through Consolidation Webinar
MySQL: Scale Through Consolidation Webinar MySQL: Scale Through Consolidation Webinar
MySQL: Scale Through Consolidation Webinar
 
Azure Application Architecture Guide
Azure Application Architecture GuideAzure Application Architecture Guide
Azure Application Architecture Guide
 
Writing Space and the Cassandra NoSQL DBMS
Writing Space and the Cassandra NoSQL DBMSWriting Space and the Cassandra NoSQL DBMS
Writing Space and the Cassandra NoSQL DBMS
 
Optimal Azure Database Development by Karel Coenye
 Optimal Azure Database Development by Karel Coenye Optimal Azure Database Development by Karel Coenye
Optimal Azure Database Development by Karel Coenye
 
Don’t Leave Bare Metal Workloads Behind
Don’t Leave Bare Metal Workloads BehindDon’t Leave Bare Metal Workloads Behind
Don’t Leave Bare Metal Workloads Behind
 
Manageability Enhancements of SQL Server 2012
Manageability Enhancements of SQL Server 2012Manageability Enhancements of SQL Server 2012
Manageability Enhancements of SQL Server 2012
 
What's New in windows server 2012 R2 Hyper V?
What's New in windows server 2012 R2 Hyper V?What's New in windows server 2012 R2 Hyper V?
What's New in windows server 2012 R2 Hyper V?
 
Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)
Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)
Архитектура приложений с использованием MySQL, Петр Зайцев (Percona)
 
Microsoft SQL Server - Server Consolidation Datasheet
Microsoft SQL Server - Server Consolidation DatasheetMicrosoft SQL Server - Server Consolidation Datasheet
Microsoft SQL Server - Server Consolidation Datasheet
 
Application Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a ServiceApplication Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a Service
 

Similar to Amazon`s Dynamo

Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud application
Noam Sheffer
 

Similar to Amazon`s Dynamo (20)

Tuning Java Driver for Apache Cassandra
Tuning Java Driver for Apache CassandraTuning Java Driver for Apache Cassandra
Tuning Java Driver for Apache Cassandra
 
Tuning Java Driver for Apache Cassandra by Nenad Bozic at Big Data Spain 2017
Tuning Java Driver for Apache Cassandra by Nenad Bozic at Big Data Spain 2017Tuning Java Driver for Apache Cassandra by Nenad Bozic at Big Data Spain 2017
Tuning Java Driver for Apache Cassandra by Nenad Bozic at Big Data Spain 2017
 
Scaling distributed data systems: A LinkedIn Case study
Scaling distributed data systems: A LinkedIn Case studyScaling distributed data systems: A LinkedIn Case study
Scaling distributed data systems: A LinkedIn Case study
 
Cloud Ready Apps
Cloud Ready AppsCloud Ready Apps
Cloud Ready Apps
 
Patterns of Distributed Application Design
Patterns of Distributed Application DesignPatterns of Distributed Application Design
Patterns of Distributed Application Design
 
NoSQL – Data Center Centric Application Enablement
NoSQL – Data Center Centric Application EnablementNoSQL – Data Center Centric Application Enablement
NoSQL – Data Center Centric Application Enablement
 
Continuous Availability and Scale-out for MySQL with ScaleBase Lite & Enterpr...
Continuous Availability and Scale-out for MySQL with ScaleBase Lite & Enterpr...Continuous Availability and Scale-out for MySQL with ScaleBase Lite & Enterpr...
Continuous Availability and Scale-out for MySQL with ScaleBase Lite & Enterpr...
 
Operational-Analytics
Operational-AnalyticsOperational-Analytics
Operational-Analytics
 
Azure DocumentDB Overview
Azure DocumentDB OverviewAzure DocumentDB Overview
Azure DocumentDB Overview
 
Got documents - The Raven Bouns Edition
Got documents - The Raven Bouns EditionGot documents - The Raven Bouns Edition
Got documents - The Raven Bouns Edition
 
The Need For Speed - Strategies to Modernize Your Data Center
The Need For Speed - Strategies to Modernize Your Data CenterThe Need For Speed - Strategies to Modernize Your Data Center
The Need For Speed - Strategies to Modernize Your Data Center
 
Cassandra Architecture FTW
Cassandra Architecture FTWCassandra Architecture FTW
Cassandra Architecture FTW
 
Cloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong CodeaholicsCloud Design Patterns - Hong Kong Codeaholics
Cloud Design Patterns - Hong Kong Codeaholics
 
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
Chill, Distill, No Overkill: Best Practices to Stress Test Kafka with Siva Ku...
 
M|18 How We Made the Move to MariaDB at FNI
M|18 How We Made the Move to MariaDB at FNIM|18 How We Made the Move to MariaDB at FNI
M|18 How We Made the Move to MariaDB at FNI
 
Cloud patterns at Carleton University
Cloud patterns at Carleton UniversityCloud patterns at Carleton University
Cloud patterns at Carleton University
 
Building a highly scalable and available cloud application
Building a highly scalable and available cloud applicationBuilding a highly scalable and available cloud application
Building a highly scalable and available cloud application
 
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahuja
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahujaCloud - High Availability @ Low Cost - Workshop - Gurpreet ahuja
Cloud - High Availability @ Low Cost - Workshop - Gurpreet ahuja
 
How a Data Mesh is Driving our Platform | Trey Hicks, Gloo
How a Data Mesh is Driving our Platform | Trey Hicks, GlooHow a Data Mesh is Driving our Platform | Trey Hicks, Gloo
How a Data Mesh is Driving our Platform | Trey Hicks, Gloo
 
Data Virtualization Reference Architectures: Correctly Architecting your Solu...
Data Virtualization Reference Architectures: Correctly Architecting your Solu...Data Virtualization Reference Architectures: Correctly Architecting your Solu...
Data Virtualization Reference Architectures: Correctly Architecting your Solu...
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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
 
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
 
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
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
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
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 

Amazon`s Dynamo

  • 1. Amazon`s Presented By Sarang Metkar Dynamo: Highly Available Key-value Store Giuseppe DeCandia Deniz Hastorun Madan Jampani Gunavardhan Kakulapati and others
  • 2. Introduction • Highly available and scalable distributed data store • Flexible key – value data model
  • 3. Key-Value Data Model • Simple Key-Value pairs • Table - collection of items • Item - collections of attributes
  • 4. Introduction • Highly available and scalable distributed data store • Flexible key – value data model • Fast performance with seamless scalability • Eventually consistent • Decentralized system
  • 5. Motivation • ‘Always On’ experience to large customer base • Reduce impact of failure without compromising performance • Diverse applications with different storage and data access requirement • Configurable to achieve stringent SLAs
  • 6. SLA requirements • Decentralized service oriented architecture • Multiple dependencies hence tight constraints • 99.9th percentile SLA measurement Reference : Dynamo: Amazon’s Highly Available Key-value Store : Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Alex Pilchin, Peter Vosshall and Werner Vogels
  • 7. Design Considerations - Consistency • Availability using optimistic replication - eventual consistency • Challenges in conflict resolution • When to resolve ? - Always writable requirement • Who resolves? - Application assisted - Data store`s “last write wins” policy
  • 8. Other Design Considerations • Incremental Scalability • Symmetry • Decentralization • Heterogeneity
  • 9. System Interface • Object storage and access • get(key) - Locate object replicas - Return single or list of objects • put(key, context, object) - Determine location of replica - Context for conflict resolution
  • 10. Partition and Replication • Consistent hashing for load and data distribution • Less impact of addition or deletion of nodes • Virtual nodes account for heterogeneity • Coordinator node stores preference list
  • 11. Eventual Consistency • Asynchronous updates of replicas • Versioning, based on vector clocks • Reconciliation • Syntactic reconciliation • Semantic reconciliation • Sloppy quorum like consistency protocol • Configurable R , W and N [ R + W > N ] Reference : Dynamo: Amazon’s Highly Available Key-value Store : Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Alex Pilchin, Peter Vosshall and Werner Vogels
  • 12. Handling failures • High Availability and Durability requirement • Hinted handoff – temporary failures • Replica synchronization – permanent failures • Merkle Trees - Less data transfer and faster replication - One for each key range on node - Recalculation of tree on key range changes
  • 13. Membership and Failure Detection • Manual addition or removal of nodes • Gossip based protocol to reconcile membership changes • Partitioning and node-to-token sets mapping information propagation • Seeds avoids logical partitioning • Decentralized failure detection
  • 14. Implementation • Local persistence engine • Application specific • Pluggable • Request coordination • Read/write request execution • Read repair • ‘Read-your-writes’ consistency • Java NIO channel • Membership and failure detection
  • 15. Key Learnings - 1 • Common (N,R,W) configuration – (3, 2, 2) • Balancing Performance and Durability • Buffering of write operations • Durable write
  • 16. Key Learnings [cont`d] • Uniform load distribution • More load imbalance for low load • Q/S tokens per node, equal-sized partition • Faster bootstrapping and recovery • Ease of archival
  • 17. Key Learnings [cont`d] • Divergent Versions • Failures in system • Concurrent writes to single object by multiple nodes • Client driven coordination • Request coordination at client • Pull membership information • Reduces latency • Admission Control mechanism for background tasks
  • 18. Related Work • Peer to Peer systems • Unstructured peer-to-peer network • Gnutella [1] • Freenet [2] • Structure peer-to-peer network • Oceanstore [3] • Beehive [4] • Distributed File Systems and Databases • Google File System [5] • Bayou [6]
  • 19. Conclusion • Application specific configuration for availability, durability, performance and consistency • Evaluation of different techniques to build highly available system • Use of eventually consistent storage system in production • Tuning of various techniques to meet strict production performance requirements
  • 20. References • [1] http://www.gnutella.org/ • [2] http://freenetproject.org/ • [3] Kubiatowicz, J., Bindel, D., Chen, Y., Czerwinski, S., Eaton, P., Geels, D., Gummadi, R., Rhea, S., Weatherspoon, H., Wells, C., and Zhao, B. 2000. OceanStore: an architecture for global-scale persistent storage. • [4] Ghemawat, S., Gobioff, H., and Leung, S. 2003. The Google file system. In Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles • [5] Ramasubramanian, V., and Sirer, E. G. Beehive: O(1)lookup performance for power-law query distributions in peer-to-peer overlays. • [6] Terry, D. B., Theimer, M. M., Petersen, K., Demers, A. J., Spreitzer, M. J., and Hauser, C. H. 1995. Managing update conflicts in Bayou, a weakly connected replicated storage system.