Database Reference
In-Depth Information
Reverting the Effects of XQuery Update Expressions
Federico Cavalieri 1 , Giovanna Guerrini 1 , and Marco Mesiti 2
1 DISI - University of Genova
{ cavalieri,guerrini } @disi.unige.it
2 DICo - University of Milano
mesiti@dico.unimi.it
Abstract. The need of reverting the effects of updates on the affected documents
arises in many contexts, ranging from undos in transactional applications to ver-
sioning systems. In this paper, we investigate this issue for XQuery Update ex-
pressions, relying on the Pending Update List (PUL) obtained from the evaluation
of an expression on a document. Specifically, we introduce an inversion opera-
tor, that, given a PUL to be applied on a document, allows to determine a cor-
responding inverted PUL that, applied on the modified document, produces the
original document. Moreover, an alternative approach for enriching a PUL with
additional information, so that it can be inversely applied, is proposed and the
two approaches are experimentally compared.
Keywords: XML, Updates, Dynamic reasoning, Update processing.
1
Introduction
The ability of reverting the effects of an update operation is useful in many situations.
Consider for instance a distributed transactional context, in which transactions can be
aborted and rolled back, and thus the corresponding operations need to be undone. More
flexible update processing approaches based on check-in/check-out policies, such as
those employed in collaborative document editing, may benefit as well of such ability.
It may also become crucial in versioning contexts, if versions are handled by recording
the updates that transformed a version into the following one (edit-based approaches
according to [4]) instead of the various data snapshots. In this context, update reversion
is the basis for moving across different versions.
In this paper, we investigate this problem in the context of updates on XML doc-
uments expressed as XQuery Update (XQU) expressions [15]. The evaluation of an
XQU expression on a document produces a set of atomic update requests, represented
as a Pending Update List (PUL), that is then applied on the document. In [3] we dis-
cussed the relevance of contexts (such as collaborative editing, disconnected execution,
data clouds) in which updates are not necessarily executed right after and on the same
server where the update expression requesting them is evaluated. Thus, the process of
expressing and requesting updates is decoupled from that of making them effective on
documents. PULs can be produced by a machine, sent over a network, saved to disks,
and later applied on the document, possibly by a different machine. Referring to up-
date reverting, this means that the effects of an update expression can be discarded on a
server different from the one on which they have been applied.
 
Search WWH ::




Custom Search