Web3 可以从 Twitter 的时间线架构中学到什么
简介
11 月 13 日,Elon Musk为 Twitter 进行了 1000 多次RPC来呈现用户的主页时间线而道歉。乍一看,如此大量的 RPC 似乎很荒谬。如今,Twitter 每月为 2.6 亿活跃用户提供服务,并且可以近乎实时地提供服务。为了解决亚秒级延迟的大规模采用问题,Twitter 率先推出了许多解决方案,包括 Apache Storm、Heron、DistributedLog和Aurora。他是Scala 的主要贡献者,包括finagle RPC 框架,以及lambda 架构、Snowflake ID和Segcache等创新。那么,为什么像 Twitter 这样的创新型全球化公司需要如此多的调用来获取用户的时间线数据?
Twitter所面临的问题让我们想起了当前Web3中不断增长的烦恼:开发者常常被迫一个接一个地连续调用许多 API 来获取组装业务逻辑的数据。这会导致性能不可靠且不可预测,即使对于最简单的用例也是如此,例如获取用户的交易历史记录。就增长而言,前十大公链的交易量在两年内翻了 100 倍。在图 1 中,我们展示了每秒推文数量(2006-2013,蓝色)和每秒 Web3 交易数量(2017-2022,红色,排除非用户交易)之间的比较。如果 Web3 继续沿着图中描绘的轨迹发展,那么当今大多数 Web3 数据基础设施解决方案将无法应对增长。

图 1:推文与 Web3排名前10的链早期写流量 QPS 对比。
在这篇博文中,我们将重点介绍Web3可以从Twitter的扩展解决方案中学到什么。具体来说,我们讨论以下内容:
•我们概述了 Twitter 的时间线基础设施之旅,认为他们当前的架构确实对特定用例有意义,并得出结论,一些批评可能是错误的,例如 Elon Musk最近的推文为渲染主页时间线的大量 RPC 道歉。
•我们深入研究 Twitter 和 Web3 之间的技术相似性,并探索前者的解决方案如何使后者的解决方案受益。
•我们分析了当前的 Web3 增长趋势,以及缺乏现有的高性能数据基础设施解决方案,并得出结论,如果我们想要支持实时 Web3 数据访问,则需要进行重大升级,以及ZettaBlock解决方案如何帮助开发人员减少70%的开发时间,并将性能提高 10 倍,演示可以在这里找到 [网站,视频]
Twitter 的数据基础架构之旅
一开始,Twitter使用Vanilla MySQL。这很快成为了一个问题,因为在最初的几年里,推文的数量每年增长10倍。从2007年到2012年,Twitter的月活跃用户从几千人增长到超过1.38亿。已知的水平和垂直切分的知识无法为Twitter处理高流量的性能,尤其是在渲染主页时间线方面。
时间线是 Twitter 的主要平台功能之一。一般来说,Twitter的时间线主要有两个操作,具体如下:
1.写入路径:该路径用于用户发布推文。2012年,Twitter平均每秒处理4.6万个写入请求,在高峰时段处理1.2万个RPS。
2.读取路径:此路径用于用户请求他们的时间线。2012 年,Twitter 每秒处理大约 30 万次读取请求。
为了更好地理解 Twitter 如何呈现时间线,让我们更深入地研究呈现流程,如图 2 所示。当 Twitter 用户今天发布一条推文时,Twitter 首先将其写入Manhattan,一个分布式键值数据库,用于存储用户推文、直接消息、帐户详细信息等。该推文在时间线缓存中向该用户的所有关注者展开。虽然这将写入放大从每秒 4.6k 请求增加到每秒 345k 请求,但它也大大降低了用户的读取延迟。因此,时间线渲染不是在关注者和推文之间做一个连接表,而是从缓存中的单个表中获取推文。这些操作通常在不到 5 秒的时间内完成。通过分布正在写入的数据,系统可以通过删除表连接来避免过度增长。因此,读取延迟被改进到几百毫秒。

图 2:Twitter 的时间线渲染流程。请注意,时间线中的每条推文都需要至少一个 RPC。
前面提到的渲染流程对于绝大多数用户来说可能已经足够了(在大多数情况下写入放大值<100),但是“超级中心用户”呢?超级中心用户是指拥有众多粉丝的用户(数百万至数千万)。所描述的扇出模式,在超级中心用户的情况下,可以放大 1.2亿倍!这就是为什么在 Twitter 的早期,有专门为贾斯汀·比伯(Justin Bieber)提供的专用服务器机架。为了容纳超级中心用户,使用了一种称为Earlybird的特殊服务。在Earlybird中,超级中心用户和普通用户分别获取不同的推文。这个过程如下面的图3所示。

