oceanbase组件oblogproxy日志包含大量rocksdb信息

【 使用环境 】 测试环境
【 OB or 其他组件 】 oceanbase and oblogproxy
【 使用版本 】
【问题描述】 (根据 OceanBase 存储引擎详解 OceanBase 社区)的详解,ob 和rocksdb 是没有关系的。
但是oblogproxy 日志里含有大量rockdb的信息
ob 既然和rocksdb 没关系,为啥有那么多和rocksdb 相关的日志呢????
2024/09/20-11:04:53.042313 7fe9d83f9700 [db/db_impl/db_impl.cc:712] STATISTICS:

rocksdb.block.cache.miss COUNT : 0

rocksdb.block.cache.hit COUNT : 0

rocksdb.block.cache.add COUNT : 0

rocksdb.block.cache.add.failures COUNT : 0

rocksdb.block.cache.index.miss COUNT : 0

rocksdb.block.cache.index.hit COUNT : 0

rocksdb.block.cache.index.add COUNT : 0

rocksdb.block.cache.index.bytes.insert COUNT : 0

rocksdb.block.cache.index.bytes.evict COUNT : 0

rocksdb.block.cache.filter.miss COUNT : 0

rocksdb.block.cache.filter.hit COUNT : 0

rocksdb.block.cache.filter.add COUNT : 0

rocksdb.block.cache.filter.bytes.insert COUNT : 0

rocksdb.block.cache.filter.bytes.evict COUNT : 0

rocksdb.block.cache.data.miss COUNT : 0

rocksdb.block.cache.data.hit COUNT : 0

rocksdb.block.cache.data.add COUNT : 0

rocksdb.block.cache.data.bytes.insert COUNT : 0

rocksdb.block.cache.bytes.read COUNT : 0

rocksdb.block.cache.bytes.write COUNT : 0

rocksdb.bloom.filter.useful COUNT : 0

rocksdb.bloom.filter.full.positive COUNT : 0

rocksdb.bloom.filter.full.true.positive COUNT : 0

rocksdb.bloom.filter.micros COUNT : 0

rocksdb.persistent.cache.hit COUNT : 0

rocksdb.persistent.cache.miss COUNT : 0

rocksdb.sim.block.cache.hit COUNT : 0

rocksdb.sim.block.cache.miss COUNT : 0

rocksdb.memtable.hit COUNT : 0

rocksdb.memtable.miss COUNT : 0

rocksdb.l0.hit COUNT : 0

rocksdb.l1.hit COUNT : 0

rocksdb.l2andup.hit COUNT : 0

rocksdb.compaction.key.drop.new COUNT : 0

rocksdb.compaction.key.drop.obsolete COUNT : 0

rocksdb.compaction.key.drop.range_del COUNT : 0

rocksdb.compaction.key.drop.user COUNT : 0

rocksdb.compaction.range_del.drop.obsolete COUNT : 0

rocksdb.compaction.optimized.del.drop.obsolete COUNT : 0

rocksdb.compaction.cancelled COUNT : 0

rocksdb.number.keys.written COUNT : 0

rocksdb.number.keys.read COUNT : 0

rocksdb.number.keys.updated COUNT : 0

rocksdb.bytes.written COUNT : 0

rocksdb.bytes.read COUNT : 0

rocksdb.number.db.seek COUNT : 0

rocksdb.number.db.next COUNT : 0

rocksdb.number.db.prev COUNT : 0

rocksdb.number.db.seek.found COUNT : 0

rocksdb.number.db.next.found COUNT : 0

rocksdb.number.db.prev.found COUNT : 0

rocksdb.db.iter.bytes.read COUNT : 0

rocksdb.no.file.closes COUNT : 0

rocksdb.no.file.opens COUNT : 0

rocksdb.no.file.errors COUNT : 0

rocksdb.l0.slowdown.micros COUNT : 0

rocksdb.memtable.compaction.micros COUNT : 0

rocksdb.l0.num.files.stall.micros COUNT : 0

rocksdb.stall.micros COUNT : 0

rocksdb.db.mutex.wait.micros COUNT : 0

rocksdb.rate.limit.delay.millis COUNT : 0

