Performance predictability is critical for modern DBMSs because index maintenance can trigger rare but severe I/O spikes. In a B or B+-tree with height H, node split propagation means the cost of a single insert can vary from H + 1 to 3H + 1 I/Os when splits reach the root, nearly a three times degradation. We formalize performance fluctuation as the gap between best- and worst-case insert behavior and introduce the notions of safe and critical nodes to capture when splits become unavoidable. We introduce the FFBtree, a B+-tree insert algorithm that preemptively splits some critical nodes, and prove that when navigating from root to leaf the insert algorithm will encounter at most one critical node that must be split, ensuring no split propagation can occur and producing fluctuation-free performance. Our implementation maintains critical-node metadata efficiently and integrates with optimistic lock coupling for concurrency. Experiments with simulated indexes show the FFBtree caps I/O fluctuation by eliminating split propagation and consistently reduces insert spikes compared to conventional baselines, and real-index experiments confirm comparable improvements.
翻译:性能可预测性对现代数据库管理系统至关重要,因为索引维护可能引发罕见但严重的I/O尖峰。在高度为H的B树或B+树中,节点分裂传播意味着单次插入的I/O成本可能从H+1到3H+1不等(当分裂传递至根节点时),性能下降近三倍。我们将性能波动形式化为最佳与最差插入行为之间的差距,并引入安全节点与关键节点的概念来描述分裂不可避免的情形。本文提出FFBtree——一种通过主动分裂关键节点的B+树插入算法,并证明在从根节点遍历至叶节点的过程中,该算法最多只会遇到一个必须分裂的关键节点,从而确保不会发生分裂传播,实现无波动的性能。我们的实现方案能高效维护关键节点元数据,并与乐观锁耦合机制集成以支持并发操作。模拟索引实验表明,FFBtree通过消除分裂传播有效限制了I/O波动,相较于传统基线方法持续降低插入尖峰;真实索引实验也验证了可比的改进效果。