关于ats缓存的热迁和冷迁

本文分享自天翼云开发者社区《关于ats缓存的热迁和冷迁》,作者:LeonHao。

在CDN的服务中,有些内容访问会比较频繁,这种资源在性能更好的SSD中,会带来更好的访问体验。另外一些内容访问较少,作为相对冷的资源,只需要在HDD磁盘获取内容,即可达到较好的性能。这时就需要有策略的实现缓存的冷热迁移。

      ats缓存在写入磁盘时,会将内容拆成1兆一个fragment的方式,链式的写入到单个磁盘中。如果某个大文件命中到HDD磁盘,但访问时却只按照Range方式访问了其中一部分,这样只加热了单个文件的某一部分。如果因为单个部分的访问就将全部文件迁入到ssd中,消耗的代价会比较大。但是如果只迁移单个fragment,就会破坏ats原有的单文件单磁盘的访问方式。

       在SSD缓存被覆盖前,资源需要被迁入到hdd盘,保证冷资源不会被很快的淘汰。但也是在大文件场景中,如果将完整文件冷迁到HDD盘,那就需要保证在迁移完成后,资源不会被覆盖掉。这样的话,单磁盘的锁被独占,资源写入被搁置,性价比太差。如果只迁移单个fragment,也是相同的原因:破坏了ats原有的单文件单磁盘的访问方式。

       基于以上原因,需要对ats的单文件单磁盘模式重新进行设计,实现单个fragment重新做磁盘映射hash,大文件的存储就像Range请求一样,分散在不同的磁盘,迁移不再依赖首片的磁盘索引。

posted @ 2026-01-06 16:13  天翼云开发者社区  阅读(30)  评论(0)    收藏  举报