InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Digg与Reddit加入NoSQL阵营

作者 Abel Avram 译者 黄璜 发布于 2010年3月25日

领域
架构 & 设计
主题
架构 ,
性能和可伸缩性

Digg和Reddit在这个月都宣布了将转向Cassandra ,因为MySQL对他们来说伸缩性不够了。一些人认为MySQL+memchche不再是事实上的伸缩解决方案了。

Digg在去年九月宣布了他们转向Cassandra的计划,而这一过程在这个月完成了。仔细比对了其它项目——HBase,Hypertable,Tokyo Cabinet/Tyrant,Voldemort,以及Dynomite——,他们最终选择了Cassandra,出于以下的考虑:

每个系统都有它自己的强项和弱项,但是Cassandra综合了各个方面。它提供了面向列的数据存储,因此这相比纯粹的key/value存储又更结构化一些。它通过分布式高可用的点对点集群来运作。尽管目前它的核心功能还有一些欠缺,但相较于其它方案而言,它更接近我们想要的。

Digg几乎重建了整个基础设施,跳出了LAMP栈。主要的起因是MySQL,如同任何其它的SQL数据库一样,它是为读取而作的优化,而不能很好的处理写入:

我们不再使用用MySQL的主要动机,是因为要在一个快速增长看不到头的数据集上,构建一个高性能密集写入的应用越来越困难了。这种增长迫使我们使用水平和垂直的分区策略,这就消除了关系型数据所带来的大部分价值了,同时仍然会产生各种开销...

随着我们系统的扩张,跨越多个数据中心的冗余,网络性能,以及增加容量和无宕机时间的更换失效节点对我们来说就尤为重要。我们计划继续使用廉价硬件,并假设失效是平常的。这些都为MySQL增加了难度。

另一个网站,Reddit,曾经出现过memcacheDB相关的问题,一开始他们通过增加更多的RAM来处理,但他们需要一个长久的解决方案是再明显不过的。他们在十天之内完成了向Cassandra的转换,在Cassandra开发者和社区的帮助以及EC2在测试和部署Cassandra的实例方面的支持下,只用了一名开发者就做到了。

因为许多重要的网站,比如Facebook或Twitter,都已经在使用或者计划迁移到Cassandra,一些人声称MySQL+memcached作为事实的伸缩性解决方案的时代结束了。Todd Hoff并不认为MySQL将会在即将来到的某个时间消失,但它不会再代表首位的解决方案:

从一个小的角度来看,很清楚MySQL+memcached的时代已经过去了。它会坚持一段时间。旧的技术很少完全的消失。一些人仍在骑马。一些人还在使用CD。而因特网也不会完全取代电视这种古老的电磁广播技术,但大多数将会奔向一个新的时代...

我们很清楚MySQL+memcached背后的许多思想都是说到了点子上的,这些都在新的系统里得到了保留,只是它的实现显得有点笨重。开发者参与进来,铺平了缺口,磨掉了棱角,创建了一个新的强健的平台,其本身成为了新生态系统和新时代的根基。

对于Hoff所说的"很清楚MySQL+memcached的时代已经过去了",Mark Atwood表示不同的意见,他认为memcached仍将会长期得到应用

memcached作为实现伸缩速度的前沿技术这一时代或许"过去"了,但这并不是因为memcached失败,而是因为另外的技术(并不是替代,而是补充)正在涌现...

但这不会是memcached的终结。可以说,这一高性能的key-value存储仍将是一个有用的构建模块,不管是对于其自身,还是作为其它的技术组件的子组件。

我肯定memcache将会继续演化。将会有更多的实现,更多的局限将会被移除,将会有更多的管理工具,还有更多的系统加上memcached的网络协议,而一些ORMs框架在构建时就会假设memcached可用,将会有协议方面的特性以及在共享托管和云环境方面的实现。

Hoff后来在他文章的评论中又说到:"我并不是想说缓存将会消失或者MySQL将会消失。我坚定的相信内存将是新的硬盘这一概念...所过去了的是MySQL与memcached,相辅相成的,作为开发可伸缩系统的默认平台。"

