Transcript ppt

Chapter 13
“Distributed Systems:
Concepts and Design”
Coulouris, Dollimore, Kindberg
A
transaction is a point where there is
interaction with the database
A
transaction is generally atomic
 The
state of the transaction being done is
not visible. If it is not done completely, any
changes it made will be undone. This is
known as rollback
 It’s
common to talk about transactions in
banking systems
 Ex:
A transfer between accounts. The money
should be transferred as well as withdrawn
 To
make sure both things are done
concurrency control is used
 Concurrency
– multiple users want to access
the same data at the same time
 Concurrency
control (CC) ensures that
correct results for parallel operations are
generated
 CC
provides rules, methods, design
methodologies and theories to maintain the
consistency of components operating
simultaneously while interacting with the
same object
 Concurrency
control is needed because there
are a lot of things that can go wrong
 Each
transaction itself can be okay, but the
concurrency generates problems such as:



The lost update problem
The dirty read problem
The incorrect summary problem
Figur 13.9
 There
are many methods for concurrency
control
 The



main methods are:
Locks
Optimistic concurrency control
Timestamp ordering
 Locks
are used to order transactions that
access the same objects according to the
order of arrival of their operations at the
objects
 Mechanism
for enforcing limits on access to
the object
 If
the access to the object is locked other
users have to wait until it’s unlocked
Figur 13.15
 The
use of locks can lead to deadlocks
 Ex:
Two transactions are waiting and each is
dependent on the other to release a lock so
it can resume
Held by
Waits for
A
T
U
Waits for
Figur 13.20
U
T
B
Held by
 Optimistic
concurrency control (OCC) is
based on the assumption that two
transactions won’t occur at the same time
 OCC
is generally used in environments with
low data contention
 Begin
 Working
phase
 Validation
 Update
phase
phase
 Begin:
Record a timestamp marking the
transaction's beginning
 Working
phase:
Read and write database values to a copy of
the transaction which is not yet bound to the
object. Several different transactions of this
type may coexist
 Validate
phase:
Controls if the transaction conflicts with
another transaction on the same object
 Update


phase:
Committed: If there is no conflict, make all
changes part of the official state of the database
Aborted: If there is a conflict, resolve it,
typically by aborting the transaction, although
other resolution schemes are possible
 Whenever
a transaction starts, it is given a
timestamp
 The
timestamp tells in which order that the
transactions are supposed to be applied in
 The
transaction with the earliest timestamp
is executed first
 Every
object in the database has a read
timestamp and a write timestamp
 Serializability
 Recoverability
 Distribution
 The
goal with serializability is that the result
of the parallel transactions is the same as if
though the transactions were preformed
serially
 Recoverability
means that committed
transactions do not read data written by
aborted transactions
 Distributed
 The
serializability
serializability concept Commitment
Ordering allows to effectively achieve global
serializability across multiple Database
Systems, that may use different concurrency
control mechanisms.