rocksdb.num.iterators COUNT : 0

rocksdb.number.multiget.get COUNT : 0

rocksdb.number.multiget.keys.read COUNT : 0

rocksdb.number.multiget.bytes.read COUNT : 0

rocksdb.number.deletes.filtered COUNT : 0

rocksdb.number.merge.failures COUNT : 0

rocksdb.bloom.filter.prefix.checked COUNT : 0

rocksdb.bloom.filter.prefix.useful COUNT : 0

rocksdb.number.reseeks.iteration COUNT : 0

rocksdb.getupdatessince.calls COUNT : 0

rocksdb.block.cachecompressed.miss COUNT : 0

rocksdb.block.cachecompressed.hit COUNT : 0

rocksdb.block.cachecompressed.add COUNT : 0

rocksdb.block.cachecompressed.add.failures COUNT : 0

rocksdb.wal.synced COUNT : 0

rocksdb.wal.bytes COUNT : 0

rocksdb.write.self COUNT : 0

rocksdb.write.other COUNT : 0

rocksdb.write.timeout COUNT : 0

rocksdb.write.wal COUNT : 0

rocksdb.compact.read.bytes COUNT : 0

rocksdb.compact.write.bytes COUNT : 0

rocksdb.flush.write.bytes COUNT : 0

rocksdb.compact.read.marked.bytes COUNT : 0

rocksdb.compact.read.periodic.bytes COUNT : 0

rocksdb.compact.read.ttl.bytes COUNT : 0

rocksdb.compact.write.marked.bytes COUNT : 0

rocksdb.compact.write.periodic.bytes COUNT : 0

rocksdb.compact.write.ttl.bytes COUNT : 0

rocksdb.number.direct.load.table.properties COUNT : 0

rocksdb.number.superversion_acquires COUNT : 0

rocksdb.number.superversion_releases COUNT : 0

【复现路径】部署oblogproxy ,开启增量订阅

【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

3 个赞

您的问题可能存在误解,实际上据我所知,OceanBase 的存储引擎确实不是基于 RocksDB 实现的。然而,oblogproxy 作为一个增量日志代理服务,它的作用是从 OceanBase 集群中拉取增量日志,并为下游服务提供变更数据捕获(CDC)的能力 [4]。这意味着 oblogproxy 的实现可能依赖于某些第三方库或者组件,这些组件内部可能使用了 RocksDB 或者类似的技术来优化自身的性能或存储机制。因此,即使 oblogproxy 的日志中出现了大量与 RocksDB 相关的信息,这也并不意味着 OceanBase 的存储引擎依赖于 RocksDB。

具体到您提到的日志信息,这些日志可能是 oblogproxy 所依赖的某个组件(例如 libobcdc)内部使用 RocksDB 时产生的统计信息。libobcdc 是 oblogproxy 的基础组件之一,它负责从 OceanBase 集群中拉取增量日志并按照事务提交顺序向外透出 [2]。如果 libobcdc 或其相关的组件使用了 RocksDB 来处理或缓存某些数据,那么这些 RocksDB 相关的日志就会出现在 oblogproxy 的日志中。

综上所述,虽然 OceanBase 的存储引擎与 RocksDB 无关,但 oblogproxy 作为增量日志代理服务,其内部实现或依赖的组件可能会使用 RocksDB,从而导致日志中出现大量与 RocksDB 相关的信息。如果您希望进一步了解 oblogproxy 的具体实现细节,建议查阅 oblogproxy 的源码或联系 OceanBase 技术支持获取更多信息。

更多信息请查看:

  1. CDC 概述
  2. 使用 Canal 从 OceanBase 数据库同步数据到 MySQL 数据库
  3. 使用 Flink CDC 从 OceanBase 数据库迁移数据到 MySQL 数据库
  4. OceanBase 日志代理服务(OBLogProxy)
  5. 产品 FAQ
  6. ODP 管理概述
  7. 数据链路概述
  8. 数据链路介绍
1 个赞

跟小助手回答的类似,oblogproxy 使用了 libobcdc,在拉取日志时有 memory 和 storage 两种模式,storage 模式目前是引用了 rocksdb 库的。

2 个赞