Iterator: 迭代器,用户使用迭代器按排序顺序查询范围内的key。 Point lookup: 点查询,在RocksDB中,点查找是指使用Get()读取一个键。 Range lookup: 范围查找,范围查找意味着使用迭代器读取一系列键。 SST File(Data file 数据文件/SST table SST表): SST代表分类序列表。它们是存储数据的持久性文件。在文件中,key是有序的,以便于二分搜索来识别key或迭代位置。 RocksDB是一个高性能、嵌入式的键值存储系统,广泛应用于大数据和实时分析场景。它基于LSM树(Log-Structured Merge-Tree)数据结构,提供了多种查询方式和优化策略,确保高效的数据读写。以下是对RocksDB关键术语的详细解释: 1. **迭代器(Iterator)**:迭代器是RocksDB提供的主要查询工具,允许用户按照键的排序顺序查询范围内的键值对。通过迭代器,用户可以高效地遍历和访问数据。 2. **点查询(Point lookup)**:点查询使用`Get()`函数,根据键值快速定位并读取单个数据项。这种查询方式适用于已知键的情况,效率较高。 3. **范围查找(Range lookup)**:范围查找利用迭代器读取一系列键值对,适合于需要获取特定区间数据的场景。 4. **SST文件(SST File)**:Sorted String Table,数据文件或SST表,是RocksDB中存储数据的持久化文件。文件内的键值是有序的,便于二分查找,支持高效的数据检索。 5. **索引(Index)**:SST文件中的数据块索引,用于快速定位数据块,一般采用二分搜索。在RocksDB中,还有分区索引(Partitioned Index),将索引块分割为多个小块,提高查询性能。 6. **LSM树(Log-Structured Merge-Tree)**:RocksDB的底层数据结构,所有写操作先写入内存中的Memtable,再定期刷入磁盘上的SST文件,通过定期的压缩操作保持数据的有序性。 7. **Write-Ahead-Log (WAL)**:预写式日志,记录未持久化的数据变更,用于故障恢复,确保数据一致性。 8. **Memtable/Write Buffer**:内存缓冲区,存储最近的写入数据,有序且带有二分搜索索引,当达到一定大小时会被刷新到磁盘。 9. **Memtable Switch**:切换Memtable的过程,当前活动Memtable变为不可变,同时新的Memtable开始接收写入。 10. **Immutable Memtable**:不可变Memtable,等待被刷入SST文件的已关闭Memtable。 11. **Sequence Number**:每次写入时自动增加的ID,用于追踪数据变更,支持快照读取、垃圾回收等。 12. **恢复(Recovery)**:在系统崩溃或重启后,通过WAL和SST文件恢复数据库到最近一致状态的过程。 13. **Flush**:将Memtable中的数据写入SST文件的后台操作,是数据持久化的步骤。 14. **压缩(Compaction)**:合并和优化SST文件的过程,减少磁盘空间占用,提高读取性能。 15. **Level Compaction**:基于层的压缩策略,RocksDB的默认设置,不同级别的SST文件大小和数量都有所限制,以平衡读写性能和存储空间。 16. **Comparator**:用户可自定义的比较器,用于决定键的排序顺序。 17. **Column Family**:列族,RocksDB中的独立键空间,不同列族可以有不同的属性和压缩策略。 18. **快照(Snapshot)**:在数据库运行时提供的一致性视图,用于实现并发控制和一致性读取。 19. **检查点(Checkpoint)**:数据库在文件系统中的物理复制,用于备份或迁移。 20. **备份(Backup)**:RocksDB提供的工具,将数据库状态备份到其他位置,如HDFS。 21. **Version**:RocksDB内部概念,一个版本由某个时间点的活动SST文件集合构成,每次刷新或压缩后会创建新版本。 22. **Super Version**:包含SST文件列表和活动Memtable列表的超版本,每次Memtable切换或压缩时更新。 23. **Block Cache**:内存缓存,用于存放SST文件的热点数据块,提高读取速度。 24. **Statistics**:实时统计信息,记录数据库的运行状态,如读写次数、延迟等。 25. **Perf Context**:性能上下文,跟踪线程本地的统计信息,用于度量查询性能。 26. **DB Properties**:可通过`DB::GetProperty()`获取的数据库运行状态信息。 27. **Table Properties**:存储在每个SST文件中的元数据,包括系统和用户定义的属性,反映表格的特性。 28. **Write Stall**:写阻塞,当数据库的写入速度超过其处理能力时发生,可能导致写操作暂停。RocksDB通过不同的策略来管理和避免这种情况,如调整WAL大小、触发压缩等。
- 粉丝: 14
- 资源: 45
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助