A ring-based architecture for a multi-tier transactional system
Many asynchronous distributed transactional systems use a coordinator, either an application server or an elected database server, to handle the progress of a transaction. When the coordinator fails or the network becomes partitioned, the transaction may block. In this paper we propose a ring-based transactional architecture for distributed database systems. The transaction can progress even if the network is partitioned or the coordinator dies, and the protocol will ensure uniform agreement on success or failure of the transaction. This architecture delivers multiple tokens which piggyback a vector clock with each database server’s state, and each database server uses the information in the token to make a decision of when to go to the next state.