Ignite內存計算平臺與Oracle TimesTen Scaleout對比

1.產品介紹

Ignitejava

Ignite內存計算平臺是一個高性能、集成化、混合式的企業級分佈式架構解決方案,功能強大,有先進的集羣管理功能,對於分佈式內存數據庫、流處理技術、分佈式計算、分佈式服務、分佈式數據結構、持久化、Hadoop和Spark加速等功能,提供了普遍的支持,用於大規模的數據處理,比傳統的基於磁盤或閃存的技術在性能上有指數級的提高。最新的版本在基於ZooKeeper的發現機制基礎上,支持擴展至上千個節點。該軟件由美國GridGain公司開發,於2014年將絕大部分功能捐贈給Apache基金會,命名爲Ignite,目前爲Apache基金會的頂級項目,GridGain公司還提供Ignite的企業版,具體能夠根據須要進行選擇。node

Oracle TimesTen Scaleout數據庫

TimesTen Scaleout是Oracle TimesTen 18.1版本的一個新的產品分支,是Oracle第一個商用關係型內存分佈式數據庫,支持分佈式,橫向擴展。這種新的體系結構使TimesTen內存數據庫可以擴展至幾十臺主機,達到數百TB的容量,而且每秒支持數百萬次事務,而無需手動數據庫分片或應用程序分區,特別適合有着高併發、高吞吐量事務處理需求的業務場景。設計模式

2.產品對比

基本屬性緩存

序號 對比項目 Ignite TimesTen Scaleout
1 是否支持開源 Ignite自己爲Apache2.0協議開源,還有企業版GridGain 商業軟件
2 技術支持 有開源社區技術支持,也有商業技術支持 商業技術支持
3 線性擴展 支持,使用ZooKeeper的發現機制,支持擴展至上千個節點。 支持,最多擴展至64個節點
4 內存分佈式數據庫 內存分佈式數據庫是Ignite的主打功能之一。 是Oracle第一個商用的內存分佈式數據庫。以前的TimesTen爲非分佈式架構
5 擴展功能 Ignite基於本身特有的分佈式架構,開發了完整的企業級分佈式架構解決方案,包括分佈式內存數據庫、流處理技術、分佈式計算、分佈式服務、分佈式數據結構、NoSQL數據庫集成、Hadoop和Spark加速等 做爲Oracle的商用內存分佈式數據庫產品,定位明確,功能專一
6 部署模式 支持多種部署模式,支持獨立部署,嵌入式部署,也能夠部署在雲環境中,對Kubernetes等新技術也有普遍的支持 支持嵌入式和獨立部署,能夠脫離Oracle獨立部署爲內存分佈式數據庫。安裝配置較爲複雜,對於新的技術,雲環境等支持較差。
7 客戶端協議 支持SQL、ODBC/JDBC、除了Java還支持.NET平臺,也支持Python、Ruby、PHP或者NodeJS,也能夠考慮使用Ignite的二進制客戶端協議 支持SQL和PL/SQL、支持ODBC/JDBC、OCI、ODP .NET,另外許多開源數據庫API和適配器也能夠與TimesTen一塊兒使用,包括 PHP、node.js、Ruby、Python、Go、R和REST等
8 監控等企業級功能 企業版有完善的監控管理工具、安全、滾動更新、數據中心複製等功能,有完善的圖形界面。Ignite自己提供命令行以及部分API,能夠進行簡單的監控方便運維。 提供命令行界面、圖形界面、存儲過程、API調用等多種形式的相關支持。
9 開發支持 提供了各類可能的方式方便開發,具體代碼改動工做量,取決於架構設計模式以及軟件使用方式。已有的代碼可能改動較多,也可能改動不多。 對應用開發透明,能夠輕易地將TimesTen部署進已有的系統中,代碼改動較少。
10 多平臺支持 支持常見操做系統平臺和CPU架構 支持常見操做系統平臺和CPU架構
11 綜合成本 綜合成本較低,技術支持有開源社區技術支持,也能夠購買商業技術支持。 Oracle的綜合成本高昂,包括軟件受權費、技術支持費、培訓費用等
12 成熟度 目前以每季度發佈一個版本的速度快速迭代。 TimesTen有近20年的歷史,可是TimesTen Scaleout爲Oracle的第一款商用內存分佈式數據庫產品。

內存分佈式數據庫安全

