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.
翻译:在本文中,我们重新审视了如何在外部记忆中定义搜索树的动态最佳性的问题。外部模拟数据结构的一个明确特征是,在查询和插入/更新/删除之间存在着明显的不对称性:通过使前者稍微的微弱微微微微的微弱微微微反应速度,人们可以使后者大大加快速度(即使允许以次连续摊销 I/Os 进行操作)。这种不对称性使得基于旋转的搜索树在插入/更新/更新/超重外部模拟工作量中不是最佳的(甚至接近于最佳 ) 。为了研究这些工作量的动态最佳性,我们必须考虑不同的数据结构类别。要考虑的自然数据结构类别是我们称之为的缓冲-调整树。这些树可以动态适应输入序列的地点特性,以便优化不同插入/更新/删除和查询者之间的相互作用。我们还提出了一种新的超临界式分析形式,让我们能够正式地研究一个固定和最优化的自然动态结构,最后是我们确定的最佳动态和最优化的动态数据结构。