You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

TsFileResource中的DeviceTimeIndex占用了大量的内存空间,考虑在内存不够的情况下将其降级为内存占用更小的FileTimeIndex,通过牺牲查询效率换取更多的内存空间

一、配置项

名称time_index_memmory_proportion
描述指定TimeIndex在Read Memory中的所占的比例(占比越高查询效率越高)
类型double
默认值待确定
更改后的生效方式重启服务器后生效

二、接口设计

org.apache.iotdb.db.rescon.TimeIndexManager

  • double TIME_INDEX_MEMORY_THRESHOLD:TimeIndex可使用的内存总量,值为allocateMemoryForRead * time_index_memory_proportion,当TimeIndex的内存使用量超过该值时触发索引降级

  • ExecutorService downgradeThreadPool:用于执行TimeIndex降级任务的线程池

  • PriorityQueue<TsFileResource> sealedTimeIndex:维护所有已封口的ITimeIndex,按照降级优先级从高到低排列

  • Map<ITimeIndex, TsFileResource> timeIndexTsFileResourceMap:维护ITimeIndex与TsFileResource的映射关系

  • long totalTimeIndexMemCost:所有TimeIndex占用的内存总量(非精确值,只计入封口文件的TimeIndex大小)









三、详细设计

  • No labels