💡
原文英文,约3600词,阅读约需13分钟。
📝
内容提要
Quicksilver是Cloudflare开发的关键值存储系统,旨在实现全球快速复制和低延迟访问。随着业务增长,存储所有数据在每台服务器上变得低效,因此引入了新的服务器角色:完整数据副本和缓存代理。此设计(Quicksilver v1.5)提高了存储效率,减少了磁盘空间使用,同时保持了请求延迟。
🎯
关键要点
- Quicksilver是Cloudflare开发的关键值存储系统,旨在实现全球快速复制和低延迟访问。
- Quicksilver v1最初设计为全球配置分发系统,但随着业务增长,存储所有数据在每台服务器上变得低效。
- 引入了新的服务器角色:完整数据副本和缓存代理,以提高存储效率和减少磁盘空间使用。
- Quicksilver v1.5设计通过在每个数据中心部署少量副本和多个代理来优化存储。
- Cloudflare的架构包括核心数据中心和多个小型数据中心,存储能力因节点类型而异。
- 每台服务器托管10个Quicksilver实例,分别用于不同的Cloudflare服务。
- 通过引入代理和副本的角色分配,Quicksilver v1.5实现了高达50%的磁盘空间使用减少。
- 在评估代理和副本设计的有效性时,发现大数据中心的20%键空间被使用,小数据中心仅为1%。
- Quicksilver采用持久缓存,使用RocksDB存储缓存键,以降低内存使用和解决冷缓存问题。
- Quicksilver保持顺序一致性,确保在异步复制中不会出现非单调读取的问题。
- 实现多版本并发控制(MVCC)以跟踪不同时间点的键值变化,确保数据一致性。
- 滑动窗口方法用于处理代理领先于副本的情况,保持最近更新的本地缓存。
- 负查找问题通过在代理层直接识别不存在的键来解决,避免了对副本的请求。
- 引入网络Oracle作为发现机制,动态管理数据中心和服务的查找,提升了系统的自愈能力。
- Quicksilver v1.5在节省磁盘空间的同时,保持了请求延迟的稳定性,代理的延迟有时甚至比副本更快。
🏷️
标签
➡️