Traditionally, DBMSs separate their storage layer from their indexing layer. While the storage layer physically materializes the database and provides low-level access methods to it, the indexing layer on top enables a faster locating of searched-for entries. While this clearly separates concerns, it also adds a level of indirection to the already complex execution path. In this work, we propose an alternative design: Instead of conservatively separating both layers, we naturally fuse them by integrating an adaptive coarse-granular indexing scheme directly into the storage layer. We do so by utilizing tools of the virtual memory management subsystem provided by the OS: On the lowest level, we materialize the database content in form of physical main memory. On top of that, we allow the creation of arbitrarily many virtual memory storage views that map to subsets of the database having certain properties of interest. This creation happens fully adaptively as a side-product of query processing. To speed up query answering, we route each query automatically to the most fitting virtual view(s). By this, we naturally index the storage layer in its core and gradually improve the provided scan performance.
翻译:传统上, DBMS 将存储层与索引层分离。 虽然存储层实际实现了数据库,并提供了低水平访问方法, 但上层的索引层可以更快地查找搜索条目。 虽然这显然区分了关注, 但也为已经复杂的执行路径增加了间接程度。 在这项工作中, 我们提出一个替代设计: 我们不用保守地将两层分隔开来, 我们自然地通过将适应性粗皮指数化计划直接融入存储层而将它们结合在一起。 我们这样做的方法是利用OS提供的虚拟内存管理子系统的工具: 在最低层, 我们以物理主内存的形式将数据库内容化。 此外, 我们允许任意创建许多虚拟内存观点, 用于绘制数据库中具有一定兴趣属性的子集。 创建这些虚拟内存观点完全具有适应性, 作为查询处理的副产品 。 为了加速回答, 我们将每个查询自动连接到最合适的虚拟视图中。 通过这个方法, 我们自然地将存储层的存储层索引化为核心, 并逐渐改进所提供的扫描性能 。