作用介紹
在重研所多個項目中都有記憶體資料庫的套用,但重研所套用的記憶體資料庫有多個版本,沒有統一的版本,目前以fastdb占主流。普遍存在以下問題,訪問方式不符合SQL92規範,不支持客戶伺服器模式,沒有完整的API,可靠性不高,和資料庫之間的數據互操作困難等等。Times Ten公司簡介
Times Ten公司是一家私有的實時數據管理軟體供應商,主要為電信、網路、證券交易等行業提供基礎架構軟體,並用這種軟體進行事件管理、交易和數據的工作。其在全球的客戶包括Amdocs、亞斯貝克通信公司、愛立信、JP摩根、nec、諾基亞、斯普林特、美國航空等。這家公司目前支持的系統包括實時計費系統、股票交易系統、呼叫中心繫統、航線運營系統等。TimesTen 發展歷史
1992-起源於惠普實驗室研究項目
針對電信網路套用的記憶體資料庫研究1996-TimesTen 公司成立
核心成員都來自HP實驗室原來成員, 第一個商業版產生(TimesTen2.0)2001-增加Cache Connect功能
2005-由Oracle 收購
ORACLE 收購 Times Ten 標誌Oracle進入記憶體資料庫領域。11主要的版本產生(TimesTen6.0)
200+ 客戶,1500+ 部署系統
至今-整合,迅速發展...
官方定義
Times Ten官方定義:TimesTen?/Cache (Cache) is a real-time dynamic data caching system. It includes TimesTen‘s in-memory database and data exchange technologies. Together, they enable applications to combine the real-time performance of TimesTen with the large storage capacity of an RDBMS.特點
Times Ten 特點:符合RDBMS標準的獨立記憶體資料庫服務
支持SQL92
支持 ODBC & JDBC
高性能
可以作為Oracle資料庫的前端Cache,目前不支持其他資料庫
支持本地的高速訪問和網路訪問方式
可靠性高。支持完整日誌,支持鏡像複製功能。
不是開原始碼,需要較高費用
目前不支持存儲過程和觸發器
簡介
1.同步Oracle->TimesTen
同步的原理是在oracle上面更新的數據會通過trigger捕獲記錄下來,然後通過cache agent定期來獲取這些信息同步到TT。
TimesTen->Oracle
TT上的同步則是通過分析TT的操作日誌來獲得做了哪些DML操作,然後通過cache agent同步到oracle .
2.結構
一個TimesTen Data Manager可以管理多個DataStore。DataStore 是指TimesTen中的表、索引等放在記憶體段中的一個集合,類似與Oracle中庫的概念。DataStore由放在相應ODBC配置檔案中的一個DSN(Data Source Name)所定義,該DSN由一個名字和相關的屬性組成。
TimesTen也有自己的日誌檔案,以及存放日誌檔案的目錄(LogDir),預設的就是和DataStore放在同一個目錄下。但一般建議分開放。日誌的概念和Oracle的一樣,在回滾以及恢復的時候,都會用到它。
類似於Oracle中dbf檔案,負責TimesTen數據恢復的鏡像是checkpoint,恢復的時候先找到最近的檢查點檔案,然後結合日誌檔案一起恢復。checkpoint是為了記憶體中已經被修改的數據塊與磁碟數據檔案同步的一種資料庫事件。它提供了一種保持事務提交以後數據一致的手段。其寫檢查點檔案是增量寫的方式,不是整個數據都寫的。
checkpoint有兩個目地:確保數據一致性;使資料庫能快速地恢復。
3.連線
有三種模式:
Direct Driver連線:Timesten推薦連線方式,由於沒有了協定轉換的開銷,這種連線方式具有最高的效率。對於JDBC應用程式,可以通過JDBC庫訪問ODBC的direct driver。這種連線方式要求應用程式和Timesten資料庫處於同一台伺服器上。對於共享模式,資料庫被載入到共享記憶體中,多個應用程式可以共享訪問記憶體中的數據。可以減少TCP/IP,IPC方面的開銷。
客戶端/伺服器連線:當應用程式與Timesten不在同一個伺服器上,則應用程式將命令發給客戶端驅動,而客戶端和伺服器端一般通過TCP/IP協定通信,伺服器端得到應用程式提交給客戶端的請求並執行。
TimesTen 採用客戶機/伺服器架構模式運行雖然不如採用直接記憶體模式運行得快,但它還是很快的。TimesTen 客戶機/伺服器應用程式比連線到傳統的客戶機/伺服器資料庫的應用程式性能高;尤其是,與傳統的資料庫相比,TimesTen具有更高的吞吐能力。
Driver Manager連線:應用程式通過ODBC驅動管理器連線到Timesten,而這個驅動管理器一般是第三方提供的獨立於資料庫的驅動接口