# Reads Execution (Continued)
__*DistSQL*__
__*KV*__

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

------------------------------------------------------------
Second, the execution plan is passed through the DistSQL module and converted into simple select queries one by one, that is, the execution plans that may contain complex operators such as JOIN and SUBQUERY are abstracted and wrapped into multiple single-table query calculation tasks. After that, it is sent as a request to the lower TiKV Coprocessor via the TiKV Client. Note that one request may involve queries from multiple Region on multiple TiKVs, so the DistSQL module can send request in parallel.

After TiKV receives the request, it will first create a snapshot (snapshot), that is, the data structure of a specific point in time. The queried data must be the closest to this point in time, but not newer than this point in time.
Next, the thread pool will read data from RocksDB KV. You can refer to Lesson 03: "RocksDB - Query", "Read Data - ReadIndex Read", and "Read Data - Lease Read for RocksDB for TiKV Explained in "/Local Read" and "Data Reading - Follower Read".

At this point, the data request by the DistSQL module has been read from the TiKV where it resides.

In addition, we note that if your SQL statement meets the PointGet condition we mentioned earlier, then the save processing of the SQL statement is not the DistSQL module, but the KV module, which is specifically responsible for this kind of request to find the value directly based on the key.