当前位置: 首页 > backend >正文

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的时候进行相同数据的合并。

http://www.xdnf.cn/news/4029.html

相关文章:

  • Compose 中使用 WebView
  • 基于YOLOv的目标检测训练数据构建方法研究—图像采集、标注、划分与增强一体化流程设计
  • Softmax回归与单层感知机对比
  • 【platform push 提示 Invalid source ref: HEAD】
  • 双目视觉的核心目标
  • NGINX 的 ngx_http_auth_jwt_module模块
  • 模块方法模式(Module Method Pattern)
  • JavaScript 实现输入框的撤销功能
  • 算力经济模型推演:从中心化到去中心化算力市场的转变(区块链+智能合约的算力交易原型设计)
  • Python项目源码57:数据格式转换工具1.0(csv+json+excel+sqlite3)
  • C++ 类与对象(下)—— 进阶特性与底层机制解析(构造函数初始化,类型转换,static成员,友元,内部类,匿名对象)
  • 基于 HTML 和 CSS 实现的 3D 翻转卡片效果
  • WebRTC 服务器之SRS服务器概述和环境搭建
  • 【算法笔记】动态规划基础(二):背包dp
  • TopK题-快速选择方法
  • 数据结构实验8.1:图的基本操作
  • 联邦学习的深度解析,有望打破数据孤岛
  • 005-nlohmann/json 基础方法-C++开源库108杰
  • Sim Studio 是一个开源的代理工作流程构建器。Sim Studio 的界面是一种轻量级、直观的方式,可快速构建和部署LLMs与您最喜欢的工具连接
  • 网络安全自动化:找准边界才能筑牢安全防线
  • 数据结构中 数组、链表、图的概念
  • 深入理解CSS盒子模型
  • 如何使用QWidgets设计一个类似于Web Toast的控件?
  • 【Java ee初阶】多线程(5)
  • Electron 架构详解:主进程与渲染进程的协作机制
  • [低代码 + AI] 明道云与 Dify 的三种融合实践方式详解
  • FreeRTOS菜鸟入门(十一)·信号量·二值、计数、递归以及互斥信号量的区别·优先级翻转以及继承机制详解
  • 英伟达语音识别模型论文速读:Token-and-Duration Transducer(TDT)架构
  • Android 控件CalendarView、TextClock用法
  • Notebook.ai 开源程序是一套工具,供作家、游戏设计师和角色扮演者创建宏伟的宇宙 - 以及其中的一切