# コプロセッサー - 続き

![`smart`](Coprocessor03_aa_002_2022051.png)

------------------------------------------------------------------------------
TiKVのコプロセッサーコンポーネントが完了するまで、SQL計算をTiKVにプッシュしました。そのワークフローは以下の通りです：

1. TiDBサーバーは、クエリ文を受け取り、解析し、物理的な実行計画を計算し、その後TiKVへのコプロセッサー要求を分解します。

2. TiDBサーバーは、データの分散に応じて、コプロセッサーリクエストを関連するすべてのTiKVノードに分散します。

3. TiKVサーバーは、コプロセッサーリクエストを受け取った後、要求されたオペレーターに従ってデータをフィルター処理、集約処理、その他の操作を行い、その結果をTiDBに返します。

4. TiDBは、すべてのデータの返答結果を受け取った後、二次集計を行い、最終結果を計算し、クライアントに返します。

TiKV コプロセッサーは現在、3つのカテゴリーのリクエストを処理しています。

- DAG: SQL文の結果を計算するために物理演算子を実行し、TiDBの計算とネットワークオーバーヘッドを減らします。これがコプロセッサーがほとんどのシナリオで実行するタスクであり、現在押し出されている物理演算子には、TableScan、IndexScan、Selection、Limit、TopN、Aggregationなどが含まれます。

- テーブルデータを分析し、テーブルデータの情報をカウントしてサンプリングし、TiDBのオプティマイザーに適用するために永続化します。

- データインポート後に一貫性チェックのためにテーブルデータの検証を行うチェックサム。

