# Mvcc (Continue...)

![left](./student-guide/diagram/MVCC02_aa_001_20220511.png)

------------------------------------------------------------
So how does the MVCC mechanism work? When the TSO is 120 (start_st = 120), we start a query with the values of key = 1, key = 2, key = 4.

First, we will have 2 pointers to scan Write CF and Lock CF from scratch. In Write CF, we scan KEY = 1_110 (user key = 1, committed TSO is 110), and in Lock CF we also locate KEY = 1. This lock is obviously a transaction that has not been committed Yes, we ignored it. Since the values that have been committed are recorded in Write CF, and are based on time from near to far, KEY = 1_110 in Write CF is the most recent commit with a TSO of 120, so we follow KEY = 1_110, VALUE = 100 in Write CF, DEFAULT CF found the value KEY = 1_100, VALUE = Jack.