由于线上 95% 以上的请求都是近期查询,MetricStore 2.0 通过内存实时压缩在内存中缓存更多数据。主要升级包括:
内存实时压缩(两级词典化编码):基于时序数据的规律(时间线在一定周期持续存在、同类时间线内 LabelKey/LabelValue 大量重复),先将 LabelPair 提取出来按 LabelKey 维度将 LabelValue 编码成独立词典,编码后的 LabelsPairs 再次编码提取出时间线单位。这种两级词典化编码平衡了运行效率与压缩率,对容器场景数据集与原始数据相比有近 10 倍压缩率。数值和时间列主要采用优化版本的 Gorilla 压缩算法,并增加细致的动态内存管理。
自适应 Block:动态统计数据特征,使 MemBlock 随各 Labels 数据量自动调整参数与 Block 切换;数据维度继续增加时不再建立倒排索引转而用扫描模式,维度进一步增加则转为列存编码模式。查询时根据访问量及时间范围动态调整 Cache 策略保证近期数据命中。MemBlock 完成 Dump 后直接被缓存,避免 Dump→失效→重新 Load 的过程,保证读写性能稳定。




