Digg和Reddit都宣布他们打算迁移到Cassandra ,因为MySql的扩展性对于他们来说不够好。一些人认为MySql+memcache的方式不是一个实际的可扩展解决办法。
Digg在去年9月份发表了一份关于迁移到Cassandra的计划,这个月刚刚完成一个程序。在考察了其他的项目——HBase,Hypertable,Tokyo Cabinet/Tyrant,Voldmort,以及Dynomite之后,团队决定使用Cassandra,这是因为:
每个系统都有它的优点和缺点,但是Cassandra拥有一个能够混合好其他所有事物的方式。它提供了面对列(column-oriented)的数据存储方式,这种方式比键值存储的方式更多一点。它提供了分布式,高效的,点对点的聚集。虽然当前它缺乏一些核心的功能,但是它比起其他解决方案而言让我们和目标之间更进了一步。
Digg在LAMP之外,已经重建了整个基础框架。罪魁祸首就是MySql,它优化了很多读的操作,却不能合适地处理写的操作:
我们离开MySql最大的动机是,在一个快速增长见不到头的数据集上,越来越难以搭建一个高性能,密集型写入的系统了。这种快速增长迫使我们不得不进行使用横向和纵向分开的策略。这样就除去了关系型数据库的大部分价值。
依照我们系统的增长,最重要的是跨越多个数据中心的冗余,网络性能,以及增加或者快速地替换到其中坏的节点,而不会导致故障时间。我们计划继续使用常见的硬件,并且继续假设它会经常地出错。所有的这些在MySql越来越困难了。
另一个网站,Reddit,在使用memcachedDB时曾经遇到过问题,他们最初始的处理方法是增加内存,但是毫无疑问他们需要一个更长期的解决方案。他们在10天内,在Amazing Cassandra开发人员,论坛和EC2——它允许我们测试和部署Cassandra系统——的帮助下,完成到Cassandra的转换。
自从那些非常重要的网站,比如Facebook,Twitter,正在使用或者计划迁移到Cassandra,一些网站还公布了终结MySql+memcached的更实际的可扩展方案。Todd Hoffman不认为MySql会很快结束,但是这将不会是第一个解决方案的代表:
说得透彻一点,MySql+memcached的时间正在过去。它还将持续一段时间。老的技术很少有完全消失得情况。有一些依然还在服役(ride horses。一些人依然在使用CD。并且互联网也不会完全取代像电视一样古老的电磁广播技术,但是大多数会进入到一个新的时代……
显而易见地,在MySql + memcached背后,有很多恰当的观点,这些都被隐藏在新系统之中,仅仅因为他们有点过于笨拙了。开发者投入其中,填补空白,打磨边角,然后创建一个新的强健的平台,这将组成一种新的生态系统和新时代。
在Hoff’s 谈论”很明显,MySql+memcached的时代正在过去”的问题上,Mark Atwood不同意他的观点,他认为:memcached 还将持续很长一段时间:
为了获得更快的速度,而把memcached当做前沿技术时代,可能正在“过去”,当这不是因为memcached正在陨落,而是因为更多新增的技术(新增的技术,而不是取代的)正在兴起……
但是那不会是memcached的终结。高性能的键值存储在构建方面非常有用,无论自身使用它,还是把它当做一种子组件让其他组件使用它。
我确信memcached已经持续地演变。将会有更多的时间,更多的限制将被移除,更多的管理工具,更多使用memcached网络协议的其他系统,更多建立memcached之上的ORM和其他框架,在云计算的环境中,会有更多的协议实现。
Hoff 之后在他的帖子里面新增一段新的评语:“我不是说缓存或者MySql会消失,我非常坚信整个过程都是有关新的命题……正在过去的是MySql + memcached,以及这种相互补充的方式,以及以此作为默认平台的可扩展系统。”
同时MySql和memcached依然是一个解决扩展性的问题的优秀解决方案,创建其他的non-SQL解决方案看起来是为了那些大型的系统提供更好的结果。