图 3:左侧描绘了 Twitter 用户混合时间线的抽象说明,右侧描绘了相应的读取 SQL。
既然我们已经描述了提供实时推文时间线背后的复杂性,那么为什么单个时间线渲染需要许多 RPC 就很清楚了。例如,对于只有 100 条推文的时间线,RPC 调用很容易超过 1000 次,因为仅仅获取一条推文就需要多次RPC调用。该解决方案乍一看可能并不直观,但它是一种经过深思熟虑的权衡,旨在为最终用户提供优化且可预测的读取性能。
Twitter 实现的最终结果非常积极:99%的延迟只有几百毫秒左右。在过去的 10 年里,这种基础架构已经被证明是可靠的,可以在没有重大变化的情况下处理Twitter流量的高速增长。
请注意,我们忽略了Twitter时间线的其他方面,包括评分、排名等。有关这方面的更多详细信息,请参阅本文末尾列出的参考资料。
Web3 和 Twitter 数据的相似之处

图 4:Twitter 和 Web3 数据的相似之处
Twitter 和 Web3 生态系统有很多相似之处:
1.Web3是一个社交图谱,推文类似于交易,回复类似于日志。图4描述了这一点,其中比较了顺序时间线渲染和顺序区块链的块。
2.Web3 协议和 Twitter 存在超级中心效应。最受欢迎的NFT平台的交易量是第10个平台的1000倍。
3.Web3 和 twitter 都是开放平台,对所有用户可见,并允许某些 API 访问。
如果我们放大一点,Twitter 和 Web3 之间的数据访问模式有更多相似之处:
1.读取量大,但每条记录很小。在 EVM 链上,日志和交易的平均大小只有几KB。
2.最新数据将被更频繁地查看,其中大部分查看来自发布后的前几个小时。
3.数据在短时间是不可变的。链上数据可以通过reorg恢复最新的区块。同样,现在用户可以在发布后的一段时间内编辑推文。
Web3 可以从 Twitter 的架构中学到什么
与 2020 年初相比,前 10 大链的交易量已经增长了近 100 倍。Web3 数据基础设施的现状类似于 2008 年前后的 Twitter 早期,当时大部分流量依赖于来自不同提供商的水平分片数据库。因此,随着 Web3 的持续增长,现有的 Web3 数据基础设施将很难提供对数据的高性能访问。
来自 Twitter 的扇出服务是将相关数据同时放在同一位置(如内存)。这样,当一个请求到来时,系统可以很容易地在一个地方找到相关数据,这导致数据已经被预处理并可以使用。这使得系统具有可扩展性,和可预测的性能。
遵循当前现状的 Web3 应用程序缺少一个重要的组件来有效地聚合相关数据。具体来说,开发者必须一个一个地调用API来获取数据。即使对于最简单的用例,例如获取用户的交易历史记录(如图 5 所示),这也会导致性能不可靠且不可预测。

图 5:当前的 Web3 应用程序需要如何连续调用许多不同的 API,即使是简单的事务聚合。
由于所有 Web3 数据都是公开可用的,ZettaBlock 构建了最先进的数据基础设施来处理所有 Web3 开发人员的扇出部分。应用程序开发人员只需通过一个 API 指定他们想要查询哪些相关数据,然后让 ZettaBlock 聚合所有相关数据。如图 6 所示。通过使用 ZettaBlock,开发时间和 API 延迟分别减少了 70% 和 90%。在https://demo.zettablock.dev/ 查看我们的演示。更多的技术细节将在未来分享。

