Twitter停用Cassandra原因分析

作者: Time[后端技術]  發布時間: 2010-07-14 01:29  閱讀: 1356 次  推薦: 0   原文鏈接   [收藏]  

Twitter在其7.9一篇官方技術博客Cassandra at Twitter Today提到暫停使用Cassandra來代替MySQL存儲feed的計劃,這是Twitter一個重要的架構策略調整,因為之前Twitter一直是業界Cassandra方向的領頭羊。

For now, we’re not working on using Cassandra as a store for Tweets. This is a change in strategy. Instead we’re going to continue to maintain our existing Mysql-based storage. We believe that this isn’t the time to make large scale migration to a new technology. We will focus our Cassandra work on new projects that we wouldn’t be able to ship without a large-scale data store.

Twitter為什么要停用Cassandra

我們來分析一下Twitter停止使用Cassandra的原因
1. Cassandra仍然缺少大并發海量數據訪問的案例及經驗,Cassandra來源自Facebook,但是在Facebook內部Cassandra 目前只用在inbox search產品上,容量大約有100-200T。且Inbox Search在Facebook的基礎架構中也并非核心應用。并且還傳出不少rumors說facebook已經放棄Cassandra。

2. 新產品需要一定穩定期,Cassandra代碼或許還存在不少問題,但是Twitter如果投入大量的精力來改進Cassandra和比較優化MySQL 的投入來看有點得不償失。在QCon Beijing上@nk也提到 Cassandra在Twitter的內部測試中曾經暴露出不少嚴重的問題。

Twitter為什么之前選用Cassandra

此問題曾經在QCon Beijing 2010做過介紹,在去年的第一期廣州技術沙龍也有過交流,類似Twitter這樣的網站使用Cassandra的主要原因有
1. 數據增長規模需要不斷增加新服務器,傳統的切分方案在面臨增刪硬件時候需要手工維護,當數據規模速度增快,業務又不運行停機維護,手工維護的成本增加造成系統運維不堪重負。
2. 不能簡單增加服務器解決請求量增長的問題,需要數據架構師精細的規劃。
3. 每一個新的特性都需要重復評估數據拆分及訪問優化的問題,架構師需要投入大量精力review幾乎相同的業務場景。

Twitter的調整對于MySQL業界來說或許是一大利好,MySQL雖然受近期Oracle收購陰影的影響,但是對于目前大多數擁有海量數據訪問的網站依然是他們第一選擇。MySQL簡單,可靠,安全,配套工具完善,運維成熟。業界碰到的大部分可擴展性方面的問題在MySQL中其實都有清晰明確的解決方法。雖然重復sharding的問題很煩,增刪機器相關的運維工作也很繁瑣,但是這些工作量還是在可以接受的范圍內。

究竟Twitter這次策略改變是NoSQL運動的一次挫折還是前進中的一段小插曲?我們拭目以待。目前另外一大Web 2.0巨頭Digg仍然在使用Cassandra。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()