查看原文
其他

Web3可以从Twitter的时间线架构中学到什么

Scott Shi 投行VCPE部落 2023-01-11

就增长而言,前十大公链的交易量在两年内翻了 100 倍。

如果 Web3 继续沿着图中描绘的轨迹发展,

那么当今大多数 Web3 数据基础设施解决方案将无法应对增长。


*简介*Twitter 的数据基础架构之旅

*Web3 和 Twitter 数据的相似之处

*Web3 可以从 Twitter 的架构中学到什么

*结论 

*鸣谢





来源:Marsbit

*原文标题:What Web3 could learn from Twitter’s timeline architecture

*原文作者:Scott Shi

*原文来源:Medium:https://medium.com/zettablock-hq/what-web3-could-learn-from-twitters-timeline-architecture-207e0673ed2d

*编译:Kate, Marsbit

*转载内容仅作为学习交流,

*原文链接:https://medium.com/zettablock-hq/what-web3-could-learn-from-twitters-timeline-architecture-207e0673ed2d

*版权归原作者所有

*免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。




简介

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:

http://highscalability.com/blog/2014/9/8/how-twitter-uses-redis-to-scale-105tb-ram-39mm-qps-10000-ins.html

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#:~:text=That%20equals%20to%20the%2084,time%20the%20request%20is%20made

 责任编辑:Kate




-----------------------------------

往期阅读

Web3营销、运营系列

《营销专题01: Web3时代,市场营销的变迁》

《营销系列02: 如何像一个Web3营销专家思考》

《营销系列3: Web3 Go-to-Market:新思维、新策略、新指标》

15年专业营销人谈经验:关于Web3营销的一切,先从马斯洛理论在Web3里的映射说起!

为什么做Influencer Marketing(影响者/网红营销)?

NFT如何提升品牌内容营销?从这4个维度探讨很有必要

Web3之社区运营工具盘点,教你如何使用好电报&DC管理工具

Web3之“流量为王” | 实干应用型创业者的春天已悄然来临!没有用户,这些链连Web都不是

Web3之冷启动|13个增长平台实测如何0成本冷启动项目至10k用户

当网络效应不在,什么才是Web3项目的竞争护城河?流动性、社区、可组合性

Web3·Token经济学系列

Token经济学入门(Tokenomics101):评估Crypto的基础知识

Token经济学入门(Tokenomics 102):深入研究Token的供应

Token经济学入门(Tokenomics 103):Token的实用性

Token经济学入门(Tokenomics 104):如何发Token

Token经济学入门(Tokenomics 105):在加密游戏中比较单Token与双Token模型的效用

Token经济学入门(Tokenomics 106):拆解Token设计

Web3之Token经济学:详解Crypto项目如何建立流动性池

Web3之项目生存法则:社区第一,经济第二。Token化社区和Token化经济有何不同?

Web3投资基金系列

Web3投融资完全手册(基金、风控、监管、合规、法务)(附PDF下载链接)

LP·GP | A16z第1支Web3基金业绩被曝光:10倍的回报

2022年Q2加密VC投资复盘:资金量降近7成,VC对Layer1出手最多

专访何一:掌握75亿美元的Binance Labs,更看好哪三类Web3项目

LongHashVentures创始人:手握1亿美元风投基金的亚洲 “加密女王”主要关注多链基础设施

亚洲二十家加密投资机构:谈当下的机遇与困惑

Web3风投机构IOBC Capital宣布成立5000万美元风投基金,重点关注基础设施、中间件等机会

加密投资机构| 跟踪顶级加密投资机构HashKey Capital

2021年头部加密风投机构表现:a16z投中3个百倍项目,数量最多

Web3之风险投资|详解BinanceLabs投资版图,基础设施、应用层

Web3之风险投资| 贝恩资本加密基金投资策略及版图

单纯做VC,在Web3很难建立起护城河

顶级加密机构投资偏好|大厂背景创业者更受a16z/Coinbase/币安的青睐

Web3 之 10年回溯,加密投融资演化史,从荒芜到繁荣。

Web3之加密风险投资格局 | 创业者的融资指南

Web3投研系列

致创业者:Web3的商业周期、规律和机会

浓缩400页Web3游戏资料的干货大放送

钱包、CEX和DAPP,谁是未来Web3.0世界的流量入口

熊市是孕育优秀公链的最佳时机,汇总一些对公链的思考和评估方法

详解WalletConnect:钱包和Dapps之间的窄腰协议

Web3入口之浏览器钱包| 速览十大浏览器钱包及其优缺点

探索Web3基础设施:从计算、索引到存储,Web3网络收入的黎明已至

东吴证券|Web3初探:一个基于区块链技术、用户主导、去中心化的网络生态

深度解析zkEVM:工作原理、构建难度、重要性以及开发进展等

Web3与开源的创新:在探索中前行

Web3之浏览器钱包| MetaMask收集用户隐私?他们是如何做到全球最大的?

2022超超超级火的AIGC是什么?将成Web3.0和元宇宙的内容生产力工具!

Web3之AIGC |  新时代的内容生产力工具(国盛证券研究报告)

Web3之胖协议和瘦应用| 浅析加密市场中瘦应用发展与投资机会!

Web3之 研判优质项目的标准 | 以NFT交易市场为例

Binance研究院:Web3社交领域的现状与潜在创新

Huobi研究院2022-2023年度报告:全球区块链产业全景与趋势-1

Huobi研究院2022-2023年度报告:全球区块链产业全景与趋势-2

Web3杂谈

Web3 基金会简史 - 创始人、使命和项目

Web3投资人对项目的价值:能带Builder、能带市场/用户、和交易所关系

运营增长系列

三阶段定位的底层逻辑

逆境增长三步曲之一:战略型增长

逆境增长三步曲之二:运营型增长

业绩增长的21个实战解决方案

思维模型| 生态位对,做什么都容易成功;生态位错,做什么都容易失败

不要挣客户的钱,而要帮客户挣钱|toB销售的3个底层逻辑

《增长黑客》 | 创业公司的用户与收入增长秘籍(PDF电子版下载)

增长战略的底层逻辑

指数级增长的底层逻辑

客户心智的底层逻辑 | 从客户视角来看产品增长逻辑

在不确定时代,企业如何实现确定性增长?

最好的竞争是远离竞争:传统产业+互联网的8种增长战略

增长定位的底层逻辑

彼得·林奇:不要把增长和赚钱混为一谈

分析:“商业模式” “运营模式”和“盈利模式”的区别是什么?

To B和To C:在未来,什么样的公司,有机会转型成功?



商务合作:请加微信VCBLO1

添加微信请注明:地区-企业-职位-姓名



超14000+关注,学习成长中...(欢迎转发分享到朋友圈)       

       

版权说明:投行VCPE部落专注于分享企业投融资案例以及岗位招聘信息!同时对于企业我们灵活运用资本市场的各项融资工具,在企业不同战略发展阶段,为中小企业提供解决“融资难”“融资贵”的利器,并量体裁衣地为企业提供个性化融资方案!部分推送的融资案例未及时与原作者联系·在已知出处的情况下均已注明来源,版权归原作者所有,若涉及版权问题,敬请原作者联系我们删除,感谢每一位作者的辛苦创作与付出!欢迎各位有经典的资本运作案例投稿!

投稿邮箱:1129058362@qq.com

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存