Issue No. 04 - July/August (1998 vol. 10)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/69.706059
<p><b>Abstract</b>—Transaction-time databases support access to not only the current database state, but also previous database states. Supporting access to previous database states requires large quantities of data and necessitates efficient temporal query processing techniques. In previous work, we have presented a log-based storage structure and algorithms for the differential computation of previous database states. Timeslices—i.e., previous database states—are computed by traversing a log of database changes, using previously computed and cached timeslices as outsets. When computing a new timeslice, the cache will contain two candidate outsets: an earlier outset and a later outset. The new timeslice can be computed by either incrementally updating the earlier outset or decrementally "downdating" the later outset using the log. The cost of this computation is determined by the size of the log between the outset and the new timeslice. This paper proposes an efficient algorithm that identifies the cheaper outset for the differential computation. The basic idea is to compute the sizes of the two pieces of the log by maintaining and using a tree structure on the timestamps of the database changes in the log. The lack of a homogeneous node structure, a controllable and high fill-factor for nodes, and of appropriate node allocation in existing tree structures (e.g., B<super>+</super>-trees, Monotonic B<super>+</super>-trees, and Append-only trees) render existing tree structures unsuited for our use. Consequently, a specialized tree structure, the Pointer-less Insertion tree, is developed to support the algorithm. As a proof of concept, we have implemented a main memory version of the algorithm and its tree structure.</p>
Transaction time, data models, snapshots, timeslice, incremental computation.
Leo Mark, Christian S. Jensen, Kristian Torp, "Efficient Differential Timeslice Computation", IEEE Transactions on Knowledge & Data Engineering, vol. 10, no. , pp. 599-611, July/August 1998, doi:10.1109/69.706059