Experience with Rules-Based Programming for Distributed Concurrent Fault-Tolerant Code

Experience with Rules-Based Programming for Distributed, Concurrent, Fault-Tolerant Code - Stutsman et al. 2015 As we saw in yesterday's paper, the authors of RAMCloud settled on a very effective design pattern for writing distributed, concurrent, fault-tolerant (DCFT) modules within their system. They call this pattern 'rules-based programming' - a collection of (condition,action) pairs that can … Continue reading Experience with Rules-Based Programming for Distributed Concurrent Fault-Tolerant Code

No Compromises: Distributed Transactions with Consistency, Availability, and Performance

No Compromises: Distributed Transactions with Consistency, Availability, and Performance - Dragojević et al. 2015 Let's do a thought experiment. In the last couple of days we've been looking at transaction commit protocols and assessing their cost in terms of the number of message delays and forced-writes. But suppose for a moment that network I/O and … Continue reading No Compromises: Distributed Transactions with Consistency, Availability, and Performance

Transaction Management in the R* Distributed Database Management System – Part II

Transaction Management in the R* Distributed Database Management System - Mohan et al. 1986 This is part 7 of a 7 part series on (database) 'Techniques Everyone Should Know.' It also the second of two posts examining this paper. Yesterday we looked at the base two-phase commit protocol, today I'll examine the presumed abort and … Continue reading Transaction Management in the R* Distributed Database Management System – Part II

Transaction Management in the R* Distributed Database Management System – Part I

Transaction Management in the R* Distributed Database Management System - Mohan et al. 1986 Update: fixed rocerd -> record typo. This is part 6 of a series of 7 posts based on the papers from chapter 3, 'Techniques Everyone Should Know,' of the Redbook. It contains an exposition of two-phase commit (2PC), and introduces the … Continue reading Transaction Management in the R* Distributed Database Management System – Part I

ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks

ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging - Mohan et al. 1992 This is part 5 of a 7 part series on (database) 'Techniques Everyone Should Know.' From Peter Bailis' introduction to this paper in chapter 3 of the Redbook: Another major problem in transaction processing is maintaining … Continue reading ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks

Concurrency Control Performance Modeling: Alternatives and Implications

Concurrency Control Performance Modeling: Alternatives and Implications - Agrawal et al. 1987 This is part 4 of a 7 part series on (database) 'Techniques Everyone Should Know.' Here's something you can probably relate to: lots of published performance studies, each showing significant advantages for their preferred system/approach, and yet contradicting each other. What's going on … Continue reading Concurrency Control Performance Modeling: Alternatives and Implications

Granularity of Locks and Degree of Consistency in a Shared Data Base – Part II

Granularity of Locks and Degree of Consistency in a Shared Data Base - Gray et al. 1975 This is part 3 of a 7 part series on (database) 'Techniques Everyone Should Know.' Today we'll look at the second part of this paper which introduces the notion of differing degrees of consistency, and how we can … Continue reading Granularity of Locks and Degree of Consistency in a Shared Data Base – Part II