序號 對比項目 Ignite TimesTen Scaleout
1 SQL支持 支持兼容ANSI-99的SQL標準,支持DDL、DML語句。 支持兼容ANSI-99的SQL標準,支持DDL、DML語句,透明支持Oracle的相關技術
2 事務 不完整,在鍵值API層次支持ACID事務,基於通過一階段提交優化後的二階段提交機制。SQL層,僅支持原子性。 支持完整的ACID事務、多語句事務、約束和全局二級索引。
3 數據庫支持 支持提供JDBC/ODBC協議的傳統關係型數據庫,包括Oracle,也包括MySQL等其餘數據庫。 只支持Oracle。
4 數據同步 支持數據庫的通讀和通寫,支持多種數據同步方式,提供開發人員接口,自定義能力強。 有很是完善的數據同步方式。
5 故障恢復 基於WAL和檢查點等相關技術,有完善的故障恢復機制。同時也支持經過複製、備份等機制提升可用性。 TimesTen有事務日誌和檢查點文件存放在磁盤上。當系統重啓或者意外宕機,內存數據庫能夠從檢查點文件和事務日誌中獲得恢復。另外,還能夠經過複製技術來提升可用性。
6 數據庫模型 鍵值存儲,經過H2引擎提供關係型功能。 關係型數據庫
7 並置處理 經過將計算帶到數據實際駐留的服務端節點,會在數據實際存儲的地方執行高級的業務邏輯或者分佈式SQL,甚相當聯,避免了昂貴的序列化和網絡開銷 不支持
8 索引 支持 支持
9 緩存維護操做 使用標準DDL語法,添加了部分專有屬性。 專有的CREATE CACHE等語法,須要一段時間的學習。
10 開發工具 支持JDBC協議的工具,均可以接入Ignite。 Oracle SQL Developer對TimesTen有更好的支持
11 開發便利性 Ignite爲常見的、主流開發框架提供了集成的支持,包括Spring、Hibernate、MyBatis、Spring Data JPA等等。 僅提供JDBC/ODBC等標準協議的支持。
12 數據預熱 若是開啓了原生持久化,系統重啓無需預熱數據。 不支持

擴展特性網絡

在內存分佈式SQL數據庫功能以外,Ignite相比TimesTen,還提供了大量的擴展特性,好比:數據結構

  • 分佈式服務:分佈式服務能夠在集羣中任意部署自定義的服務,能夠實現和部署任意服務,好比自定義計數器,ID生成器,分級映射等;
  • 數據注入和流計算:Ignite流式計算能夠以可擴展和容錯的方式處理連續不中斷的數據流。能夠與主要的流處理技術和框架進行集成,好比Kafka、Camel、Storm或者JMS等,它們爲基於Ignite的架構帶來很是強大的功能;
  • 分佈式計算:分佈式計算是經過並行處理的方式來得到更高的性能,更低的延遲以及線性可擴展性,Ignite提供了一組簡單的API,在集羣內的多臺計算機中執行分佈式計算和數據處理,該功能針對傳統的數據庫存儲過程,造成了完整的替代方案;
  • 分佈式數據結構:Ignite以分佈式的形式支持基於java.util.concurrent框架的大部分數據結構。好比,能夠在一個節點上使用java.util.concurrent.BlockingQeque加入一些東西,而後在另外一個節點上獲取它。或者有一個分佈式的ID生成器,它能夠保證全部節點上的ID惟一性;
  • 消息和事件:Ignite提供了集羣範圍的高性能的消息功能,支持基於發佈-訂閱以及直接點對點通訊模型的數據交換。當在分佈式網格環境中發生各類事件時,Ignite的分佈式事件功能可使應用收到通知。能夠自動地收到集羣內的本地和遠程節點上發生的任務執行、讀寫和查詢操做的通知;
  • 機器學習:Ignite的機器學習是一套簡單、可擴展以及高效的工具,能夠構建可預測的機器學習模型,而不須要昂貴的ETL;
  • 大數據組件支持 :Ignite爲Apache體系的不少技術提供了普遍的支持,包括與Apache旗下的NoSQL數據庫集成,好比Cassandra等,爲Hadoop和Spark進行加速等。

3.總結

若是將Ignite做爲一個內存分佈式數據庫,那麼從功能性來講,與Oracle的TimesTen Scaleout產品基本對等,TimesTen具備的功能,Ignite大致都有,可是TimesTen Scaleout做爲一個專業的內存分佈式數據庫,在部分功能的細節設計上,在與Oracle產品的功能整合上,作的更好。但就Ignite來講,它不只僅是一個內存分佈式數據庫,在已有的系統中,若是引入了Ignite,至關於引入了一個多功能的數據處理平臺,爲已有系統的將來發展和演進,提供了更多的可能,會極大地加強已有系統的擴展性,保護用戶原有的投資。架構

而若是引入了Oracle的TimesTen軟件,會進一步加強與Oracle的綁定,不論是從行業發展的趨勢來講,仍是從下降大型企業的IT支出成原本說,TimesTen都未必是最佳的選擇。併發

相關文章
相關標籤/搜索