Craigslist 的数据库架构

(插播一则新闻:竞拍这本《Don’t Make Me Think》,我出价 RMB 85,留言的不算–不会有恶意竞拍的吧? 要 Ping 过去才可以,失败一次,再来)
Craigslist 绝对是互联网的一个传奇公司。根据以前的一则报道:

每月超过 1000 万人使用该站服务,月浏览量超过 30 亿次,(Craigslist每月新增的帖子近 10 亿条??)网站的网页数量在以每年近百倍的速度增长。Craigslist 至今却只有 18 名员工(现在可能会多一些了)。

Tim O’reilly 采访了 Craigslist 的 Eric Scheide ,于是通过这篇 Database War Stories #5: craigslist 我们能了解一下 Craigslist 的数据库架构以及数据量信息。
数据库软件使用 MySQL 。为充分发挥 MySQL 的能力,数据库都使用 64 位 Linux 服务器, 14 块 本地磁盘(72*14=1T ?), 16G 内存。
不同的服务使用不同方式的数据库集群。

论坛

1 主(master) 1 从(slave)。Slave 大多用于备份. myIsam 表. 索引达到 17G。最大的表接近 4200 万行。

分类信息

1 主 12 从。 Slave 各有个的用途. 当前数据包括索引有 114 G , 最大表有 5600 万行(该表数据会定期归档)。 使用 myIsam。分类信息量有多大? “Craigslist每月新增的帖子近 10 亿条”,这句话似乎似乎有些夸张,Eric Scheide 说昨日就超过 330000 条数据,如果这样估计的话,每个月的新帖子信息大约在 1 亿多一些。

归档数据库

1 主 1 从. 放置所有超过 3 个月的帖子。与分类信息库结构相似但是更大, 数据有 238G, 最大表有 9600 万行。大量使用 Merge 表,便于管理。

搜索数据库

4 个 集群用了 16 台服务器。活动的帖子根据 地区/种类划分,并使用 myIsam 全文索引,每个只包含一个子集数据。该索引方案目前还能撑住,未来几年恐怕就不成了。

Authdb

1 主 1 从,很小。
目前 Craigslist 在 Alexa 上的排名是 30,上面的数据只是反映采访当时(April 28, 2006)的情况,毕竟,Craigslist 数据量还在每年 200% 的速度增长。
Craigslist 采用的数据解决方案从软硬件上来看还是低成本的。优秀的 MySQL 数据库管理员对于 Web 2.0 项目是一个关键因素。
EOF


11 thoughts on “Craigslist 的数据库架构

  1. kefizh

    这么大的流量,主数据库的并发写入操作应该也非常繁忙,是不是用innoDB引擎性能会更好?

    Reply
  2. Ken

    有人试过 1 张表里用 MyISAM 存储超过 1000 W 数据还查询很快的吗?慢死了吧!!

    Reply
  3. wall

    嗯,同意,craiglist绝对是个奇迹,技术上并非是一流。
    MYSQL的软件提升毕竟有限,如果从头再来选择,估计它肯定从SAN开始。毕竟基于块的访问速度更快

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *