XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the...

23
XA Transactions

Transcript of XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the...

Page 1: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Page 2: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Atomic Transactions

In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic transaction, a series of database operations either all occur, or all do not occur ("fail", although the model does not regard failure as catastrophic). A guarantee of atomicity prevents updates to the database occurring only partially, which can cause greater problems than rejecting the whole series outright.

Page 3: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Atomicity Example

One example of atomicity comes from ordering airline-tickets. Potential passengers must either:

both pay for and reserve seats on a flight; OR neither pay for nor reserve seats

The booking-system does not treat it as acceptable for customers to pay for tickets without securing their requested flight or to reserve tickets without payment succeeding.

Page 4: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Atomicity does not behave completely orthgonality with regard to the other ACID properties of the transactions. For example, isolation relies on atomicity to roll back changes in the event of isolation failures such as deadlock; consistency also relies on rollback in the event of a consistency-violation by an illegal transaction. Finally, atomicity itself relies on durability to ensure the atomicity of transactions even in the face of external failures.

As a result of this, failure to detect errors and manually roll back the enclosing transaction may cause failures of isolation and consistency.

Orthogonality

Page 5: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Many databases also support a commit/rollback mechanism aiding in the implementation of atomic transactions. Databases usually implement this using some form of logging/journaling to track changes. The system synchronizes the logs (often the metadata) as necessary once the actual changes have successfully taken place. Afterwards, crash recovery simply ignores incomplete entries. Although implementations vary depending on factors such as concurrency issues, the principle of atomicity — i.e. complete success or complete failure — remain.

Implementation

Page 6: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

In database systems, isolation is a property that defines how/when the changes made by one operation become visible to other concurrent operations. Isolation is one of the ACID (Atomicity, Consistency, Isolation, Durability) properties.

Page 7: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

The isolation property is the most often relaxed ACID property in a DBMS (Database Management System). This is because to maintain the highest level of isolation a DBMS must acquire locks on data, which may result in a loss of concurrency or else implement multiversioning (version control), which may require additional logic to function correctly.

Page 8: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Most DBMSs offer a number of transaction isolation levels which control the degree of locking which occurs when selecting data. For many database applications the majority of database transactions can be constructed in such a way as to not require high isolation levels, thus reducing the locking overhead for the system. Conversely, at higher isolation levels the possibility of deadlock is increased, which also requires careful analysis and programming techniques to avoid.

Isolation Levels

Page 9: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

A phantom read occurs when, in the course of a transaction, two identical queries are executed, and the collection of rows returned by the second query is different from the first. This can occur when range locks are not acquired on performing a SELECT.

Phantom Reads

Page 10: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

The isolation levels defined by the ISO standard are:

SERIALIZABLE

REPEATABLE READ

READ COMMITTED

READ UNCOMMITTED

Page 11: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

This isolation level specifies that all transactions occur in a completely isolated fashion; i.e., as if all transactions in the system had executed serially, one after the other. The DBMS may execute two or more transactions at the same time only if the illusion of serial execution can be maintained. At this isolation level, phanton reads cannot occur.With a lock-based concurrency control DBMS implementation, serialization requires that range locks are acquired when a query uses a ranged WHERE clause. When using non lock conncurrency control, no lock is acquired; however, if the system detects a concurrent transaction in progress which would violate the serializability illusion, it must force that transaction to rollback.

SERIALIZABLE

Page 12: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

All data records retrieved by a SELECT statement cannot be changed; however, if the SELECT statement contains any ranged WHERE clauses, phantom reads may occur. In this isolation level the transaction acquires read locks on all retrieved data, but does not acquire range locks.

REPEATABLE READ

Page 13: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Data records retrieved by a query are not prevented from modification by some other transaction. Non repeatible reads may occur, meaning data retrieved in a SELECT statement may be modified by some other transaction when it commits. Write locks are removed at commit.

READ COMMITTED

Page 14: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

In this isolation level, dirty reads are allowed. One transaction may see uncommitted changes made by some other transaction.

READ UNCOMMITTED

Page 15: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Users Table

id name age1 joe 202 jill 25

Example

Page 16: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Transaction 1

/* Query 1 */SELECT * FROM usersWHERE age BETWEEN 10 AND 30;

/* Query 1 */SELECT * FROM usersWHERE age BETWEEN 10 AND 30;

Example Continued

Transaction 2 /* Query 2 */INSERT INTO users VALUES ( 3, 'Bob', 27 );COMMIT;

Page 17: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Note that transaction 1 executed the same query twice. If the highest level of isolation were maintained, the same set of rows should be returned both times, and indeed that is what is mandated to occur in a database operating at the SQL SERIALIZABLE isolation level. However, at the lesser isolation levels, a different set of rows may be returned the second time.

In the SERIALIZABLE isolation mode, Query 1 would result in all records with age in the range 10 to 30 being locked, thus Query 2 would block until the first transaction was committed. In REPEATABLE READ mode, the range would not be locked, allowing the record to be inserted and the second execution of Query 1 to return the new row in its results.

Example Using Serializable

Page 18: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

In computer network and databases, the two-phase commit protocol (2PC) is a distributed algorithm that lets all nodes in a distributed system agree to commit a transaction. The protocol results in either all nodes committing the transaction or aborting, even in the case of network failures or node failures.

Two-phase commit protocol

Page 19: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

The protocol works in the following manner: one node is designated the coordinator, which is the master site, and the rest of the nodes in the network are designated the cohorts. The protocol assumes that there is stable storage at each node with a write ahead log, that no node crashes forever, that the data in the write-ahead log is never lost or corrupted in a crash, and that any two nodes can communicate with each other.

Two-phase commit assumptions

Page 20: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

The protocol is initiated by the coordinator after the last step of the transaction has been reached. The cohorts then respond with an agreement message or an abort message depending on whether the transaction has been processed successfully at the cohort.

Two-phase commit protocol initiation

Page 21: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Commit Request PhaseThe coordinator sends a query to commit message to all cohorts and waits until it has received a reply from all cohorts. The cohorts execute the transaction up to the point where they will be asked to commit. They each write an entry to their undo log and an entry to their redo log. Each cohort replies with an agreement message (cohort votes Yes to commit), if the transaction succeeded, or an abort message (cohort votes No, not to commit), if the transaction failed.

Basic algorithm

Page 22: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

Commit Phase

Success

If the coordinator received an agreement message from all cohorts during the commit-request phase:

The coordinator sends a commit message to all the cohorts. Each cohort completes the operation, and releases all the locks and resources held during the transaction. Each cohort sends an acknowledgment to the coordinator. The coordinator completes the transaction when acknowledgments have been received.

Failure

If any cohort sent an abort message during the commit-request phase:

Basic Algorithm (concluded)

Page 23: XA Transactions. Atomic Transactions In database systems, atomicity (or atomicness) forms one of the ACID group of transaction properties. In an atomic.

XA Transactions

The greatest disadvantage of the two-phase commit protocol is the fact that it is a blocking protocol. A node will block while it is waiting for a message. This means that other processes competing for resource locks held by the blocked processes will have to wait for the locks to be released. A single node will continue to wait even if all other sites have failed. If the coordinator fails permanently, some cohorts will never resolve their transactions.

Two-phase commit protocol - Disadvantages