6,825 research outputs found
A unified concurrency control algorithm for distributed database systems
We present a unified concurrency-control algorithm for distributed database systems in which each transaction may choose its own concurrency control protocol. Specifically, they integrate two-phase locking, timestamp ordering, and precedence agreement into one unified concurrency-control scheme. They show the correctness of the scheme and study the problem of selecting the best protocol for each transaction to optimize system performance.published_or_final_versio
Multi-Master Replication for Snapshot Isolation Databases
Lazy replication with snapshot isolation (SI) has emerged as a popular choice for distributed databases. However, lazy replication requires the execution of update transactions at one (master) site so that it is relatively easy for a total SI order to be determined for consistent installation of updates in the lazily replicated system. We propose a set of techniques that support update transaction execution over multiple partitioned sites, thereby allowing the master to scale. Our techniques determine a total SI order for update transactions over multiple master sites without requiring global coordination in the distributed system, and ensure that updates are installed in this order at all sites to provide consistent and scalable replication with SI. We have built our techniques into PostgreSQL and demonstrate their effectiveness through experimental evaluation.1 yea
Cooperative memory and database transactions
Dissertação apresentada na Faculdade de
Ciências e Tecnologia da Universidade Nova
de Lisboa para a obtenção do Grau de Mestre
em Engenharia InformáticaSince the introduction of Software Transactional Memory (STM), this topic has received a strong interest by the scientific community, as it has the potential of greatly
facilitating concurrent programming by hiding many of the concurrency issues under
the transactional layer, being in this way a potential alternative to the lock based
constructs, such as mutexes and semaphores. The current practice of STM is based
on keeping track of changes made to the memory and, if needed, restoring previous
states in case of transaction rollbacks. The operations in a program that can be reversible,by restoring the memory state, are called transactional operations. The way
that this reversibility necessary to transactional operations is achieved is implementation dependent on the STM libraries being used. Operations that cannot be reversed,such as I/O to external data repositories (e.g., disks) or to the console, are called nontransactional
operations. Non-transactional operations are usually disallowed inside a memory transaction, because if the transaction aborts their effects cannot be undone.
In transactional databases, operations like inserting, removing or transforming data in
the database can be undone if executed in the context of a transaction. Since database
I/O operations can be reversed, it should be possible to execute those operations in the
context of a memory transaction.
To achieve such purpose, a new transactional model unifying memory and database
transactions into a single one was defined, implemented, and evaluated. This new transactional model satisfies the properties from both the memory and database
transactional models. Programmers can now execute memory and database operations
in the same transaction and in case of a transaction rollback, the transaction effects in both the memory and the database are reverted
- …