Concurrency control algorithms and their performance in replicated database systems

We develop two distributed algorithms to synchronize concurrent updates in replicated database systems. Both algorithms use timestamps to perform synchronization. First algorithm uses knowledge of readsets and writesets of updates to enhance concurrency. It avoids update restarts by having all sites exchange the writeset and timestamp of an update prior to executing it. We study a variant of this algorithm which reduces blocking delays due to conflicting access by creating multiple versions of data objects. Consequently, it has smaller update response time and higher system throughput. However, it requires more storage because multiple versions of data objects may be kept. Second algorithm is based on a fully-distributed approach to update execution where each site completely executes every update. When a site receives an update from a user, it is transported to all other sites. After it, each site executes that update completely without any exchange of computed values. The fully-distributed nature of second algorithm imparts to it several features such as higher resiliency to different kinds of failures, higher parallelism, fast response to user updates, and low communication overhead. We present a queueing network model of a replicated database system and use it in analytic and simulation performance studies. We exploit the property of data replication to replace a set of model parameters by a single parameter which reduces the number of necessary simulation runs. We analytically study the performance of first algorithm using an iterative and approximate technique. With the help of numerical examples, we show that the analytical solution predicts the values of the performance measures with fairly good accuracy and predicts the shape of the performance curves very accurately. We study and compare the performance of our concurrency control algorithms with the performance of some existing concurrency control algorithms 24, 47 using an event-driven simulator. Results of the performance study show that our algorithms have better performance (i.e., have better response time and throughput characteristics).