內存數據庫的比較

這裏比較四個內存數據庫系統情況,分別是Timesten、AltiBase、ExtremeDB、CacheDB(自研),需要說明的是,這是這段時間的粗略感性認識(並沒有經過一段時間的使用,是換不來理性的客觀認識)

 

一、市場與技術支持比較

項目

市場及應用領域比較

排行

Timesten

全球化,領域全面,金融領域有應用。

2

AltiBase

韓國及東南亞,分佈較廣,電信市場爲主體

4

Extreme

全球化,領域全面,在國內的金融領域有大商所撮合系統、國際有印度證券風控系統

1

CacheDB

集中在電信、廣電、監控領域。…

3

 

項目

金融領域和電信領域對數據庫的要求特性比較

金融領域

數據的複雜度和量很高很大。傳統應用對數據訪問性能要求不高,近年來對性能要求在提高

電信領域

數據的複雜度較低,量很大,對數據訪問性能要求一直都很高。

 

項目

市場及應用領域比較

排行

Timesten

市場老大,不見得會強力支持。

3

AltiBase

中國區的技術支持力量薄弱。

4

Extreme

感覺會提供更好的支持。

2

CacheDB

… …

1

 

二、數據庫集成特性比較

項目

耦合特性比較

排行

Timesten

鬆耦合(獨立的不同進程),可採用共享內存直連和CS兩種模式進行訪問。

3

AltiBase

鬆耦合(獨立的不同進程),可採用共享內存直連和CS兩種模式進行訪問。

2

Extreme

緊耦合(作爲一個庫嵌入應用進程),可通過共享內存進行不同應用間的數據共享。

4

CacheDB

既支持緊耦合模式(小容量,作爲一個庫嵌入應用進程)、也支持鬆耦合模式(大容量,獨立的不同進程,採用CS模式進行訪問)

1

 

項目

接口特性比較

排行

Timesten

JDBC/ODBC/OCI,支持SQL交互

4

AltiBase

JDBC/ODBC/ACI,XDB支持API,支持SQL交互

3

Extreme

API,支持SQL交互

2

CacheDB

API,支持SQL交互

1

 

項目

系統複雜度

排行

Timesten

難管理

4

AltiBase

較易管理

2

Extreme

易管理

1

CacheDB

易管理

1

 

三、數據庫通用特性比較

項目

表特性比較

排行

Timesten

行表;

2

AltiBase

行表

2

Extreme

行表、列表,還可並存

1

CacheDB

行表

3

 

項目

索引特性比較

排行

Timesten

T樹、散列(靜態,可通過語句動態調整),主/外鍵

2

AltiBase

B樹、散列(靜態,可通過語句動態調整),主/外鍵

2

Extreme

B樹、散列(動態,但可能會影響應用的訪問)、KD樹、R樹、前綴匹配樹可以通過OID等實現

1

CacheDB

散列(靜態,可修改配置重啓生效,負載均衡模式下對業務不受影響),

T樹(目前不支持範圍查詢,僅僅用在漫遊號碼分配應用中)

前綴匹配樹(用作號碼分析)

不支持主/外鍵

3

 

 

 

 

項目

視圖

排行

Timesten

支持

1

AltiBase

只讀

2

Extreme

不支持

3

CacheDB

只讀,相比傳統視圖而言,功能更簡單。

2

 

項目

事務特性比較(目前風控系統不需要事務)

排行

Timesten

支持事務模型,默認不立即提交。

1

AltiBase

支持事務模型,默認立即提交。

1

Extreme

支持事務模型,必須手工提交。(非事務系統操作麻煩一些)

2

CacheDB

不支持事務模型。

3

 

項目

序列特性比較(目前風控系統不需要序列)

排行

Timesten

支持

1

AltiBase

支持

1

Extreme

不清楚是否支持

2

CacheDB

不支持

2

 

項目

觸發器特性比較。

如果緊耦合模式下,一般不需要,但從數據庫複製數據到應用時應該支持。

鬆耦合模式下,應該要能支持(把部分計算的工作放在數據庫後臺,爲的是減少通信量)

排行

Timesten

支持腳本性觸發器或外掛C性驅動,但支持的特性不清楚

