# Tikv Data Reads Process


![left](./student-guide/diagram/08-Data-reading-process-01-01.png)
------------------------------------------------------------
- After the TiKV server receives a gRPC request, the Unified Read Pool is placed in different task queues based on priority and execution time:
  - If it is a KV Get check, the following actions will be performed after receiving this request
    - Get a snapshot from RocksDB
    - Use Point-lookup to obtain the corresponding key-value based on the snapshot. The Point-lookup data reading process is as follows:
      - If there is a Block Cache in RocksDB that caches data in memory, it is directly hit and return
      - If Block Cache doesn't hit then:
        - Traverse each layer of files down from L0 until the corresponding key-value is found:
        - from memtable, or from SST file if not found
        - Binary search for files containing this key (each file contains a range of keys. If the target key is not in this range, this file is skipped. In addition, L0 files may overlap, and all files in L0 need to be checked)
        - Check Bloom filter (Bloom Filters by Example), whether this file contains this key (in the previous step, whether the key may be located in this file is based on the scope of the file, for example, the scope of the A file is [1, 10). At this time, if the key is 11, then jump directly After this file, if the key is 5, this file may contain this return; this step uses the bloom filter to determine whether the key is included or not. You can use the previous step to explain that the key is in this range, this step checks whether this file contains this key, for example, the range of A is [1, 10), and the keys in it are (1,3,5,7,9), this time 6 falls in the range [1, 10), but is not included in this file)
