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的容量,而且每秒支持數百萬次事務,而無需手動數據庫分片或應用程序分區,特別適合有着高併發、高吞吐量事務處理需求的業務場景。設計模式
基本屬性緩存
序號 | 對比項目 | 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進行加速等。若是將Ignite做爲一個內存分佈式數據庫,那麼從功能性來講,與Oracle的TimesTen Scaleout產品基本對等,TimesTen具備的功能,Ignite大致都有,可是TimesTen Scaleout做爲一個專業的內存分佈式數據庫,在部分功能的細節設計上,在與Oracle產品的功能整合上,作的更好。但就Ignite來講,它不只僅是一個內存分佈式數據庫,在已有的系統中,若是引入了Ignite,至關於引入了一個多功能的數據處理平臺,爲已有系統的將來發展和演進,提供了更多的可能,會極大地加強已有系統的擴展性,保護用戶原有的投資。架構
而若是引入了Oracle的TimesTen軟件,會進一步加強與Oracle的綁定,不論是從行業發展的趨勢來講,仍是從下降大型企業的IT支出成原本說,TimesTen都未必是最佳的選擇。併發