# Coprocessor (Continue...)

![left](./student-guide/diagram/03-Coprocessor-01-03.png)

------------------------------------------------------------
Let's take a look at the figure below. We pushed the SQL calculation down to TiKV, which is done by the Coprocessor component of TiKV, and its workflow is as follows:
  - TiDB Server receives the query statement, analyzes the statement, calculates the physical execution plan, and then decomposes the TiKV coprocessor request.
  - TiDB Server distributes the coprocessor request to all relevant TiKVs based on the distribution of the data.
  - After receiving the coprocessor request, the TiKV Server filters and aggregates the data according to the request operator, and return it to TiDB.
  - After receiving the return results of all the data, TiDB performs a second aggregation, calculates the final result, and return it to the client.

There are currently 3 types of requests handled by the TiKV Coprocessor:
  - DAG: Executes physical operators to compute intermediate results for SQL, reducing the computational and network overhead of TiDB. This is the task performed by the coprocessor in most scenario. Currently, the physical operators pushed down include: TableScan, IndexScan, Selection (column filtering), limit, TopN, Aggregation, etc.
  - Analyze: Analyze table data, statistics, sample table data information, and be used by TiDB's optimizer after persistence.
  - checkSum: Validates table data and is used to check consistency after importing data.