写点什么

Digg 与 Reddit 加入 NoSQL 阵营

  • 2010-03-25
  • 本文字数:1571 字

    阅读完需:约 5 分钟

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

2010-03-25 07:584051
用户头像

发布了 133 篇内容, 共 39.8 次阅读, 收获喜欢 1 次。

关注

评论

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

你告诉我太卡了,那是你不晓得性能优化之app卡顿优化,销售应届毕业生的面试题

android 程序员 移动开发

你知道App为什么会Crash吗?,Android性能优化之APK优化

android 程序员 移动开发

使用Google开源库AutoService进行组件化开发,移动应用开发课程设计心得

android 程序员 移动开发

从零开始学数据结构和算法-(五)-分治法-(二分查找、快速排序、归并排序)

android 程序员 移动开发

仿微信视频通话大小视图切换(SurfaceView实现),面试官6个灵魂拷问

android 程序员 移动开发

作为一名Android开发者,你有过迷茫吗?,面经解析

android 程序员 移动开发

演进实录|不同阶段的企业如何搭建监控体系?

阿里巴巴云原生

阿里云 Kubernetes 容器 云原生 监控工具

作为面试官,如何考察工程师的软素质,Android开发经典实战

android 程序员 移动开发

做了三年Android,公司发不出工资了,怎么办,阿里、腾讯大厂Android面试必问知识点系统梳理

android 程序员 移动开发

从零开始分析InstantRun源码,kotlin实现接口

android 程序员 移动开发

从面试无人问津到手拿百度offer,还原一段野生程序员的成长经历

android 程序员 移动开发

【设计模式】第八篇 - 原型模式 - DOTA-幻影长矛手

Brave

设计模式 原型设计 11月日更

使用 Flutter 快速实现聊天应用,计算机移动应用开发

android 程序员 移动开发

使用更为安全的方式收集 Android UI 数据流,深入浅出Android

android 程序员 移动开发

作为一名Android面试官,这些面试官常问的开发面试题你都掌握好了吗?(1)

android 程序员 移动开发

做android开发一直不相信35岁危机,好像被自己遇到了,9次Android面试经验总结

android 程序员 移动开发

做了6年Android开发,你会的还只有初级工程师的技术吗?

android 程序员 移动开发

从零开始学数据结构和算法 (五) 分治法 (二分查找、快速排序、归并排序)

android 程序员 移动开发

使用 Kotlin API 实践 WorkManager,看完豁然开朗

android 程序员 移动开发

做个酷炫的“锤子” 开关效果,kotlinwindows桌面开发

android 程序员 移动开发

使用C#创建,查看,2021大厂Android面试题精选

android 程序员 移动开发

全网唯一一份,从入门到精通的Android进阶学习笔记整理,Android应用层

android 程序员 移动开发

作为程序员的我们应该如何在当今国内的信息产业生存?,万字解析

android 程序员 移动开发

我以为对jvm性能调优很了解,直到我到阿里面试完之后

Java 程序员 JVM

你确定自己学会了自定义MarqueeView?这个你会吗?进来看看吧

android 程序员 移动开发

全网热议:Android 在未来是否会走向终结?,android路由实现

android 程序员 移动开发

任性!我开发了一款自己用的天气预报app,android双击事件响应

android 程序员 移动开发

作为Android开发者,你真的知道Android按下开机键到启动发生什么吗?

android 程序员 移动开发

作为一名Android面试官,这些面试官常问的开发面试题你都掌握好了吗?

android 程序员 移动开发

作为一名面试者你应该知道的【上-带大厂面试题】,android组件化开发与sdk

android 程序员 移动开发

质量基础设施一站式服务平台,NQI云服务平台搭建

电微13828808271

Digg与Reddit加入NoSQL阵营_架构_Abel Avram_InfoQ精选文章