THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
背景
TsFileResource 会随着数据写入不断生成,当 TsFileResource 中的时间索引粒度较细,单个 TsFileResource 可能包含数十万设备的时间索引条目,大小可到几十M,在有限内存管理海量设备时,将 TsFileResource 全部驻留内存有 OOM 风险。
因此,TsFileResource 不能全部驻留在内存中,需要设计以下内容:
- 将哪些 TsFileResource 放在内存里?
- 内存中的 TsFileResource 何时踢出?
- 查询时如何将未缓存在内存的 TsFileResource 加载进内存?
方案
目标
- 将最近的 TsFileResource 缓存在内存,踢出老文件
- 通过控制 TsFile 大小,减少 TsFileResource 个数
- 通过存储组和分区名等隐含规则索引 TsFileResource,通过内存计算定位 TsFileResource,尽量不存储额外信息