1.TiKV 源码解析系列文章(十四)Coprocessor 概览
TiKV 源码解析系列文章(十四)Coprocessor 概览
本文将简要介绍 TiKV Coprocessor 的源译基本原理。TiKV Coprocessor 是码编 TiDB 的一部分,用于在 TiKV 层处理读请求。源译通过引入 Coprocessor,码编内网穿透源码TiKV 可以在获取数据后进行计算,源译从而提高性能。码编
传统处理方式中,源译TiDB 向 TiKV 获取数据,码编然后在 TiDB 内部进行计算。源译而 Coprocessor 则允许 TiKV 进行计算,码编将计算结果直接返回给 TiDB,源译采集卡对接源码减少数据在系统内部的码编传输。
Coprocessor 的源译概念借鉴自 HBase,其主要功能是码编对读请求进行分类,处理包括 TableScan、源译IndexScan、知识付费源码破解授权Selection、Limit、TopN、Aggregation 等不同类型请求。其中,创宇认证界面源码DAG 类请求是最复杂且常用的类型,本文将重点介绍。
DAG 请求是由一系列算子组成的有向无环图,这些算子在代码中称为 Executors。DAG 请求目前支持两种计算模型:火山模型和向量化模型。扩列聊天源码在当前的 TiKV master 上,这两种模型并存,但火山模型已被弃用,因此本文将重点介绍向量化计算模型。
向量化计算模型中,所有算子实现了 BatchExecutor 接口,其核心功能是 get_batch。算子类型包括 TableScan、IndexScan、Selection、Limit、TopN 和 Aggregation 等,它们之间可以任意组合。
以查询语句“select count(1) from t where age>”为例,展示了如何使用不同算子进行处理。本文仅提供 Coprocessor 的概要介绍,后续将深入分析该模块的源码细节,并欢迎读者提出改进意见。