0% found this document useful (0 votes)
242 views19 pages

Atomic Transactions

Atomic transactions allow programmers to group operations together so that they are all completed successfully or none are. This avoids issues that could arise if an operation was interrupted partway through. Transactions have four key properties - atomicity, consistency, isolation, and durability (ACID) - which ensure the transactions behave predictably even when run concurrently. Programming with transactions requires special primitives provided by the operating system or runtime to define transactions and commit/abort their results.

Uploaded by

Roland Hewage
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
242 views19 pages

Atomic Transactions

Atomic transactions allow programmers to group operations together so that they are all completed successfully or none are. This avoids issues that could arise if an operation was interrupted partway through. Transactions have four key properties - atomicity, consistency, isolation, and durability (ACID) - which ensure the transactions behave predictably even when run concurrently. Programming with transactions requires special primitives provided by the operating system or runtime to define transactions and commit/abort their results.

Uploaded by

Roland Hewage
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

Atomic Transactions

Atomic Transactions
• All the synchronization techniques we have
studied so far are low level, they require the
programmer to be involved with all the details of
mutual exclusion, critical region management,
etc.
• Atomic transactions hide technical issues and
allow the programmer to concentrate on the
algorithms and how the processes work together
in parallel.
• We call atomic transaction, or simply transaction,
or atomic action.
Atomic Transactions …
A transaction is either successful or it is
aborted by the client or the server (make all
temporary effects invisible to other)
Example
• A banking application that updates an online
database in place.
• The customer calls up the bank using a PC
with a modem with the intention of
withdrawing money from one account and
depositing it in another.
• The operation is performed in two steps:
– Withdraw(amount, account1)
– Deposit(amount, account2)
Example contd…
• If the telephone connection is broken after
the first one but before the second one, the
first account will have been debited but the
second one will not have been credited.
• Being able to group these two operations in
an atomic transaction would solve the
problem.
• Either both would be completed or neither
would be completed.
Transaction Primitives
• Programming using transactions requires
special primitives that must either be supplied
by the OS or language runtime system.
• Examples:
Transaction Primitives ….
• The exact list of primitives depends on what
kinds of objects are being used in the
transaction.
Properties of Transactions
1. Atomic : to the outside world, the
transactions happens indivisibly.
2. Consistent: The transaction does not violate
system invariants
3. Isolated: Concurrent transactions do not
interfere with each other.
4. Durable: Once a transaction commits, the
changes are permanent.
These properties are often referred to as ACID
Properties of transactions …..
• Atomic
- This property ensures that each transaction
either happens completely or not at all.
- While a transaction is in progress, other
processes (whether or not they involve in
transaction) can not see any of the intermediate
states.
Properties of transactions …..
• Consistent
– If the system has certain invariants that must
always hold, if they held before the transaction,
they will hold afterward too.
Example: In a banking system, after any internal
transfer, the amount of money in the bank must be
same as it was before the transfer.
Properties of transactions …..
• Isolated (serializable)
– If two or more transactions are running at the
same time, to each of them and to other
processes, the final result looks as though all
transactions ran sequentially.
Serializability - Example
• Consider 3 transactions ((a) – (c)) that are
executed simultaneously by 3 separate
processes.
• If they were to be run sequentially, the final
value of x would be 1,2 or 3.
Example contd …
• Consider different schedules in which
transactions might be interleaved.

Schedule 1 is serialized – the transactions run strictly sequentially

Schedule 2 is not serialized, but is legal because it results in a value


for x that could have been achieved by running the transactions
strictly sequentially.

Schedule 3 is not legal - why ??


Properties of Transactions contd ..
• Durable
- once a transaction commits, no matter
what happens, the transaction goes forward and
the results become permanent.
- No failure after the commit can undo the
results or cause them to be lost.
Nested Transactions
• Transactions may contain sub-transactions,
often called nested transactions.
• Since transactions can be nested arbitrarily,
considerable administration is needed to get
every thing right.

You might also like