In [WF97,WFF98a,WFF98b] we describe the language ULTRA that has been designed for the specification of database updates in a modular, rule-based fashion. We provide a model-theoretic semantics based on deferred updates, which means that update requests are determined and collected in an evaluation phase without changing the database state and the corresponding updates are performed in a subsequent materialization phase. As shown in [WFF98a,WFF98b], the semantics can be implemented using an optimistic transaction processing method. From a practical point of view, however, a straightforward implementation of the logical semantics is not satisfactory. In this paper we describe some of the arising problems and outline a flexible system architecture, which can serve as a framework for the implementation. Basic updates are performed (and even committed) on an underlying database system simultaneously with the logical evaluation of the ULTRA transactions. Recovery is done by issuing compensating operations in case of failure. Although the architecture appears to be rather different from the logical concepts at a first glance, we actually stay close to the logical semantics and can exploit a significant amount of the evaluation flexibility provided by the LOLA system [ZF97]. In particular, we are not tied to a pure top-down evaluation with backtracking.
Erika Cetindag, Martin Griebl