action requests its commitment (read-only transac-
tions are committed right away) its updates are col-
lected and broadcast (using the total order primitive)
to the rest of replicas. Upon its delivery at replicas
a validation test (i.e. to detect conflicts with other
concurrent transactions in the system) is performed;
namely a certification test (Wiesmann and Schiper,
2005) that performs the distributed first-committer-
wins rule (Elnikety et al., 2005; Lin et al., 2005) in the
same way at al replicas and ensures the same order of
the commit process of transactions. The main advan-
tage of these replication protocols is that transactions
can start at any time without restriction or delay.
In this paper, we formalize the requirements for
achieving GSI over SI replicas using non-blocking
protocols. Thus, the criteria for implementing GSI
are: (i) Each submitted transaction to the system ei-
ther commits or aborts at all sites (atomicity); (ii) All
update transactions are committed in the same total
order at every site (total order of committed trans-
actions). Total order ensures that all replicas see
the same sequence of transactions, being thus able
to provide the same snapshots to transactions, inde-
pendently of their starting replica; i.e. giving the
logical vision of a one copy scheduler (1-Copy-GSI).
Whereas atomicity guarantees that all replicas take
the same actions regarding each transaction, so their
states should be consistent, once each transaction has
been terminated.
One can think that these assumptions are rather
intuitive but they constitute the milestone for our con-
tribution of the paper. It consists in somehow relax-
ing the assumption of the total order of committed
transactions. If a protocol is not careful about that,
those transactions without write/write conflicts might
be applied in different orders in different replicas. So,
transactions would be able to read different versions
in different replicas. However, this optimization is
important since processing messages serially as sup-
posed for replication protocols deployed over a group
communication system (Chockler et al., 2001) would
result in significantly lower throughput rates. A re-
laxing assumption has been already presented in (Lin
et al., 2005), still using the total order broadcast, it lets
validated transactions to apply (and commit) transac-
tions concurrently as long as their respective updates
do not intersect. However, this protocol needs to block
the execution of the first operation of any starting
transaction until the concurrent application of trans-
actions finishes. Thus, it is easy to see that there are
multiple approaches to obtain GSI at the price of im-
posing certain restrictions, in particular, the need to
block the start of transactions to obtain a global con-
sistent snapshot. Finally, we take a look and discuss
how to relax this last contribution, which is actually
too strong, for deploying GSI non-blocking protocols.
The rest of the work is organized as follows
1
. Sec-
tion 2 introduces the concept of multiversion histories
based on (Bernstein et al., 1987). Sections 3 and 4
give the concepts of SI and GSI respectively. In Sec-
tion 5, the structure of deferred update replication pro-
tocols is introduced. Conditions for 1-Copy-GSI is in-
troduced in 6. We take a look at how to relax con-
ditions for 1-Copy-GSI in Section 7. Finally, conclu-
sions end the paper.
2 MULTIVERSION HISTORIES
In the following, we define the concept of multiver-
sion history for committed transactions using the the-
ory provided in (Bernstein et al., 1987). The prop-
erties studied in our paper only require to deal with
committed transactions. To this end, we first define
the basic building blocks for our formalizations, and
then the different definitions and properties will be
shown.
A database (DB) is a collection of data items,
which may be concurrently accessed by transactions.
A history represents an overall partial ordering of the
different operations concurrently executed within the
context of their corresponding transactions. Thus, a
multiversion history generalizes a history where the
database items are versioned.
To formalize this definition, each transaction sub-
mitted to the system is denoted by T
i
. A transaction is
a sequence of read and write operations on database
items ended by a commit or abort operation. Each T
i
’s
write operation on item X is denoted W
i
(X
i
). A read
operation on item X is denoted R
i
(X
j
) stating that T
i
reads the version of X installed by T
j
. Finally, C
i
and
A
i
denote the T
i
’s commit and abort operation respec-
tively. We assume that a transaction does not read an
item X after it has written it, and each item is read and
written at most once. Avoiding redundant operations
simplifies the presentation. The results for this kind
of transactions are seamlessly extensible to more gen-
eral models. In any case, redundant operations can be
removed using local variables in the program of the
transaction (Papadimitriou, 1986).
Each version of a data item X contained in the
database is denoted by X
i
, where the subscript stands
for the transaction identifier that installed that version
in the DB. The readset and writeset (denoted by RS
i
and WS
i
respectively) express the sets of items read
1
Due to space constraints, the reader is referred
to (Gonz´alez de Mend´ıvil et al., 2007) for a thorough ex-
planation of the correctness proof.
ICSOFT 2008 - International Conference on Software and Data Technologies
46