Twitter 扇出设计

Man*_*oid 6 twitter caching system-design

我正在阅读 Martin Kleppmann 所著的《设计数据密集型应用程序》一书。作者曾经解释过 Twitter 向用户发布推文(扇出)的不同方法。根据其中一种方法,当有人发布推文时,Twitter 会将此推文添加到发帖者所有关注者的主时间线缓存中,如下图所示。 在此输入图像描述

这是否意味着 Twitter 会为其所有追随者的用户维护实时缓存?维护的缓存会不会太多?

mit*_*shi 2

缓存条目过多且缓存不多,恰好等于用户总数。

\n

因此,这大约需要 TB 级的缓存,并且使用商用硬件可以在读取路径上提供良好的服务,但在写入时,它将具有高写入放大的名人。

\n

但从维护角度来看,这不会成为问题,但从成本角度来看,它会成为问题。

\n