The Relaxed Atomicity Property
Download
Report
Transcript The Relaxed Atomicity Property
Why should a database transaction be atomic?
ABORT = Removal of the updates of a transaction
An abort is implemented by a roll back recovery
where the before images of the log-file are
restored in the database tables.
What can initiate an automatic abort?
When should a programmer initiate an abort?
The Relaxed Atomicity Property:
Root transaction
Committing subtransaction
Nested atomic subtransactions:
Subtransactions of a
compensatable
subtransaction must also
be compensatable.
Subtransactions of a
retriable subtransaction
must also be retriable.
Subtransactions of a
pivot subtransaction must
either be compensatable
Where would you recommend to use retriable
or retriable.
sub-subtransactions in E-commerce?
The Relaxed Atomicity Property:
Root transaction
Committing subtransaction
How would you
implement relaxed
atomicity in a realtime money
transfer between
two banks?
The Relaxed Atomicity Property:
Root transaction
Committing subtransaction
In E-commerce the
following locations are
involved:
Seller, Bank of Seller,
Buyer, Bank of Buyer, and
Card issuer.
In which locations should
the compensatable, pivot
and retriable
subtransactions be
executed?
The Relaxed Atomicity Property:
Root transaction
Committing subtransaction
How would you
recommend to
implement atomic
data replication
from a primary
copy by using
relaxed atomicity?
Implementation of retriable subtransactions:
Manage compensatable and pivot subtransactions
Remote Procedure Call (RPC)
Update Propagation (UP)
Manage retriable subtransactions
In practice SOA services function as RPCs and may
also be used to implement UP.
Atomicity in mobile computing:
How can SOA help in
implementing mobile atomicity?
Isolation anomalies
occurs when you brake locking rules:
-----------------------------------------------
Example of Lost update anomaly:
History: r1(x)…w2(x)…w1(x)…c1
Read
without
lock
1
Database
2. Make corrections
Reread with
exclusive
lock
3. Write
How can the Lost Update be prevented?
The anomalies allowed by the
different isolation levels of SQL
Readlocks do not lock the index.
Read does not exclude writes. (Only update locks exist).
Update locks do not exclude reads.
The history of
Lost update anomaly:
Read
without
lock
1
Database
2. Make corrections
Reread with
exclusive
lock
3. Write
Examples of Lost update anomaly:
r1(x)…w2(x)…w1(x)…c1
1. Is ”the lost update anomaly” acceptable when the address of a
customer is changed?
2. Is ”the lost update anomaly” acceptable when the amount of
available airplane tickets are reduced by B2C e-commerce?
3. Is ”the lost update anomaly” acceptable when the diagnose of a
patient is changed?
4. Is the ”lost update anomaly” possible when the diagnose of a
patient is created?
Isolation anomalies
occurs when you brake locking rules:
-----------------------------------------------
The history of Dirty read anomaly:
Examples of Dirty read anomaly:
w1(x)…r2(x)…c2…a1...
1. Is the dirty read anomaly acceptable when the address of a customer
is changed?
2. Is the dirty read anomaly acceptable when the amount of available
airplane tickets are red by B2C e-commerce customer?
3. Is the dirty read anomaly acceptable when you want to read the
diagnose of a patient?
4. Is the dirty read anomaly acceptable if you want to change the
diagnose of a patient?
5. Is the dirty read anomaly acceptable when you have to decide
whether to give a loan to a customer?
Isolation anomalies
occurs when you brake locking rules:
-----------------------------------------------
The history of Fuzzy read anomaly =
Non-repeatable read anomaly:
Examples of Non-repeatable read anomaly:
r1(x)…w2(x)… c2…r1(x)….
1. Is the Non-repeatable read anomaly acceptable when the
address of a customer is changed?
2. Is the Non-repeatable read anomaly acceptable when the
amount of available airplane tickets are reduced by B2C ecommerce?
3. Is the Non-repeatable read anomaly acceptable when you
want to read the diagnose of a patient?
4. Is the Non-repeatable read anomaly acceptable if you want
to change the diagnose of a patient?
5. Is the Non-repeatable read anomaly acceptable when you
have to decide whether to give a loan to a customer?
Isolation anomalies
occurs when you brake locking rules:
-----------------------------------------------
The history of Phantom anomaly:
Examples of Phantom anomaly:
r1 (S)…w2(y now in S)…c2…r1 (S)…
1. Is the Phantom anomaly acceptable when the address of a
customer is changed?
2. Is the Phantom anomaly acceptable when the amount of
available airplane tickets are reduced by B2C e-commerce
for one of the airline companies?
3. Is the Phantom anomaly acceptable when you want to read
the health records of a patient?
4. Is the Phantom anomaly acceptable if you want to change
the diagnoses of a patient?
5. Is the Phantom anomaly acceptable when you have to
decide whether to give a loan to a customer?
End of session
Thank you !!!
Anomalies between a record x and its replica y:
The Read skew anomaly illustrates that that a shared lock
(read lock) does not exclude writes globally:
Read skew: r1(x)…w2(x)… w2(y)…c2… r1(y) …...
The Write skew anomaly illustrates that that an exclusive
lock (write lock) does not exclude writes globally:
Write skew: r1(x)… r2(y)… w2(y)…w1(x)…c1…c2.
The Asynchronous replication anomaly illustrates that that a
exclusive lock (write lock) does not exclude reads globally:
Asynchronous replication anomaly:
w1(x).. r2(y)..c2..w1(y).. c1.
The general read skew anomaly:
Read skew: r1(x)…w2(x)… w2(y)…c2… r1(y) …...
The read skew anomaly is a situation where a first transaction
reads a record. Next, a second transaction updates the record
and a related record. The updates are committed. Finally, the
first transaction reads the related record. In this situation, the
first transaction may find that the integrity rules of the
database have been violated by the changes made by the
second transaction.
The general write skew anomaly:
Write skew: r1(x)… r2(y)… w2(y)…w1(x)…c1…c2.
The write skew anomaly is a situation where two
transactions both read two different related records.
Next, the two transactions each update one of the two
related records. Finally, both transactions commit. If a
constraint has existed between the two related
records, it might have been violated.
Implementation of distributed CSCW:
•Describe compensatable, pivot, and retriable
subtransactions for the most important update transactions
•Describe the countermeasures recommended for the most
important transactions
Objectives for a DDBMS
(Distributed DataBase Management System):
Distribution transparency, that is
Replication transparency
Distributed optimizer
Distributed ACID properties
Homogeneity as Heterogeneity is not in the marked
Distribution architectures
Synchronous distributed
database management
system (DDBMS)
Central database
with distributed
clients
Multidatabases with
flexible transactions.
Hot backup
possibility
n-safe and mirroring
Only mirroring is
possible
0- safe, 1 safe and
mirroring
Read performance/
capacity
Best
Worst
Average
Write performance
Worst
Average
Best
Blocking possibility
Yes
No
no
Ease of failure
recovery
Worst (The systems are
very complex)
Best
Best
Disaster recovery
Best
Worst
Average
The probability of
lost data[1]
Best.
pn
Worst
p
Average
Transaction logging
Not supported
Not supported
Recommended
Availability[2]
1-qn
1-q
1-qn
Atomicity
Best
Best
Best
Consistency
Best
Best
Worst
Isolation
Best
Best
Worst
Durability
Best
Best
Best
Develop-ment costs
Best
Best
Worst
Evaluation criteria
(Relaxed ACID properties)
Distributed DataBase Management System(DDBMS)
TM = Transaction Manager.
DM = Data Manager.
Global user views
Distribueret
data dictionary: Global conceptual
view
Distribution schema
Fragmentation
schema
Allocation schema
Local conversion schema
Other
Locallocations
conver-
Local schema
Local schema
Server
Server
sion schema
Other locations
Distributed DataBase Management System(DDBMS)
TM = Transaction Manager.
DM = Data Manager.
Homogenious
DDBMS.
TM
dictionary
DM
dictionary
Heterogenious
DDBMS.
TM
dictionary
TM
dictionary
Conversion
schema
Commit by using distributed 2PC:
Abort with distributed 2PC