尽管MySQL与memcache仍将会是伸缩性问题的良好解决方案,但已经有新的non-SQL方案产生了,而它们看起来能为超大规模的系统带来更好的结果。

查看英文原文:Digg and Reddit Have Joined the NoSQL Camp

译者 黄璜 糊口靠的是Java Web,赶过SOA的潮,追过Cloud的风,真正欢喜的是Linux,向往的事情是研究网格计算。

发表人 冯 兰池 发表于
Re: ? 发表人 冯 兰池 发表于
Re: ? 发表人 Xu Liang 发表于
  1. 返回顶部

    发表人 冯 兰池

    Reddit不是用的postgresql吗?

  2. 返回顶部

    Re: ?

    发表人 冯 兰池

    越来越糊涂 reddit是用Cassandra代替memchche 还是代替原来的数据库??

  3. 返回顶部

    Re: ?

    发表人 Xu Liang

    用Cassandra代替了memcached+mysql

深度内容

大规模视频网站的计费与流量管理

本次分享将会就大规模视频网站的计费与流量管理这个话题,从操作层面细细进行讲解和分析,为系统工程师们揭示平日里我们没有关心的另一些内容。同时也希望本次分享能揭示行业中的一些“潜规则”,让互联网行业的流量与带宽管理更为开放与简洁。
本次演讲视频录制于QCon杭州2011

专访Jeffery Richter:Windows 8是微软的重中之重

Jeffery Richter以其多本Windows核心技术的经典著作而闻名,同时,他深入掌握微软的.NET等一系列核心技术,2012年1月,Jeffery Richter在北京接受了InfoQ中文站的专访,谈到Windows 8和WinRT编程,并就异步编程、Windows编程中的可扩展性、性能和安全性方面给出自己的建议。

应用云平台的可用性——从新浪SAE看云平台设计

云计算平台的可用性,相比传统互联网服务而言,更加复杂和困难,也更具有挑战性。本文借助新浪SAE云平台为读者讲述了云平台可用性的定义、如何打造高可用的平台,以及对云计算的用户提出了建议。

JVM定制改进 @ 淘宝

淘宝高度重视Java平台的健康发展,组建了一个团队专注于Java平台的底层部分的性能、功能与稳定性改进;工作主要基于OpenJDK中的HotSpot VM开展,其中一些通用的功能随后也会逐渐反馈给OpenJDK社区。希望能与使用Java平台开发应用的大家交流经验。
本次演讲视频录制于QCon杭州2011

"伤得起"的云计算应用——对云端应用之架构的思考

2011年4月21日至22日是值得云计算从业者纪念的日子。Amazon的IaaS服务出现故障,导致许多商业网站的服务中断,影响非常严重。作为云计算用户,我们需要思考的是,如何保证即便在云服务不可用的情况,我们的应用架构仍然能够屹立不倒?本文正是站在云计算用户的角度试图探讨这一问题。

让交付的速度跟上思考的速度

12人的技术团队,4组刀片服务器,每月20亿的访问量,每日1次准时部署,99.9%的可用性。这可能吗?当然。想知道如何做的吗?百姓网将与您分享他们在DevOps实践过程中的经验和技巧。
本次演讲视频录制于QCon杭州2011

架构之路——穿行在产品和业务之间

篱笆作为一家起源于社区的电子商务公司,反映到技术层面就是同时要面对产品和业务,以及经营战略的变化调整。如何在产品和业务的夹缝之间完成技术架构的抽象与平衡,寻找更有效的价值定位,这当中有些经验教训和个人感悟愿与众人分享。
本次演讲视频录制于QCon杭州2011

特性注入:成功三部曲

本文将对特性注入以及相关方法做一个扫盲性的介绍。我们会解释这个框架的关键要素,并附上实例来证实它们。为了让文章保持相对较短,我们不会深入到某个工具或方法中,而是会给出一些参考资料,以便大家做进一步的研究。