Data management applications store their data using structured files in which data are usually sorted to serve indexing and queries. However, in-place insertions and removals of data are not naturally supported in a file's address space. To avoid repeatedly rewriting existing data in a sorted file to admit changes in place, applications usually employ extra layers of indirections, such as mapping tables and logs, to admit changes out of place. However, this approach leads to increased access cost and excessive complexity. This paper presents a novel storage engine that provides a flexible address space, where in-place updates of arbitrary-sized data, such as insertions and removals, can be performed efficiently. With this mechanism, applications can manage sorted data in a linear address space with minimal complexity. Extensive evaluations show that a key-value store built on top of it can achieve high performance and efficiency with a simple implementation.
翻译:数据管理应用程序用结构化文件存储数据,这些文件通常对数据进行分类,以便为索引和查询服务。但是,在文件的地址空间中,输入和删除数据并不自然地得到支持。为了避免在分类文件中反复重写现有数据,以承认已发生的变化,应用通常使用额外的间接层,如绘图表和日志,以承认已发生的变化。然而,这种方法导致访问成本增加和过于复杂。本文展示了一个新的存储引擎,它提供了一个灵活的地址空间,可以在这里有效地更新任意大小的数据,如插入和清除。有了这个机制,应用程序可以以最简单的复杂性管理线性地址空间的分类数据。广泛的评估表明,在它上面建造的关键值仓库可以实现高性能和效率,并简单实施。