Level DB --- MergingIterator

MergingIterator 是 Level DB中重要的类,在某一个level做多个file数据Compaction的时候,这多个file之间数据如何高效的组织和比较,这个时候用到了MergingIterator。

关键member & member function

MergingIterator继承了Iterator(Level DB --- Iterator-CSDN博客),它里面有一个数组children_,children_里面存储了多个file的Iterator(file的two_level_iterator, Level DB --- two_level_iterator-CSDN博客),

//计算children_里面值最小的iterator
void MergingIterator::FindSmallest()

//计算children_里面值最大的iterator
void MergingIterator::FindLargest() 

//将children_都置到迭代器的首位置
void MergingIterator::SeekToFirst()

//将children_都置到迭代器的尾位置
void MergingIterator::SeekToLast()

//在各个children_里面搜索target
void MergingIterator::Seek(const Slice& target)

//将children_中等于当前值key的迭代器置为到他们下一个迭代器
void MergingIterator::Next()

//将children_中等于当前值key的迭代器置为到他们前一个迭代器
void MergingIterator::Prev()

以上功能都是为了用于多个file做Compaction的时候进行相同数据的合并。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值