Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. LRU cache,不对外公开,存放的都是设备级的TsFileResource,主要用来判断哪些最近被访问,
  2. Map<TsFileResource, Pair<lastCheckTime, queryCount>> waitUpgradeTsFileResource, 不对外公开,key是文件级索引的TsFileResource, value是一个数据结构,该结构主要有两个字段,lastCheckTime是该TsFileResource上次被访问的时间,超过某个阈值(例如1min)就重新设置为当前时间,queryCount也清零。queryCount是自上次被访问的时间以来被访问的次数。筛选时,如果某个文件级的TsFileResource自上次被访问时间以来,queryCount累计超过阈值(例如5),就升级它。
    1. 有可能某段时间所有的TsFileResouce都访问得比较频繁,在设备级的的TsFileResource比文件级的TsFileResource更频繁,但是依然会被替换掉。有可能某段时间所有的TsFileResouce都访问得比较频繁,设备级的的TsFileResource比文件级的TsFileResource更频繁,但是依然会被替换掉。


方案1 & 方案2有个共同的优点,可以复用MTree那边缓存的实现逻辑

...