2

AltiBase

支持腳本性觸發器,但支持的特性不清楚

2

Extreme

支持C性驅動,通過Event實現事件觸發等。

2

CacheDB

支持C性驅動,緊耦合方式下,僅在數據庫動態通知到應用時支持。鬆耦合模式下在應用修改時也支持(動態庫架構)。

1

 

項目

數據類型比較

排行

Timesten

與Oracle一樣

3

AltiBase

支持C數據類型和擴展類型

2

Extreme

支持所有的C數據類型,還支持時間,變長數據類型及大文件數據類型如,string,vector,blob。

1

CacheDB

僅支持C數據類型

1

 

項目

查詢特性比較(無條件查詢、條件查詢<索引查詢、非索引查詢,定值查詢、範圍查詢>、分段查詢<遊標>、分組查詢、排序查詢、模糊查詢)

排行

Timesten

都支持

1

AltiBase

都支持

1

Extreme

都支持,可以通過API和SQL等模式進行排序查詢,另外也還要落實大量的排序字段對系統性能的衝擊(這個需要根據應用場景進行測試,因素包括事務大小,環境信息等)。

2

CacheDB

不支持分組查詢、排序查詢、模糊查詢、範圍查詢

目前模糊查詢的具體需求還不清楚,如果只是正則表達式模式,還是比較好加的。

增強範圍查詢的能力較難,範圍查詢支持後,分組排序查詢就不是難點。

4

 

四、數據庫持久特性比較

項目

純內存表

排行

Timesten

支持

1

AltiBase

支持

1

Extreme

支持

1

CacheDB

支持

1

 

項目

部分字段持久化

排行

Timesten

不支持

4

AltiBase

不支持

4

Extreme

不支持

4

CacheDB

支持

1

 

項目

本地文件持久化

排行

Timesten

支持

1

AltiBase

支持

1

Extreme

支持

1

CacheDB

支持

1

 

項目

數據庫持久化

排行

Timesten

支持Oracle,其它數據庫的持久化,需要應用自行擴展

2-2

AltiBase

支持HDB持久化(性能較好),但HDB接受程度需要打問號。

其它數據庫的持久化,需要應用自行擴展

3-1

Extreme

不支持,需要應用自行擴展

4-4

CacheDB

支持Oracle、MySql、SyBase無縫集成。尤其是Oracle和MySql

1-2

第一個排行是指支持的能力,第二個排行指支持的性能

 

項目

數據庫部分列加載

排行

Timesten

支持

1

AltiBase

不支持

4

Extreme

X

4

CacheDB

支持

1

 

項目

數據庫部分行加載

排行

Timesten

支持,還能進行動態換出

1

AltiBase

不支持

4

Extreme

X

4

CacheDB

支持,不能進行動態換出

2

 

項目

數據庫故障對系統的影響

排行

Timesten

無影響,有本地CheckPoint文件和增量日誌

1

AltiBase

無影響,壓根不從數據庫讀。

XDB+HDB配合下,是很好的模式,但是任然需要應用干預。

2

Extreme

無影響,有本地數據庫文件和redo,undo日誌

4

CacheDB

無影響,有本地備份文件和增量日誌

1

 

項目

數據庫變更對應用的反向複製

排行

Timesten

需要另外的組件,其它特性不清楚

3

AltiBase

無需另外的組件,利用複製特性實現,其它特性不清楚

1

Extreme

可以根據項目提供

4

CacheDB

需要另外的組件,可觸發應用,便於做處理

2

 

項目

數據入庫特性

排行

Timesten

同步日誌

2

AltiBase

同步日誌,採用複製特性實現

1

Extreme

同步日誌

4

CacheDB

同步日誌,

2

 

項目

高頻數據持久化策略(均沒有入庫的優化方案)

排行

Timesten

無特別方案

4

AltiBase

無特別方案

4

Extreme

無特別方案

3

CacheDB

目前高頻數據採用本地保存的策略

1

 

五、數據庫部署特性比較

項目

主備方案

排行

Timesten

支持,但需要應用層總裁

4

AltiBase

無,需要應用管理

1

Extreme

無,需要應用管理

1

CacheDB

