Functional Criteria. First, we specify criteria for
the functionality provided by a schema transforma-
tion mechanism:
1. Expressivity. Ideally, an online schema trans-
formation mechanism can perform any conceiv-
able schema transformation online. For example,
in the relational model this would be all schema
transformations that can be expressed in SQL.
However, in practice, it could be sufficient if we
can only perform a subset of all possible trans-
formations online. For instance, we discuss an
important set of relational transformations in 4,
which could be sufficient in practice.
2. Transformation of Data. After a schema change
commits, all existing data must be available in the
new schema. This is the main challenge in per-
forming schema transformations online, and any
lesser guarantees are generally unacceptable.
3. Transactional Guarantees. For the correctness
of database programs, and to ensure database in-
tegrity, it is important that schema transformations
satisfy the ACID properties, as is currently the
norm for OLTP transactions:
(a) Atomicity. Systems must allow transac-
tional composition of basic schema transforma-
tions into more complex transformations, while
maintaining transactional guarantees. If this is
not possible, intermediate schemas of the ba-
sic schema transformations are visible to other
transactions. For some applications this may be
acceptable, but handling them comes at the cost
of additional development effort.
(b) Consistency. Ideally, all defined constraints
hold for the new schema. However, deferring
the checking of constraint to a later time may
be acceptable for certain applications.
(c) Isolation. The execution of transformations
must have serializable semantics, i.e., all con-
current transactions must either see data in the
old schema, or see data in the new schema.
Partially transformed states where one part of
the data is available in the old schema, and the
other part is available in the new schema must
not be visible to concurrent transactions.
(d) Durability. Once a schema transformation has
been committed, its effect must be persistent,
even in the event of a system failure, i.e. all
transactions that are serialized after the trans-
formation must see the result of the transforma-
tion. After a system failure, it may never be the
case that data is lost, that a database is left in a
partially transformed state, or that a database is
left in an intermediate state of a transformation.
4. Application Migration. There must be a mecha-
nism to ensure that database programs can con-
tinue to operate correctly during and after the
schema transformation. Ideally, the system pro-
vides schema versioning or automatic rewriting of
queries, updates and integrity constraints. How-
ever, it may be sufficient if stored procedures can
be updated as part of a schema transformation.
5. Declarativity. Ideally, schema transformations
are specified declaratively. The user should not
have to be concerned with the execution details of
a schema transformation. For instance, the SQL
data definition language can be considered to be
declarative. Manual implementation of schema
transformations, e.g., using Ronstr
¨
oms method,
can be expensive to develop and can be prone to
mistakes that can damage data integrity, but could
be acceptable in certain applications.
Performance Criteria. Second, we specify criteria
for the performance of online schema change mech-
anisms, where we assume that OLTP transactions
and schema transformation transactions are executing
concurrently. We first discuss the impact of schema
transformations on OLTP transactions, and then we
describe performance criteria for the schema transfor-
mations themselves.
1. Impact of a Schema Transformation on
Concurrent Transactions Executing a schema
change concurrently with other transactions will
have an impact on those transactions. We distin-
guish several kinds of impact:
(a) Blocking. Transactions should always be able
to make progress independent of the progress
of concurrent schema transformations. Ideally,
a schema transformation never blocks the exe-
cution of concurrent transactions. However, de-
pending on the application, blocking for short
periods of time, e.g., up to a few seconds, could
be acceptable. Additionally, schema transfor-
mation mechanisms must never prevent new
transactions from starting while a schema trans-
formation is in progress.
(b) Slowdown. A general slowdown in through-
put and latency of transactions is acceptable
to a certain degree, depending on the applica-
tion. Ideally, more complex transformations
can be performed without causing additional
slowdown. However, slowdown that depends
on the complexity of the transformation could
be acceptable, but may impose limitations on
the complexity of online transformations.
ABenchmarkforOnlineNon-blockingSchemaTransformations
291