During the execution of a transaction, two timestamps need to be obtained from PD. The start_ts is used to determine which version of the data to read, and the commit_ts is used to update the version of the written data.
I would like to ask what is the necessity of commit_ts, and why not directly use start_ts to update the version of the written data?
commit_ts is used for concurrency processing to compare which submitted data is newer.
start_ts is used to read data at a certain point in time. According to the understanding of MVCC, each piece of data will be different at different points in time, so a specific version must be specified…
I suggest you read the TiDB transaction-related content: