Sunday, October 5, 2008

Concurrency Control Performance Modeling: Alternatives and Implications, Agrawal, Carey, & Livny

This paper examines three methods of concurrency control, blocking, optimistic algorithm, and immediate-restart, in an attempt to determine which is ultimately the best method for concurrency control. A number of experiments were performed, with factors differing from the number of available resources (CPUs and disks), restart delays, external and internal think times, no-lock-upgrades (placing a write lock on a to-be-updated object instead of starting it off with a read lock and upgrading later), and fake restarts (replacing restarted transactions with a different, independent one). The throughput, utilization, and conflict ratios for different multiprogramming levels were examined and compared for each set of experiments.

Each set of experiments produced a different winner, but the authors were able to draw a few conclusions from this seemingly mixed bag of results. Each of the three techniques increased throughput with fake restarts, and blocking did slightly better than the other two with one resource while the optimistic approach did better with infinite resources. The no-lock upgrade policy increased throughput for the immediate-restart algorithm in both infinite and limited resource cases, while the blocking suffered from this policy for infinite resources and increased throughput for 1 resource. In general, blocking trumps restart techniques in a system with medium to high resource usage, while the optimistic algorithm might be well-suited for a system with a large number of resources and large amount of intratransaction think time, although the authors admit that this kind of system is probably undesirable because its lack of cost-effectiveness and that in the absence of this system, blocking is the best form of concurrency control.

No comments: