Spache: Accelerating Ubiquitous Web Browsing via Schedule-Driven Space Caching¶
这篇是新鲜出炉的WWW25卫星网络论文,笔者在从家返回学校的高铁上,闲的无聊索性读一篇论文。
高铁人多嘈杂,实在不方便精耕细作整理,因此这里并不像其他论文一样逐模块翻译并整理,直接上读后感!
13:45合肥南出发 -> 笔者无聊 -> 直接上原文阅读 -> 整理并直接写读后感 -> 19:15到西安北
Abstract and Intro¶
提出背景
现在ISN和LSN都在高速发展,演化出这样的情景:
陆地上,随着CDN的兴起,很多运营商会在不同的地区建立自己的服务设施(云服务器),这些云服务器里用户更近(物理意义上),自己的源服务器将内容分发到云服务器上,然后用户进行fetch,更新操作也是如此。
随着低轨卫星网络的兴起,卫星本身就可以作为远端的Cache进行数据存储,并且用卫星链路中继/转发等操作也是可以的。
在这个情景下,很显然可以想到将陆地的网络服务器/存储 与 卫星对应的存储等服务相关联。
挑战
现在的陆地CDN效率还是可待提高的,原因有三点:
- CDN云服务器地理位置分布不均衡,存在大量农村/偏远地区无服务
- “蜿蜒的供应路径”
- BGP固有的特点: 不同AS之间采取类似于BGP的商用协议,并不是依据最短路径,因此时延等问题存在
- Gateway设施不全
- “最后一公里”的堵车问题: 当前大多数都是采用“SRLA”模式,大部分流量转发还是依靠陆地网络,卫星本质只起“最后一跳”的中继,因此存在拥塞问题
SRLA
这个概念在 NSDI2023 StarryNet 论文中提到过
使用卫星作为Cache存储系统可以的,但是存在问题 (拜“高移动性”所赐):
- 分给用户的Cache在卫星上,卫星“跑路”了
- 一个卫星服务的地区总是在变化
Spache可以解决上述问题,这要感谢LSNs的特有属性,它们能够给出卫星运行的参数、运动规律、变化情况(甚至是预测)
具体来说,Spache解决上述问题的方式是:
- 基于事件预测并prefetch,这样有利于warm cache
- 采取cache-partition策略,缓解cache污染问题
Background and Motivation¶
卫星-云 Cache一体化结构
注意这里面的概念:
UT / PoPs / USL / ISL / GSL / Bent-Pipe Routing / ISL-based Routing / LSN RDS
看图即可,论文里也有描述,不多说了
当前陆地Web Cache的问题
- 覆盖地区不均衡,大量农村/偏远地区无服务
- “蜿蜒的访问路径”
- BGP自身商业协议的缘故(并不是基于最短路径)
- Gateway数量少,配置不全
- 只要走LSN路径,访存速度就会受LSN的钳制 (不稳定、丢包率高... -> RTT波动且上涨)
Spache Overview¶
A bold idea: integrating web cache into LEO satellites to serve terrestrial users.
将Cache放在太空里
- 这完全可行,目前甚至有团队在LEO上部署数据中心
- 好处
- 任意处可达,解决“偏远地区无服务”问题
- 同一个AS处理,规避“蜿蜒的路径”问题
- 解决“最后一公里”问题,直接从卫星路可达
Spache 结构
关键要素:
- Control Center
- Controller
- Satellite Node (Node)
步骤:
- Web Provider 在Controller注册
- Web Provider分发网页内容
- Satellite进行Cache缓存
- 根据Cache Replacement进行update
Satellite Cache的显著问题
TL;DR 都是高速移动性惹的祸
- Cache刚warm up,就走了
- 现存的Cache替换算法不能解决问题,甚至加剧
如何解决这两个问题:
- communication schedule in LSNs
- schedule-driven cache management
Schedule-driven Cache Management¶
Communication Schedule in LSNs¶
主体思想: 运营商将参数信息告诉Controller, 此时它就“全知”了
Satellite Operators (SpaceX等科技商家): 它们什么都知道,谁跟谁连接、什么时候连接等信息都在它们的眼皮之下
Satellite Operators 将信息传递给 Spache Controller,此时Controller什么都知道了
Spache Controller跟响应的nodes进行交互
Schedule-Driven Cache Prefetching¶
主体思想: 在UT访问之前先把内容“预存”在相应的cache里
机制比较复杂,用Perplexity帮助分析了一下:
1) 核心问题:为什么需要基于调度的缓存预取?
在空间网络中,用户终端(UT)会频繁切换到不同的低地轨道(LEO)卫星节点。
如果用户终端访问的缓存是“冷缓存”(cold cache,指没有预加载所需内容的缓存),就会导致低命中率和长延迟。这种情况会降低用户体验。
为了避免这种情况,Spache提出了一种机制,在用户终端切换到新的LEO节点之前,提前将可能需要的数据加载到目标节点的缓存中。
这种方法被称为“基于调度的预取”。
2)关键问题:如何实现基于调度的缓存预取?
预取什么内容?
通过分析调度信息,系统决定需要加载哪些内容。具体步骤如下:
- 监控内容的流行度(Popularity):
- 每个内容\(C_i\)的流行度\(Pop_i\)是通过统计该内容在目标区域\(r_{new}\)的请求比例计算得出
- 选择合适的内容集合\(\Phi_{new}\)**:从流行度最高的内容开始,逐步添加到集合中,直到满足一个阈值\(\beta\),即: $$ |\Phi| = \arg\min_k \sum_{i=1}^k Pop_i \geq \beta $$
简单来说,这一步是 挑选出最受欢迎的一批内容进行预加载 。
从哪里获取这些内容?
目标节点\(r_{new}\)会 从以下来源获取数据 :
- 本地已有缓存
- 其他LEO节点中已经存储这些内容的位置(称为\(Src_{r_{new}}\))
每个来源都带有一个“获取延迟”(\(T_{fetching}\)),表示从该位置获取数据所需时间。
什么时候进行预取?
预取操作需要在合适的时间点进行,以平衡延迟和资源消耗:
- 决策时刻\(t_{decision}\):系统根据调度信息,在用户终端切换到新节点之前做出预取决策。
- 持续评估是否值得预取:LEO节点会逐一检查\(\Phi_{new}\)中的每个内容\(C_i\), 计算其潜在收益和成本。如果收益大于成本,就执行预取 。
如何计算收益和成本?
收益(Latency Benefit)
提前预取可以减少未来用户请求时的等待时间,其公式为:
- \(T_{fetching}^2 / 2\Delta t\):衡量减少延迟的效果
- \(RN_{c_j}^{new}\):区域\(r_{new}\)内请求数量
- \(Pop_j\):内容流行度
记住就行,这是收益公式
成本(Latency Cost)
预取占用了缓存空间,可能导致其他有价值的数据被驱逐,其公式为:
- \(T_{cost} / \Delta t\):驱逐数据带来的时间成本
- \(RN_{c_j}^{evict}\):被驱逐区域内的数据请求量
- \(SA-LR_{evict}\):被驱逐数据的重要性,基于调度分区策略计算
如果某个内容的收益大于成本,就执行预取,否则跳过。
3)总结与形象化解释
可以把 Spache 的机制比作一个“太空快递员”:
- 快递员知道用户即将搬家(切换到新节点)。
- 他提前根据用户的喜好清单(流行度)打包好最有可能需要的物品(数据)。
- 他从最近的仓库(LEO 节点)挑选物品,但要确保不占用太多空间,以免丢掉其他重要物品。
- 在搬家前,他会权衡提前送货(预取)的好处和成本。如果好处大,就行动,否则等待。
这种机制确保了用户搬家后能立即用上需要的数据,大幅提升了访问效率,同时避免了不必要的资源浪费。
Schedule-Driven Cache Partition¶
机制比较复杂,用Perplexity帮助分析了一下:
背景:缓存污染问题
在LEO卫星网络中,不同地区的用户请求会共享同一个缓存空间。由于不同地区的请求内容可能完全不同,这种共享可能导致 缓存污染 :
什么是缓存污染?
比如, 区域A的热门内容被区域B的请求替换掉,但区域A仍然需要这些内容 。这会导致缓存中存储了对区域A无用的数据,降低了缓存效率。
为了解决这个问题,Spache提出了一种 “基于调度的缓存分区” 策略。
1)缓存分区是什么
缓存分区是一种技术,将整个缓存空间划分为多个子缓存(sub-cache), 每个子缓存专门用于特定的内容组或服务区域=。
- 防止不同区域间的请求相互干扰
- 减少有用内容被无关请求替换(即减少污染)
这种技术最初用于CPU共享缓存,后来被应用到CDN(内容分发网络)中。
2)LEO卫星中的新挑战
相比传统地面系统,LEO卫星面临以下独特挑战:
- 服务区域快速变化:卫星在轨道上移动,服务区域会频繁切换
- 高计算开销:缓存分区需要动态调整,但LEO卫星上的内容规模比CPU程序大得多,调整难度更高
- 延迟问题:当服务区域切换时,旧数据可能无法及时清除,新数据加载速度跟不上
这导致传统方法无法很好地适应LEO卫星环境。
3)Spache 的解决方案:基于调度的缓存分区
Spache 提出了一个创新的方法,通过利用卫星的调度信息来优化缓存分区:
- 多级子缓存划分:
- 缓存被划分为多个子缓存,每个子缓存绑定到一个服务区域 。
- 每个子缓存使用独立的替换算法 来管理内容。
- 按需处理请求:
- 当 用户请求某个区域的内容时,只访问该区域对应的子缓存 。
- 这样可以避免其他区域的数据被替换掉,从而减少污染。
如何衡量优化效果, 用SA-LR
为了衡量优化效果,Spache 定义了一个新的指标:基于调度的平均延迟减少(SA-LR)
核心衡量指标: SA-LR 衡量的是通过优化后,用户请求延迟减少了多少
公式如下:
- \(LR_{ri}^{t-1}\):上一时间片中,某区域 \(r_i\) 的延迟减少值
- \(p_{ri}^{t-1}\):上一时间片中该区域的总请求数
- \(RN_{ri}\):当前时间片中该区域的请求率
- \(\sum RN_{rj}\):所有区域的总请求率
通过这个公式,可以动态评估每个服务区域在不同时间片中的优化效果。
基于调度的自适应调整
在每个时间片开始时,Spache 会根据 SA-LR 动态调整各子缓存大小:
- 排名调整:
- 根据 SA-LR 对所有服务区域进行排名。
- 排名靠后的区域,其对应子缓存会缩小一定比例 \(D\) ;
- 排名靠前的区域,其子缓存会扩大 \(D\)。
- 动态调整幅度 \(D\):
- \(D\) 的大小取决于各服务区域请求率变化幅度(\(\Delta RN\))。
- 如果某些区域请求波动较大,系统会更快地重新分配其对应子缓存大小。
- 快速重分配:
- 如果某个服务区域突然退出,其子缓存空间会迅速重新分配给其他活跃区域,从而最大限度地减少污染和浪费。
4)总结与形象化理解
可以将 Spache 的方法比喻成一个“动态货架管理系统”:
- 货架划分: 将超市货架划分为多个小货架,每个货架专门存放某类商品(即特定服务区域的数据)。
- 需求预测: 根据顾客购买习惯预测哪些商品需求高,将更多空间分配给这些商品。
- 实时调整: 如果某类商品需求突然增加,就从需求低的货架腾出空间给它。
通过这种方式,Spache 实现了对 LEO 卫星有限资源的高效管理,同时提升了用户体验(降低延迟)。
Evaluation¶
实验结果表明:
- cache hit rate 变高了
- 弹性好,稳定,抗干扰
- 用户感知体验变好: RTT (round trip time) 变小 / PLT (page load time) 变小
- GSL traffic 变小很多
- 减小卫星链路压力,从而缓解“最后一公里”问题
Related Work¶
有团队分析了 远端服务器的反馈 / 5G或无线网络 的情景,但这篇论文专注于LEO(高度移动性是最本质的区别)
有很多团队都为Cache替换算法贡献了思考,但是这篇论文最大的特色还是LEO Cache具有高速移动性
有团队做了“在轨计算/在轨存储”的努力,但是针对的不是CDN Cache问题
Conclusion¶
略