Introduction to distributed commit protocols
Review: transaction processing
Transaction processing
:
A
transaction
is
atomic
:
All
updates
made by a
transaction
will be made
permanent
or
All
updates
made by a
transaction
will be
voided
Methods/techniques
to achieve
atomicity
despite of
failures
:
Undo log
Redo log
Problem:
A
failure
is
assumed
to
stop
the
entire
system
This
assumption
is
no longer
true
in a
distributed
database system
!!!
Intro: executing a
transaction
in a distributed database
Consider
a
distributed database
:
A
transaction T
is
initiated
at
site 1
:
Transaction T
will
spawn
components
running at
other
site
to
perform
updates
of the
stored fragments
:
Distributed transaction processing
:
How
to
ensure
the
atomicity
(= all or nothing) of the
execution
of a
transaction
on a
distributed database
:
All
component processes
of
transaction T
must
commit
(and make
updates
permanent
)
or
All
component processes
of
transaction T
must
abort
Problem scenario:
A
failure
occurs at
one
of the
processing sites
:
Result:
A
partial
set
of
updates
will be
incorporated
into the
distributed database
!!!