关于_rowsets_enabled的作用域

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】5.7.25-OceanBase_CE-v4.0.0.0
【问题描述】
有如下几个问题不是很清楚,请教下:
问题 1:是否可以理解在开启_rowsets_enabled后又传统的火山模型进行了向量化,也就是又原来的每次处理一行变为一次处理一批数据(受_rowsets_max_rows控制)?
问题2:如果是受_rowsets_max_rows(默认256行一个批)控制,那么这个值是处理的最大值么?是规则1:当需要处理的行小于_rowsets_max_rows的时候则一个批次处理所有行,如果大于256行时候则按照_rowsets_max_rows处理呢,还是规则2:存在初始值且翻倍处理,比如第一次处理2行,第二次处理4,第三次处理16,大于_rowsets_max_rows后按照_rowsets_max_rows一批处理:?
问题3:这个_rowsets_enabled作用域是在SQL引擎部分也就是从kvcache获取数据到ob_sql_work_area后,在算子处理数据的时候才是向量的,在kvcache检索数据时候和_rowsets_enabled没关系吧?

  1. 是的,这个开关是用来控制是否做向量化执行的。
  2. _rowsets_max_rows是一次迭代处理的最大向量宽度。规则1的方式。
  3. 查询存储层的时候,也是向量化的,一次处理一批。

明白,简单扼要清晰,谢谢大佬!