写点什么

架构 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:402984
用户头像

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

关注

评论

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

推荐几款可以大幅提高开发效率的vscode插件 | 京东云技术团队

京东科技开发者

Vue 前端 vscode

一文搞定PCB元器件的布局布线

华秋PCB

元器件 PCB 布局 PCB设计 布线

融云出海:TikTok 百亿美元投向东南亚,巨头将如何影响市场格局

融云 RongCloud

产品 运维 出海 市场 通讯

AIGC+任务管理|给既定目标一个“精准打击”

TE智库

人工智能 任务管理 AIGC 生成式AI

【网易云信】已开源!网易云信的热点探测平台实践

网易智企

开源 热点探测

(信息化,数字化,智能化)这是三种不同的概念吗?

优秀

数字化 信息化 智能化

inBuilder今日分享丨开源许可协议简介

inBuilder低代码平台

低代码渲染那些事

阿里技术

低代码 渲染

schema registry口令认证配置

Shen-Xmas

kafka Bigdata dba schema schema registry

用华为云低代码Astro Zero10分钟搭建 “图书馆数据可视化大屏” 应用

软件开发 低代码 华为云

LED广告机的市场趋势和发展前景

Dylan

媒体 广告 数字 LED显示屏 市场

G1垃圾回收参数调优及MySQL虚引用造成GC时间过长分析 | 京东云技术团队

京东科技开发者

MySQL G1 GC 企业号 6 月 PK 榜

从Kafka中学习高性能系统如何设计 | 京东云技术团队

京东科技开发者

云计算 kafka 高性能 企业号 6 月 PK 榜

HTML5 游戏开发实战 | 推箱子

TiAmo

html html5 6 月 优质更文活动

Intellij IDEA 插件开发 | 京东云技术团队

京东科技开发者

Java IntelliJ IDEA 企业号 6 月 PK 榜 插件工程

mysql

ltc

MySQL

什么是HTML?

TiAmo

html html5 6 月 优质更文活动

快上车,搭乘HUAWEI HiCar驶向未来

HarmonyOS SDK

HMS Core

【网络安全】堡垒机对于企业的重要性你知道吗?

行云管家

云计算 运维 网络安全 堡垒机

软件测试/测试开发丨Python内置库学习笔记

测试人

Python 软件测试 io 科学计算 内置库

VLDB2023|方略:一个交互式的规则研发系统

AI Infra

程序员 AI 开发者 AI大模型 大模型时代

Gateway 实现网关聚合查询

2756

聊聊测试团队的基础架构建设

老张

质量保障 基础设施建设 基础架构

英特尔宣布极光超级计算机安装完成,将于2023年末正式上线!

E科讯

行业首个多重节律照明!三翼鸟“亮”在哪?

脑极体

智能照明

对线面试官-Redis(内存消耗的问题)

派大星

Java 面试

幂律智能联合智谱AI发布千亿参数级法律垂直大模型PowerLawGLM

人称T客

2023银川市等级保护测评中心地址在哪里?有几家?

行云管家

等保 等保测评 等级测评 银川

一文读懂火山引擎A/B测试的实验类型(3)——多链接实验

字节跳动数据平台

https 原理分析进阶-模拟https通信过程

蓝胖子的编程梦

https TLS SSL证书 ssl SSL/TLS 协议

架构Twitter_Ruby_Steven Robbins_InfoQ精选文章