無,需要應用管理

1

 

項目

均衡方案

排行

Timesten

支持,但不支持持久化

4

AltiBase

支持,複製模型較複雜,最多32個節點

2

Extreme

支持,無節點限制

1

CacheDB

支持,最多16個節點

1

 

項目

本地表支持情況

排行

Timesten

不清楚,從演示情況看,沒有體現出來

4

AltiBase

支持,因爲複製是基於表級別的

2

Extreme

支持,同時支持distributed特性,scatter和gather方式

1

CacheDB

支持,

1

 

項目

數據複製模型

排行

Timesten

僅僅TCP,數據庫級別複製

4

AltiBase

僅僅TCP,表級別複製

3

Extreme

主播、單播TCP、管道、單播UDP,表級別複製

1

CacheDB

主播或單播TCP,數據庫級別複製

1

 

項目

部分字段或部分記錄的複製支持

排行

Timesten

全表複製

4

AltiBase

全表複製

4

Extreme

全表複製

4

CacheDB

支持部分複製

1

 

六、數據庫一致性特性比較

項目

數據庫一致性策略

排行

Timesten

支持事務,支持全同步方式(性能低),也支持異步模式

2

AltiBase

支持事務,支持全同步方式(性能低),也支持異步模式

3

Extreme

支持事務,支持全同步方式(性能低),也支持異步模式

1

CacheDB

不支持事務,採用異步方式,允許系統暫時的不一致

1

 

項目

數據庫衝突補救

排行

Timesten

4

AltiBase

4

Extreme

可以通過mvcc的事務管理器進行衝突回滾,操作遵守ACID性

4

CacheDB

有單獨的組件,進行不同節點數據的一致性檢查(包括與持久性數據庫系統之間),並提供策略讓應用恢復數據,原則是“錯,也要錯成一致”

1

 

七、數據庫性能特性比較

項目

數據庫性能特性比較

排行

Timesten

有公司做過比較測試

4

AltiBase

2

Extreme

從公開的測試數據來看,性能比AltiBase還快,官方網站上有1TB+的數據測試報告,內包含,join,子查詢。http://www.mcobject.com/index.cfm?fuseaction=download&pageid=657&sectionid=154

1

CacheDB

沒有做過純內存表的測試,從均衡測試情況來看,性能應該與Extreme相當

2

八、綜合比較(沒加權重)

(1)沒有加權的統計,並不一定能說明什麼問題。

統計

1

2

3

4

Timesten

9

8

4

10

AltiBase

8

10

4

9

Extreme

12

6

2

11

CacheDB

19

7

4

1

(2)從應用市場來看,Extreme無疑佔據較大優勢,無論從市場佔有率還是在金融領域的應用,都是相當不錯的。

(3)從數據庫與應用集成特性來看,CacheDB和Extreme的集成難度最小、AltiBase稍高、Timesten最大。

(4)從數據庫通用特性來看,Extreme、AltiBase、Timesten都差不多,CacheDB因爲不支持範圍查詢(雖有T樹索引),而相對較弱。

(5)從持久性上看,CacheDB無疑排在首位。Extreme不具備數據庫持久化能力,需要應用層做工作【工作量應該很大】,如果接受HDB的持久化模式,在持久化性能上應該最好,否則也和Extreme一樣。另外還有一個重要特性CacheDB可以支持臨時字段。

(6)從分佈式模式上看,CacheDB無疑排在首位。其次是Extreme,再就是AltiBase,Timesten最差。

(7)從數據一致性上看,強一致性的AltiBase、Timesten無疑性能低,所以用處不大,非強一致性的模式下,CacheDB提供了一致性補救措施。

(8)從性能上看,無疑Extreme和CacheDB都佔據頭號位置,而Timesten最差。

 

綜合來看:

(1)      如果CacheDB支持了範圍查詢,無疑是首選。

(2)      如果ExtremeDB支持了Oracle數據庫的持久化,無疑是首選。

(3)      如果大家能接受AltiBase的私有磁盤數據庫系統,或者支持Oracle數據庫系統,無疑是首選。

(4)      如果上面都不滿足,那就只能選擇Timesten。

 

發佈了26 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章