This paper presents a protocol for improving concurrency and preserving consistency in databases with multi-versioned entities: the database could be either centralized or distributed and may or may not have data replication. In the proposed protocol entities are assigned an order and each transaction accesses entities in this order, with possibly skipping entities that need not be accessed: the out-of-order accesses are permitted at an additional costs. Also, each transaction carries with it, as it moves along the pre-ordered entities, the state information about all preceding transactions which must execute logically before this transaction at all succeeding entities to ensure serializability of transactions. At each entity, a transaction executes logically after all the transactions in the state carried to the entity by the transaction.
展开▼