caching - Twitter扇出设计
问题描述
我正在阅读 Martin Kleppmann 的《设计数据密集型应用程序》一书。在某一时刻,作者解释了 Twitter 向用户发布推文(扇出)的不同方法。根据其中一种方法,当有人发布推文时,Twitter 会将这条推文添加到发布者所有关注者的主时间线缓存中,如下图所示。
这是否意味着 Twitter 为其所有追随者的用户维护一个实时缓存?会不会有太多的缓存需要维护?
解决方案
缓存条目太多而不是缓存太多,正好等于用户总数。
因此,这将需要大约 TB 的缓存,并且使用商品硬件可以在读取路径上很好地提供服务,但在写入时,它将对名人有很高的写入放大率。
但从维护的角度来看,这不会是一个问题,但从成本的角度来看,它会。
推荐阅读
- opencv - 打开 CV 捕获 .SDP
- java - 复制二进制数据
- r - 计算比较 R 中前三行和后三行的相对度量
- python - Bitmex REST API 删除请求签名无效
- android - 如何使用 Kotlin 将 ByteArray 转换为 Int?
- unit-testing - .NET CORE 单元测试 - 存储库的 mockRepo.Setup 始终返回 NULL
- apache - Apache vhost 重定向到另一个 vhost
- postgresql - PostgreSQL 复制到程序 gzip 到标准输出
- excel - VBA - 发现案例但有日期
- java - org.json.CDL 的替代品?