Database indices provide a non-discriminative navigational infrastructure to localize tuples of interest. Their maintenance cost is taken during database updates. In this paper, we study the complementary approach, addressing index maintenance as part of query processing using continuous physical reorganization, i.e., cracking the database into manageable pieces. The motivation is that by automatically organizing data the way users request it, we can achieve fast access and the much desired self-organized behavior. We present the first mature cracking architecture and report on our implementation of cracking in the context of a full fledged relational system. It led to a minor enhancement to its relational algebra kernel, such that cracking could be piggy-backed without incurring too much processing overhead. Furthermore, we illustrate the ripple effect of dynamic reorganization on the query plans derived by the SQL optimizer. The experiences and results obtained are indicative of a significant reduction in system complexity. We show that the resulting system is able to self-organize based on incoming requests with clear performance benefits. This behavior is visible even when the user focus is randomly shifting to different parts of the data.

G. Weikum , J. Hellerstein , M. Stonebraker
Databases for personalised ubiquitous intelligent devices
Biennial Conference on Innovative Data Systems Research
Database Architectures

Idreos, S, Kersten, M.L, & Manegold, S. (2007). Database cracking. In G Weikum, J Hellerstein, & M Stonebraker (Eds.), Proceedings of the Biennial Conference on Innovative Data Systems Research (CIDR) (pp. 68–78).