Facebook在MySQL中陷入了“比死还惨的命运”

2011-07-19 阅读 41

本文是关于Facebook、MySQL的,尝试着翻译了下,不足之处望多多包含。

据数 据库开拓者-Michael Stonebraker说,Facebook正在使用一个巨大而又复杂MySQL数据库体系,它现在的状态等同于“比死还悲惨的命运”,而唯一的出路就是“咬紧牙关,重写一切”。

虽然,这并非一定是Facebook的问题。Stonebraker说到,这种状况并非一定是facebook的问题。类似的问题也正是创业型网络公司,从小成长为巨型企业时所遇到的。

在这周的一个采访中,Stonebraker向我解释道:Facebook把MySQL数据库划分为4000个碎片来处理网站数据的量,运行9000个memcached实例,以此保证正常服务。这些数字已经经过了验证,毕竟facebook的mysql使用历史并非什么秘密。

从2008年开始oft-quoted的统计来看,有1800和805服务器用于MySQL、memcached的运行,尽管多个MySQL碎片和memcached实例能运行在同一台服务器上。

Facebook在Facebook网页上坚持用MySQL,致力于更新读者许多工作的进展来建立数据库模型。

MySQL广泛存在的问题是不能建立webscale应用或者是一定会处理过多的成交量。Stonebraker说MySQL和其他SQL数据库的问题是消耗太多资源来完成任务(例如:维持CAID合理管理和处理多线程)和相对少数在实际上发现和服务数据的。它可以用一个小的数据集来处理一个小的应用,但是它很快的就会以数据和成交量的成长变化很多。

像Facebook这样的公司存在的一个问题,因为它有那么多的用户数据,每个用户点击一个“Like”更新他的状态、加入一个新的小组、或者另外可以作用于网站数据库,都会使网站MySQL数据库不得不去处理。每一秒一个用户不得不去等待Facebook向数据库请求的时间,而这个时间是用户觉得值得等待的。

这不是Facebook一个的问题

如Stonebraker的观点,“老SQL没有任何用处”应该被替代了。他解释,毕竟SQL比web早几十年被创建出来,移动设备和传感器永远的改变了怎样、多久访问一次数据库。

但是像MySQL这样的产品也是开源和免费的,SQL的技术不难以获得。如Stonebraker所说,这就意味着,当急切的创建一个网站产品,那么MySQL是很自然地被选择。不过他们打算hockey-stick-like像Facebook做的那样的增长速度,他们不会真的有时间去重新设计数据库服务。相反,他们最终应用Band-Aid 修复和解决他们遇到的问题,但这从来没有真的的解决数据管理不足的根本问题。

曾有各种各样的尝试,去克服SQL在性能和可扩展性的问题,包括两年前 buzzworthy NoSQL的运转。无论怎样,很快的发现当NoSQL可以更快更好的运作时,在ACID还是一样。正如我在今年更早的一片文章中关于Citrusleaf的解释,一个NoSQL自称维护ACID性能的供应商:
ACID是“原子性,一致性,分离性,持久性”的缩略词 — 一个相对复杂的方式执行准确可靠的交易,像e-commerce在这方面做的很重要,每一次交易都依靠数据的准确性。Stonebraker认为牺牲ACID是一个可怕的主意,同时他提示,NoSQL数据库最终只会稍微快一些,因为它们需要写一些一致性或者其他功能到应用程序的执行逻辑中。

Stonebraker还说,NoSQL作为非结构化存储和服务或者如文件的半结构化数据是一个好的选择,但不太适合关系型数据库。Facebook,例如,为某些任务创建Cassandra也使用Hadoop-based HBase,但是它仍然是一个MySQL核心的需要。

NewSQL的处理

Stonebraker-一个作为电脑科学家的企业家,解决了NoSQL和oldSQL的缺点。参考以前的SQL,写出了NewSQL(这个词来自于分析师-Matthew Aslett)或者可扩展SQL。推动了像Xeround,Clustrix,NimbusDB,GenieDB公司和Stonebraker自己的公司VoltDB,NewSQL产品保持ACID性能-消除其他功能来减慢SQL性能的损失。VoltDB,一个联机事务处理(OLTP联机事务处理)数据库,利用一些方式提高速度,包括完全的在内存运行代替在磁盘上。

使得针对Stonebraker变得容易了,但是在过去的一年里的投资和客户中,NewSQL厂商得到的好评,已经获得很多人的关注。没有保证他们能够解决Facebook在MySQL的灾难,Facebook数据库的复杂性的问题是该公司的代码开源--也许NewSQL将会帮助下一代互联网创业避免陷入同样的问题。直到,成为了Web3.0的时代。

头像图片是由Flickr jimw提供,错误图片由Flickr rubenerd提供。

原文地址:<http: gigaom.com="" cloud="" facebook-trapped-in-mysql-fate-worse-than-death="">

FACEBOOK MYSQL

/http:

更新于 2023年03月28日