TiKV的rocksdb raft与rocksdb kv region之间是如何工作的?

【 TiDB 使用环境】生产\测试环境\ POC
【 TiDB 版本】
【遇到的问题】
【复现路径】做过哪些操作出现的问题
【问题现象及影响】

可以参考这个帖子

是否rocksdb raft是存储TiKV Leader的wal日志的,同时通过raft协议同步wal到follower的rocksdb raft,然后apply到rocksdb kv region?

那么raft协议存在于TiKV节点的rocksdb raft之间,而非rocksdb kv region之间吗?

顺序反啦。先通过raft log复制数据到多数派,然后再到写kvdb这里,这时写memtable的时候会写wal

raft存在于同一个region的多个副本之间,每个region是相互独立的raft group

那么请问下 memtable 和 Immutable Memtable 都是存在于rocksdb kv中?

memtable 和 Immutable Memtable都是RocksDB的内存组件

每个TiKV节点有2个rocksdb实例,也就是TiKV节点的rocksdb raft实例与rocksdb kv region实例,且都有自己的WAL,memtable 和 Immutable Memtable等组件,听课程讲的是各TiKV节点的rocksdb raft实例之间通过
raft协议同步事务操作日志保证分布式一致性,之后apply到rocksdb kv region实例,那么rocksdb kv region实例之间是否也有raft协议?

每个TiKV节点有2个rocksdb实例,也就是TiKV节点的rocksdb raft实例与rocksdb kv region实例,且都有自己的WAL,memtable 和 Immutable Memtable等组件,听课程讲的是各TiKV节点的rocksdb raft实例之间通过
raft协议同步事务操作日志保证分布式一致性,之后apply到rocksdb kv region实例,那么rocksdb kv region实例之间是否也有raft协议?

整个raft过程里面,rocksdb raft和rocksdb kv都要参与,其中最后一步apply,就是把rocksdb raft中的raft log,应用到rocksdb kv上,这时整个raft流程才结束