array_to_bitmap极限处理能力问题

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】看源码发现这个函数的实现上,使用的是拿到该列所有的行,然后拼成一个大数组,然后通过偏移量获取每行对应数组中的元素方式来挨个处理

然后我看到他这边对于 offset 使用了uint32_t 类型, 那如果我这个 tableA表有 100 亿行,平均分布在两个 tablet 中,每个 tablet 分 50 亿行数据,且 col1 数组中都只有一个元素,那么到这个 offset 的时候,值就会超过 43 亿,应该会溢出才对;但是我实际生产实验数据时候发现,并没有这样的问题,这个array_to_bitmap 函数,应该是每个 tablet 上执行一次吧,所以里面的 size 应该是 50 亿行,对应的 offsets 存储的也是这 50 亿行的相关偏移量,请问这个是我理解上出问题了吗?

【业务影响】否
【是否存算分离】否
【StarRocks版本】例如:2.5.13
【集群规模】例如:3fe(1 follower+2observer)+5be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,例如:48C/64G/万兆

想要达到这个溢出需要array的长度超过4亿。比如一行长度为4亿的array

感谢回复,应该是我理解错了,我之前以为是每个 tablet 都会触发一个array_to_bitmap实例,然后里面的 size 长度是这个 tablet 中的条数,然后 offset 变量会到达 size 这个大小(如果数组都是单元素);
实际上,是不是处理的时候是 chunk 为单位的, array_to_bitmap 函数会在每个 chunk 上执行一次。每次执行时,都会创建一个局部的 offset 变量,所以就不用担心超过 4 3 亿这个限制;而你说的单条超过 4 亿个元素,溢出的是 length 这个变量了对吧?

可以这么理解

emmm,是不是写错了,是 43 亿?
或者就是假设 chunk 是默认的 4096 条,那么只要 4096 条数据的数组内元素总个数低于 43 个或者单个数组内元素低于 46 亿个, 就不会有溢出问题是吗?