Waves of misery is a phenomenon where spikes of many node splits occur over short periods of time in tree indexes. Waves of misery negatively affect the performance of tree indexes in insertion-heavy workloads.Waves of misery have been first observed in the context of the B-tree, where these waves cause unpredictable index performance. In particular, the performance of search and index-update operations deteriorate when a wave of misery takes place, but is more predictable between the waves. This paper investigates the presence or lack of waves of misery in several R-tree variants, and studies the extent of which these waves impact the performance of each variant. Interestingly, although having poorer query performance, the Linear and Quadratic R-trees are found to be more resilient to waves of misery than both the Hilbert and R*-trees. This paper presents several techniques to reduce the impact in performance of the waves of misery for the Hilbert and R*-trees. One way to eliminate waves of misery is to force node splits to take place at regular times before nodes become full to achieve deterministic performance. The other way is that upon splitting a node, do not split it evenly but rather at different node utilization factors. This allows leaf nodes not to fill at the same pace. We study the impact of two new techniques to mitigate waves of misery after the tree index has been constructed, namely Regular Elective Splits (RES, for short) and Unequal Random Splits (URS, for short). Our experimental investigation highlights the trade-offs in performance of the introduced techniques and the pros and cons of each technique.
翻译:悲惨的浪潮是一种现象,许多节点分裂的浪潮在树类指数的短短时间里发生。痛苦的浪潮对树类指数的效绩产生消极影响。 在B树中首先观察到了苦难的浪潮,这些浪潮造成无法预测的指数性能。特别是,当痛苦浪潮发生时,搜索和指数更新行动的表现会恶化,但在波浪之间更可预测。本文调查了几个R树类变异体中存在或缺乏痛苦浪潮的情况,并研究了这些波浪对每个变异体的性能的影响程度。有趣的是,虽然在B树类中,对树类和Quauratric R树的性能考量表现较差,但发现比Hilbert和R*树类的性能都更能。本文介绍了一些技术来减少对Hilbert和R*树类痛苦浪潮的性能的影响。消除痛苦浪潮的一种方法是在节点完全开始之前经常发生节点分裂,并研究这些波流影响每个变异性表现的程度。 有趣的是,对于定期性平整的S级和Quarrial R树类的性表现并没有造成一种分化。