信创与异构环境
同一个 ClickHouse,换一个运行环境,行为不一定一样:换个发行方(华为 MRS 这类托管版),换个 CPU 架构(国产 ARM),换个操作系统(麒麟)。
这类问题比版本变更还难查,因为它连 changelog 都没有。官方文档不会写,开源社区没人遇到过,厂商文档里也往往找不到。而且很多根本算不上 bug,官方的选择挺合理,只是和国产化环境的约束对不上。踩到的时候,往往先怀疑是自己配置写错了。
硬件与指令集
ARM 上一跑就 SIGILL:缺的是 rcpc,自检又来不及报扫了 8900 万条指令,缺的其实是 rcpc,LSE 没问题。ClickHouse 的指令集自检又排在崩溃之后,出了事什么都不说。chdb 在老 CPU 上 SIGILL:同一台机器,clickhouse 却跑得好好的chdb 编译时把基线从 SSE4.2 抬到 AVX,
-mavx 把所有 SSE 指令改编成 VEX 编码,静态初始化器里第一条就死,早于 main(),无声无息。降回 SSE4.2,热点性能一条不少。