# KV 与记录的多版本控制

__*MVCC*__

![`smart`](./student-guide/diagram/tidb-storage-region-raft-group-mvcc.drawio.png)

+ 比如,假设 **`p1`** 属于 **`Region 4`**:

-------------------------------------------------------------
- 以 Region 为单位做数据的分散和复制,TiKV 就成为了一个分布式的具备一定容灾能力的 `KeyValue` 系统,不用再担心数据存不下,或者是磁盘故障丢失数据的问题。
- TiKV 支持多版本一致性控制。设想这样的场景:两个客户端同时去修改一个 Key 的 `Value`,如果没有数据的多版本控制,就需要对数据上锁,在分布式场景下,可能会带来性能以及死锁问题。TiKV 的 `MVCC` 实现是通过在 Key 后面添加版本号来实现的。

