記憶體資料庫(timesten),顧名思義就是將數據放在記憶體中直接操作的資料庫。
基本介紹
- 外文名:timesten
- 官方定義:TimesTen/Cache is a real-time
- 發展歷史:1992-始於惠普實驗室研究項目
- 軟體特點:支持SQL92
軟體介紹,官方定義,發展歷史,軟體特點,技術概念,
軟體介紹
相對於磁碟,記憶體的數據讀寫速度要高出幾個數量級,將數據保存在記憶體中相比從磁碟上訪問能夠極大地提高套用的性能。同時,記憶體資料庫拋棄了磁碟數據管理的傳統方式,基於全部數據都在記憶體中重新設計了體系結構,並且在數據快取、快速算法、並行操作方面也進行了相應的改進,所以數據處理速度比傳統資料庫的數據處理速度要快很多,一般都在10倍以上。記憶體資料庫的最大特點是其“主拷貝”或“工作版本”常駐記憶體,即活動事務只與實時記憶體資料庫的記憶體拷貝打交道。
TimesTen記憶體資料庫是目前記憶體資料庫中最優秀的產品,在全球的客戶包括Amdocs、亞斯貝克通信公司、愛立信、JP摩根、nec、諾基亞、斯普林特、美國航空等。TimesTen 中的這個 Ten 據說就是指速度能達到基於磁碟的 RDBMS 10倍,作為大事務資料庫的前端資料庫會是一個不錯的選擇。
TimesTen公司被Oracle公司收購,它原本是一家私有的實時數據管理軟體供應商,主要為電信、網路、證券交易等行業提供基礎架構軟體,並用這種軟體進行事件管理、交易和數據的工作。這家公司支持的系統包括實時計費系統、股票交易系統、呼叫中心繫統、航線運營系統等。
官方定義
Times Ten官方定義:TimesTen/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.
發展歷史
1992-始於惠普實驗室研究項目
針對電信網路套用的記憶體資料庫研究
1996-TimesTen公司成立
核心成員都來自HP實驗室原來成員, 第一個商業版產生(TimesTen2.0)
2005-被Oracle 收購
11主要的版本產生(TimesTen6.0)
200+ 客戶,1500+ 部署系統
軟體特點
相對而言,Times Ten 特點:
技術概念
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,而這個驅動管理器一般是第三方提供的獨立於資料庫的驅動接口