在磁盘上移动数据时,分形树索引如何执行?

JnB*_*ymn 5 memory indexing data-structures

我正在学习分形树索引,例如在TokuDB中找到的索引.我很着迷它通过在大多数时间写入CPU缓存来快速写入的策略,并且很少写出较慢的RAM内存.但是,分形树索引最终必须对RAM进行大写操作,然后巨人写入磁盘然后完全在磁盘上完全写入.在这里我感到困惑.分形树索引可以有效地做到这一点吗?比起B树可以更有效地在最坏情况更新中更新磁盘?此外,巨大的磁盘重写会对该数据的查找时间产生什么影响?而且,反之亦然,对这些数据进行多次查看对巨型重写的过程有什么影响?

作为回答此问题的背景,您应该知道:

  • 我在幻灯片演示中学到的关于分形树索引的所有知识
  • 对于旋转式中型硬盘的工作原理,我没有一个好的心理模型.
  • 当我说"巨型重写"时,基本上会发生的是你有两个相同长度(大小2^largeNumber)的排序数组,你把它们写成一个2^(largeNumber+1)排序的单个数组(大小).

tmc*_*han 4

我建议您在http://www.youtube.com/watch?v=88NaRUdoWZM观看我的视频,这可能会让您更好地了解分形树索引的工作原理。当索引不适合主存时,分形树索引能够缓冲大量消息,当缓冲区溢出时,这些消息会缓慢地向下推树。当它们最终到达叶节点时,有一个 IO 来检索叶节点并应用所有消息。分形树索引的写入 IO 显着减少,因为它们在单个 IO 上聚合许多操作,并且写入被高度压缩。由于读取高度压缩的数据,读取 IO 也显着减少。

我不确定这是否完全回答了您的问题,但希望它有所帮助。