How does TiDB achieve repeatable read?

Note:
This topic has been translated from a Chinese forum by GPT and might contain errors.

Original topic: tidb是如何实现可重复读的?

| username: 江湖故人

I’m a bit confused after reading the documentation, hoping for some guidance from the experts.

| username: Jellybean | Original post link

MVCC is implemented through snapshot reads. It will only read the snapshot that was committed before the transaction started; subsequent committed transactions are not visible.

The function of snapshot reads is similar to the logical view created at the start of a transaction under MySQL’s RR level, maintaining visibility of the database state as it was at the beginning of the transaction.

| username: zhanggame1 | Original post link

TiDB’s MVCC means that during update, insert, and delete operations, a new row is inserted, and the transaction queries the original row.

| username: 春风十里 | Original post link

I recommend watching the official training videos, which are currently free - Distributed Transactions.
TiDB Database Core Principles and Architecture (101) (pingcap.com)

| username: Kongdom | Original post link

You can take a look here:

| username: dba远航 | Original post link

MVCC mechanism

| username: kelvin | Original post link

You can take a look at the interpretation of MVCC.

| username: 路在何chu | Original post link

Isolation level, RR.

| username: 哈喽沃德 | Original post link

By using the MVCC mechanism, efficient concurrency control and repeatable reads are achieved.