tidb的一个key最终落到rocksdb都经历哪些变化?

主要是想了解下一个tidb的key最终落到rocksdb是什么样子的。
比如说:key 查找region后,增加时间戳,变成 key+ts, 又有mvcc之类的。
看到tikv代码里面还有 DATA_PREFIX,这是给每个key都加上的吗?

有没有类似的文章介绍的?看代码也能找到,就是慢点。

推荐看主篇文档,详细介绍了你想知道的部分:

https://docs.pingcap.com/zh/tidb/stable/tidb-best-practices
https://pingcap.com/zh/blog/tidb-internal-1
https://pingcap.com/zh/blog/tidb-internal-2
https://pingcap.com/zh/blog/tidb-internal-3

计算、存储、调度都是相关的,不能拆开看,否则会有遗漏的

以上最好参考代码来思考,希望对你有所帮助

1 个赞

internals.tidb.io上问了,有大佬回答了。搬过来答案供其他人参考。

https://github.com/facebook/mysql-5.6/wiki/MyRocks-record-format#memcomparable-format

https://github.com/facebook/mysql-5.6/wiki/MyRocks-record-format#memcomparable-format

在apply阶段添加的
https://github.com/tikv/tikv/blob/68f99ae034376f5629d80fa7712796a61dc5d50e/components/raftstore/src/store/fsm/apply.rs#L1601

推荐看主篇文档,详细介绍了你想知道的部分:

https://docs.pingcap.com/zh/tidb/stable/tidb-best-practices
[三篇文章了解 TiDB 技术内幕 - 说存储 | PingCAP
三篇文章了解 TiDB 技术内幕 - 说计算 | PingCAP
三篇文章了解 TiDB 技术内幕 - 谈调度 | PingCAP

我也学习学习

:+1::+1::+1:

不同情况下,key的格式不一样,你可以先看看tidb的数据存储形式相关内容。

也学习了:wave:

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。