Designing Data-Intensive Applications – Lost Updates and Write Skew

Topics covered
Popular Clips
Episode Highlights
Detecting Updates
Detecting lost updates is crucial for maintaining data integrity in systems. highlights the dangers of lost updates, especially in scenarios like banking, where accuracy is paramount 1. emphasizes the need for audit trails and verification to prevent such issues 1. discusses the challenges of database systems in handling these updates, noting that application developers must often take responsibility for ensuring data consistency 2.
Handling Updates
Handling lost updates involves implementing strategies like atomic writes and cursor stability. explains that atomic writes combine read and write operations to prevent data loss 3. However, points out that single-threading and cursor stability can lead to deadlocks in high-traffic databases 3. suggests that developers must carefully design their data structures to accommodate these strategies effectively 4.
Update Implications
The implications of lost updates extend to data inconsistencies and system reliability. shares experiences with content management systems where simultaneous updates led to data loss 5. notes that early ORM systems often overwrote entire records, exacerbating the problem 6. He stresses the importance of understanding application requirements to choose appropriate strategies for handling updates in distributed databases 6.
Related Episodes


Designing Data-Intensive Applications – Storage and Retrieval
Answers 383 questions

Designing Data-Intensive Applications - Reliability
Answers 383 questionsDesigning Data-Intensive Applications – Multi-Object Transactions
Answers 383 questionsDesigning Data-Intensive Applications – Leaderless Replication
Answers 383 questions

Designing Data-Intensive Applications – Single Leader Replication
Answers 383 questions

Designing Data-Intensive Applications – Multi-Leader Replication
Answers 383 questions

Designing Data-Intensive Applications - SSTables and LSM-Trees
Answers 383 questions

Designing Data-Intensive Applications - Data Models: Relational vs Document
Answers 383 questionsDesigning Data-Intensive Applications – Data Models: Query Languages
Answers 383 questions

Designing Data-Intensive Applications – Partitioning
Answers 383 questionsUnderstanding Serial Transactions for Databases like Redis
Answers 383 questions

Designing Data-Intensive Applications – Data Models: Relationships
Answers 383 questions

Designing Data-Intensive Applications – Maintainability
Answers 383 questionsDesigning Data-Intensive Applications – Scalability
Answers 383 questions

Things to Know when Considering Multi-Tenant or Multi-Threaded Applications
Answers 383 questions
