2010-01-22 208 views
5

我們正在着手構建在線平臺(API,服務器,數據,Wahoo!)。對於上下文,假設我們需要構建類似twitter的內容,但是需要在現場活動周圍組織註釋(tweets)。有關直播活動本身的信息必須儘可能快速和一致地提供給客戶,同時有關該事件的評論可能會等待更長的時間才能發送。現場比賽結束後,我們將會閱讀更多。選擇數據庫技術

可伸縮性非常重要。我們想開始租用VPS切片,並從那裏進行縮放。我是雲端的粉絲,希望儘可能長時間呆在那裏。我們可能會使用紅寶石。

我確信我想嘗試一個文檔存儲而不是RDBMS。我喜歡無模式存儲的概念,以及側重於關鍵值的更容易擴展性的承諾。

問題是我不知道哪種技術最適合我們的平臺。我曾看過沙發,蒙戈,東京內閣,卡桑德拉和一個帶有斑點文檔的RDBMS。任何幫助爲這項特定工作選擇合適的工具?

回答

7

結帳通過BJ Clark比較NO SQL替代方案。

可伸縮性非常重要。

然後,你需要考慮從他的博客摘錄:

  1. 東京櫃 - 不結垢
  2. Redis的 - 不結垢
  3. 項目伏地魔 - 擴展
  4. 的MongoDB - 限制(分片已實施)
  5. 卡桑德拉 - 磅秤
  6. Amazon S3 - s CALES
  7. 沙發 - 不結垢 Clustering &複製)
  8. MySQL的 - 不結垢

並考慮HyperTable。這也是No-SQL替代方案中的一個重要競爭者。它是Google BigTable概念的開源實現。 我相信它的規模很好,因爲它被中國搜索引擎百度和娛樂門戶Rediff廣泛使用。

你在說:

有關現場活動 本身必須傳送到客戶端爲 快速,持續地信息, 而關於該事件的註釋可以 可能等待的時間長一點是 交付。在現場比賽結束後,我們將會在 之後重讀。

這就像Twitter的方法。您的編程語言選擇也非常重要,因爲Twitter最初與Ruby一起用於後端消息傳遞,但它不是一個正確的選擇,它們已將整個消息傳遞系統移動到Scala語言。

他們仍在使用Ruby作爲其前端。如果您想要使用非常適合可擴展環境的高可靠性容錯系統,那麼您應該考慮使用ScalaErlang

+0

+1爲優秀面試 – 2010-01-22 07:56:39

+0

爲什麼要點7.沙發 - 沒有規模? 看看http://cloudant.com/和http://couchio.com/ – filippo 2010-01-22 13:48:27

+0

是的,我也對沙發感到困惑。整體擴展的複製方法似乎存在一些嚴重的分歧。沙發傢伙列出了可擴展性作爲他們的主要特徵之一,而世界其他地方似乎吹噓他們。 – 2010-01-22 14:28:09

1

Ramesh有一個很好的總結。我想補充一點,Cassandra比vanilla Dynamo克隆(如Voldemort或Dynomite)擁有更豐富的數據模型:具有命名,排序列而非鍵/值的行。 Cassandra被Twitter,Mahalo,Ooyala,SimpleGeo,WebEx和其他人使用(http://n2.nabble.com/Cassandra-users-survey-td4040068.html),其中至少有一些在EC2或機架式雲服務器上運行Cassandra羣集。