Wednesday, October 1, 2008

Granularity of Locks and Degrees of Consistency in a Shared Data Base

[Man, this paper is so ghetto. Seriously, you should see it.]

This paper discusses the different granularities of locking and consistency. It presents the tradeoffs between the concurrency and overhead determined by the lockable unit, namely that a smaller unit allows greater concurrency but also requires more overhead. It discusses how these different units fit into locking hierarchies and DAGs along with different access modes (S, X, IX, IS, and SIX). It puts a lot of emphasis on the compatibilities of the access modes and also on how to propagate these modes to ancestors and descendants to achieve desired locking behavior. The authors do a really good job of providing step-by-step examples of how the locking protocols would be carried out in practice.

Consistency is ranked from degree 0 up to 3 with higher levels of consistency accounting for lower concurrency and higher overhead. All transactions abide by degree 0 and do not overwrite dirty data of other transactions, and each increasing level respectively adds the following conditions: the transaction doesn't commit writes before the end of the transaction, the transaction doesn't read dirty data of other transactions, and other transactions do not dirty the data read by the transaction before it completes. The paper compares its locking hierarchies and consistency to those of IMS/VS and DMS 1100; in particular, IMS/VS doesn't support the notion of S or SIX locking and hence doesn't require different intention locks, and DMS doesn't do any implicit locking.

No comments: