Adding updates to XQuery: Semantics, optimization, and static analysis (2005)
| Venue: | In XIME-P’05 |
| Citations: | 8 - 0 self |
BibTeX
@INPROCEEDINGS{Benedikt05addingupdates,
author = {Michael Benedikt and Angela Bonifati and Sergio Flesca and Avinash Vyas},
title = {Adding updates to XQuery: Semantics, optimization, and static analysis},
booktitle = {In XIME-P’05},
year = {2005}
}
OpenURL
Abstract
The need to extend XQuery to support updates has been recognized both in the research and the standards community. Several language proposals and prototype implementations have been put forward, and update language requirements are being defined within the W3C. Most proposals center around the use of update primitives applied to XQuery expressions, along with a variant of the FLWR loop construct binding variables within a block of basic update statements. In defining a precise semantics for such statements a number of issues arise: one must decide how conflicts among updates are to be resolved, and how query evaluation interacts with update application. In this work we provide a framework for defining alternative semantics for updates, and identify within this space what is (thus far) the consensus choice: that semantics involves a twostage execution process, in which query evaluation is performed first, after which a generated sequence of concrete updates is applied in a fixed order determined by query output. This results in a clean deterministic semantics which facilitates analysis. A drawback is that the evaluation of the language can be inefficient. One would prefer to perform updates eagerly before further evaluation, or to re-order the update operations. We focus on an optimization of the “standard semantics”, in which updates are performed as soon as they are generated. We present a static analysis for determining when this optimization can be exploited. Experiments on the implementation of this analysis, implemented on top of Galax, show that the overhead is minimal. 1







