# Raft 日志复制 

__*Committed*__

+ Propose
+ Append
+ Replicate
  + Append
+ **Committed**
+ Apply
  
![`smart`](./student-guide/diagram/RaftLogReplication06_aa_001_20220511.png)
-------------------------------------------------------------
TiKV 节点实际上是将数据分层包装起来的, 这个有点类似于 TCP/IP 的七层协议。

比如图中, 最底层是 RocksDB Raft 和 RocksDB KV 两个存储 Raft Log 和 KV 数据的数据存储层，上面是 Raft 层, Raft 层上面是 MVCC 层, 在 MVCC 层上我们又包装了 Transaction 层。在 Transaction 层上才是我们应用程序的事务 committed。那么, 上面说的 committed 其实是 Raft 层上的动作, 代表了 Raft Log 已经被持久化到了 TiKV 节点中, 也就是 RocksDB Raft 中了。