TokuDB的底层存储结构为Fractal Tree。Fractal Tree的结构与B+树有所类似,只是在Fractal Tree中除了每一个指针key,都需要指向指向一个child节点,child节点带一个Message Buffer,这个Message Buffer 是一个先进先出队列,用来缓存更新操作,具体的数据结构如图。
这样,每一次插入操作都只需落在某节点的Message Buffer 上,就可以马上返回,并不需要搜索到叶子节点。这些缓存的更新操作会在后台异步合并并更新到对应节点上。
TokuDB在线添加索引,不影响读写操作,有非常高的写入性能,主要适用于要求写入速度快、访问频率不高的数据或历史数据归档。