论文标题

动态最优在外部内存中意味着什么?

What Does Dynamic Optimality Mean in External Memory?

论文作者

Bender, Michael A., Farach-Colton, Martín, Kuszmaul, William

论文摘要

在本文中,我们回顾了如何在外部内存中定义搜索树的动态最优性的问题。外部内存数据结构的一个定义特征是,查询和插入/更新/删除之间存在鲜明的不对称性:通过使前者略微差异较慢,人们可以使后者更快地渐近(即使允许使用子恒定摊销amortized I/OS进行操作)。这种不对称性使得基于旋转的搜索树在插入/update/delete heavy外部内存工作负载中并不是最佳(甚至接近最佳)。为了研究此类工作量的动态最优性,必须考虑不同类别的数据结构。 要考虑的自然数据结构类别是我们所说的缓冲propapagation树。这样的树可以动态地适应输入序列的局部属性,以优化不同插入/更新/删除和查询之间的交互。我们还提出了一种新形式的超越案例分析,使我们能够正式研究静态和动态最优性之间的连续性。最后,我们提供了一种新颖的数据结构,称为\ jellotree,这在静态上是最佳的,并且可以为我们的超越案例分析定义的大型自然输入而实现动态最优性。

In this paper, we revisit the question of how the dynamic optimality of search trees should be defined in external memory. A defining characteristic of external-memory data structures is that there is a stark asymmetry between queries and inserts/updates/deletes: by making the former slightly asymptotically slower, one can make the latter significantly asymptotically faster (even allowing for operations with sub-constant amortized I/Os). This asymmetry makes it so that rotation-based search trees are not optimal (or even close to optimal) in insert/update/delete-heavy external-memory workloads. To study dynamic optimality for such workloads, one must consider a different class of data structures. The natural class of data structures to consider are what we call buffered-propagation trees. Such trees can adapt dynamically to the locality properties of an input sequence in order to optimize the interactions between different inserts/updates/deletes and queries. We also present a new form of beyond-worst-case analysis that allows for us to formally study a continuum between static and dynamic optimality. Finally, we give a novel data structure, called the \jellotree, that is statically optimal and that achieves dynamic optimality for a large natural class of inputs defined by our beyond-worst-case analysis.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源