为什么ob的行列混存(micro block encoder)中变长数据是按照行存来组织的,只有定长数据是列存,这样的设计出发点是什么?

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】如题,为什么不设计成全列存?
【复现路径】问题出现前后相关操作
【问题现象及影响】

【附件】

行列混存本来也是一种trade-off吧。目前已经在做全列存了

变长数据做成行存的好处有哪些呢?提高tp性能吗

我理解这里的行列混存更多的是能够编码压缩来减少空间占用,变长不做成列存应该是做了一个[对查询带来的收益]与 [对写行/合并行的负收益]的trade-off。毕竟目前更多的场景是tp,真的需要列存的ap场景的话,直接单独做一个全列存的引擎明显收益更高

感谢解答!所以变长数据相较于定长数据带来的对写的副收益更大是吗

我的意思是变长数据做成现在定长列的存储方式,没有带来比较明显的收益

谢谢~明白了,您之前说的直接做成全列存面向ap场景是指macroblock级别的列存吗?

是的,即微块内存储的是某一列或者某一些列