2012-10-08 36 views
4

我對存儲財務相關事務有特定的要求。這需要事務支持,高可用性,容錯性和橫向可伸縮性。我正在尋找一個開源解決方案。水平可擴展/可複製數據庫

現在據我所知,免費的RDBMS(類似於Postgres或MySql)都提供了這個功能。我已經使用了cassandra作爲以前的項目,在複製& sharding方面有很大的便利。哇,我也喜歡它的表現。但不幸的是,沒有Cassandra提供的ACID交易支持,因爲它是在CAP的基礎上構建的。

現在,我甚至不關心偉大/快速的表現。我正在尋找一個比RDBMS多一個或者更多的性能,但是複製&分片。原因是我們正在尋找處理負載的許多服務器,並且每個實例都應該能夠在任何時間點爲某個x客戶端提供服務。

任何一個可以想到一個自由(或非常划算子500美元)RDBMS數據庫或否 SQL商店 - 事務支持(提交/回滾) - 複製 - 分片。

目前我們在選擇列表中有ravendb。你認爲這會合適嗎?

PS: 我看了下面的鏈接 Can you recommend a database that scales horizontally? - 在2008年進行了討論,並且非常陳舊。

+0

MongoDB具有高可用性,容錯性和水平可伸縮性,但又不是ACID事務。沒有「文檔級鎖定」。我們需要類似的項目,我們最終使用Mongo並在應用程序本身中實現了基本的文檔鎖定機制。 –

+0

謝謝Taran。是的,我知道Mongodb。據我所知,它也存在全局寫鎖的問題,這會導致寫入性能下降,正如本論壇的一些用戶所討論的。 – Muthu

回答

2

RavenDB將是一個很好的批處理。 它可以水平擴展,支持分片和複製。 它具有ACID事務和自動故障轉移。

在這裏看到更多的細節:http://ravendb.net/features

0

您可以嘗試使用同一個數據庫的多個實例/副本進行縮放,並將它們與提供分佈式ACI的JTA保持同步,這對於輕鬆ACID水平縮放非常有用。儘管寫入的代價是線性昂貴的,但是讀取可以在節點之間分配,並且通常讀取比寫入更頻繁。

這個article展示了這種方法的一個例子,代碼基於特定的Java ORM工具(JEPLayer),但是核心原理JTA可以應用於不同的數據庫JTA兼容工具。