写点什么

架构 Twitter

  • 2008-06-22
  • 本文字数:1120 字

    阅读完需:约 4 分钟

风行的社交应用Twitter ,其底层架构最近已成为多次讨论的焦点。由于团队试图解决一些问题,Twitter已经有几次停止运行的情况,并关闭了几个常用的功能。从Twitter 的前进脚步之中,我们能学到些什么呢?包括 Om Malik Dare Obasanjo 在内的几个人猜测是 Twitter 的底层架构导致了这些问题的出现。最近,Robert Scoble 就应用情况和公司前景采访了Twitter 的Evan Williams 和Biz Stone 。采访的视频可在 qik 上找到。

在采访中,Williams 和 Stone 回答了关于 Twitter 数据架构的大问题:Twitter 是否使用单实例存储(SIS)类型的方法来处理用户消息?在大约 13 分钟的采访记录中,Williams 谈到了消息存储和用户时间线检索:

它不是这么处理的(为用户的每个跟随者都产生一个消息副本),但实际上这可能更有效率。现在消息存储到数据库中,当人们想获取他们的时间线时,我们从数据 库中构造时间线,然后缓存到内存中,当然不是每次都缓存。但由于内容写入太频繁,我们往往也要频繁地访问数据库,而这只是为了更新缓存。所以缓存中有很多 消息副本,而在磁盘上却只有一条消息。我们以后的架构可能更多的是以多次写入的方式,因为读取在这种方式下将快更多。

从 SIS 消息架构迁移的可能性为利用像数据Sharding 这样的数据技术开启了一扇大门,数据Sharding 技术已经在许多高容量网站和应用中广受欢迎。Randy Shoup谈到了eBay 通过部分利用Sharding 来架构系统的方式,以此获得高可伸缩性:> 数据库层次的问题比较有挑战性,原因是数据天生就是有状态的。我们会按照主要的访问路径对数据做水平分割(或称为“Sharding”)。例如用户数据目 前被分割到20 台主机上,每台主机存放1/20 的用户。随着用户数量的增长,以及每个用户的数据量增长,我们会增加更多的主机,将用户分散到更多的机器上 去。商品数据、购买数据、帐户数据等等也都用同样的方式处理。用例不同,我们分割数据的方案也不同。

Bogdan Nicolau 写过一篇为数据库Sharding 基础的概述。在该系列中,Bogdan 讨论了如何决定在何处、以及如何为应用分割数据。决定时的主要一点是:> 我试图表达的是,无论你选择什么逻辑来切分表,总是要记住你不想有任何join、order by、或limit 语句,这些语句会需要不止一个的表Shards。

Bogdan 继续谈论了应用端对Shards 的利用。Bogdan 提供了几个代码例子来解释一个典型问题,同时还解释了背后的原理:> 正如你所看到的,因为要生成映射表,负担主要落在了写入一方。读取时就不需要关心涉及的数据切分算法了。

随着众人参与关于如何扩展Web 2.0 的讨论,Twitter 也许将继续向一个更稳定、可伸缩的架构迈进。InfoQ 有许多性能和可伸缩性相关的资源,在这里查看这些资源

查看英文原文: Architecting Twitter

2008-06-22 21:402555
用户头像

发布了 151 篇内容, 共 62.2 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

10个明亮通透粉色调摄影滤镜Lightroom预设

Rose

mac菜单栏应用管理软件:Bartender 4 for Mac 中文激活版

你的猪会飞吗

mac软件下载 mac破解软件下载

营销一体化如何精准构建智能营销生态,驱动生意持续增长

赛博威科技

人工智能 营销费用管理 赛博威

软件测试学习笔记丨TestNG测试框架

测试人

软件测试

ps磨皮插件Portraiture 3 for Mac汉化版

Rose

alien skin eye candy 7 mac中文版 眼睛糖果滤镜PS插件下载

Rose

亚马逊商品详情的 API 接口获取与分析:挖掘商业价值的关键技术

Noah

鸿蒙生态逐光者图谱

最新动态

“所得”如何超越“所见”?合合信息扫描全能王发布扫描“黑科技”

合合技术团队

图像识别 OCR 合合信息 扫描全能王

iZotope Ozone 11 Advanced for Mac v11.1.0 臭氧11 激活版

iMac小白

SourceTree for Mac(Git客户端工具)

Mac相关知识分享

Git管理神器

适用于FUJIFILM X和GFX富士相机的LUTS调色预设包 Earth LUT Pack

Rose

基于Python和TensorFlow实现BERT模型应用

快乐非自愿限量之名

Python 开发语言 语言 & 开发

FCPX插件:直线图形矩形线条路径动画预设

Rose

GifGun for Mac:在After Effects上的快速输出GIF动图格式插件

Rose

河北平泉:信息化管理开创食用菌产业新篇章

人称T客

iMovie for Mac v10.4.1 专业视频剪辑软件 中文版

iMac小白

案例分享丨全球金融科技独角兽利用悦数图数据库保障金融交易安全

悦数图数据库

金融 图数据库

全球首部 Sora 生成宣传片《玩具反斗城的起源》亮相;钉钉全新 AI 小时搜索对所有大模型开放丨 RTE 开发者日报

声网

星途重启:244亿公里外的「旅行者1号」,修好了

DevOps和数字孪生

航天器 旅行者1号

【干货】Vue3 组件通信方式详解

不在线第一只蜗牛

JavaScript vue.js 前端

KeyShot 2023 Pro for mac(3D渲染和动画制作软件)

Mac相关知识分享

mac软件下载

Navicat Data Modeler Ess for Mac(数据库建模与设计工具)

Mac相关知识分享

数据库建模

打破生态「孤岛」,Catizen将开启Telegram小游戏2.0时代?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

PS滤镜插件套装Nik Collection 6 for mac中文破解版

Rose

”翼”起向未来!天翼云亮相2024世界智能产业博览会!

天翼云开发者社区

人工智能 云计算 智算中心

iTubeGo for Mac v7.8.2 超强4k视频下载工具

iMac小白

Xcode 15 for Mac(开发工具)

Mac相关知识分享

xcode

Forester for Cinema4D(植物树木花草生长动画) v1.5.4激活版

Rose

FCPX插件:视频去闪烁消除频闪工具Remove Flicker 中文英文版

Rose

架构Twitter_Ruby_Steven Robbins_InfoQ精选文章