图 6:与图 5 相比,ZettaBlock 将多个 Web3 数据集抽象为一个简单、用户友好且高效的API。
结论
在这篇博文中,我们剖析了 Twitter 的架构,并将其数据模型与 Web3 进行了比较,发现了许多相似之处。如果我们能得到一个信息,那就是许多现有的 Web3 数据基础设施解决方案,就像早期的 Twitter 一样,将无法跟上即将到来的数据需求。
这就是我们构建 ZettaBlock 的原因。ZettaBlock 是一个全栈式 Web3 数据基础设施平台,可提供实时、可靠的 API 和分析,在几分钟内为您的应用程序提供支持。前面提到的扇出过程(将相关数据同时放在同一个地方),这只是 ZettaBlock 上开发人员和企业可用的众多功能之一。我们受到领先的web3公司的信任,如Polygon, Crypto.com, Circle等。我们的愿景是成为web3数据基础设施的首选平台。
鸣谢
我想借此机会向所有在这篇文章中帮助过我的人表示衷心的感谢。特别感谢Kevin Ros、Chi Zhang、Maria Adamjee、Raphael Serrano、Zhenzhong Xu、Paul Tluczek、Tianzhou Chen、Hemanth Soni、Nitish Sharma、Ryan Kim、Alex Xu、Vivek Gopalan、Nazih Kalo、Nirmal Krishnan、Timothy Chen、Min Hao、Bo Yang
参考
1.Timelines at Scale:
https://www.infoq.com/presentations/Twitter-Timeline-Scalability/
2.How Twitter uses redis to scale 105TB RAM:
3.What Database does Twitter use">https://scaleyourapp.com/what-database-does-twitter-use-a-deep-dive/
4.Twitter Data Storage and Processing:
https://ankush-chavan.medium.com/twitter-data-storage-and-processing-dd13fd0fdb30
责任编辑:Kate
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
您可能感兴趣
-
爆仓之后,资本反而扑向"AI 股神"作者:华尔街见闻Leopold Aschenbrenner的对冲基金Situational Awareness“爆仓”,但这场危机非但没有吓退投资者,反而在硅谷引发了一轮新的追捧热潮。 据彭博社8月8
-
7 月非农没给美联储清晰答案,“新美联储通讯社”:9 月是否加息还得看通胀作者:华尔街见闻美国7月非农就业报告意外录得就业净减少,但失业率降至一年多来低位,一份看似矛盾的就业报告,让美联储9月会议前的政策前景变得更加扑朔迷离。 有“新美联储通讯社”之称的经济报道记者Nick
-
以太坊给质押踩急刹,DeFi 巨头集体开火作者:白话区块链8 月 4 日,以太坊的一颗炸弹悄悄挂到了论坛上。 Justin Drake 带着五位核心开发者,提交了一份名为 EIP-8363 的提案:当质押率达到 50%,协议停止向验证者发放新
-
美国劳动力市场爆冷:7 月非农就业人数意外减少 2.3 万,前两月就业下修 10.3 万人作者:华尔街见闻美国劳动力市场出现大幅降温信号,令市场对美联储货币政策走向的预判迅速重新定价。 美国劳工统计局周五公布数据显示,7月非农就业人数减少2.3万,远低于市场预期的增加8万,而此前两个月的数
-
Move 语言之父离开 Sui 加入 Anthropic,加密人才正在批量流向 AI作者:David,深潮 TechFlow8 月 5 日,Sam Blackshear 在 X 上发了一条帖子,说自己要离开 Mysten Labs,加入 Anthropic,做 AI 相关的防御性安全
-
今晚美国非农大考,“弱7月”魔咒会重演吗?此前三年均不及预期作者:张雅琦美国7月非农就业报告将于北京时间今晚公布,市场共识预期新增就业约8万人,但多重前瞻指标发出混杂信号,部分机构给出的预测远低于共识,"弱7月"魔咒能否打破,成为当前市场最大悬念。 市场预期区
-
a16z Crypto:Marc Andreessen 与 Chris Dixon 解读《CLARITY 法案》为何刻不容缓作者:a16z crypto 编译:佳欢,ChainCatcher 加密资产早已不是一个小众市场。稳定币每年承载着数万亿美元的交易,主要银行和支付公司也在开发链上业务。然而,监管这些活动的美国联邦规则
-
SuperEx 报告:私人财富管理月度报告7月市场摘要 2026年7月,加密资产市场从6月的深度避险情绪中逐步修复,但反弹并不均衡。BTC月初位于约60,003.76美元,7月中下旬一度突破65,000美元,并在7月21日CoinMarket
- 成交量排行
- 币种热搜榜
World Liberty Financial USDv
泰达币
比特币
USD Coin
以太坊
Solana
Ronin Network
币安币
瑞波币
艾达币
莱特币
波场
比特现金
大零币
狗狗币
UNI
OKB
SHIB
AR
CFX
YGG
ETC
LINK
HT
NEAR