Oracle 記憶體資料庫 TimesTen 是一個針對記憶體進行了最佳化的關聯式資料庫,它為應用程式提供了當今即時企業和行業(如電信、資本市場和國防)所需的即時響應性和非常高的輸送量。(產品資料表)
Oracle 記憶體資料庫 TimesTen 通過改變資料在運行時駐留位置的假設來提供即時效能。通過在記憶體中管理資料,並相應地最佳化資料結構和訪問演算法,資料庫操作能夠以最大效率執行,從而大大提高響應速度和輸送量,甚至能夠與完全使用快取磁碟的 RDBMS 相媲美。Oracle 記憶體資料庫 TimesTen 可嵌入到應用程式中,從而消除了處理序間通訊和不必要的網路操作,以進一步提高資料庫操作的效能。
記憶體資料庫通常被誤認為僅限於單使用者應用程式,並且容易在伺服器發生故障時遺失資料。對於 Oracle 記憶體資料庫 TimesTen 而言,事實並非如此。使用帶有提交後讀取 (committed-read) 隔離的行級鎖定機制,多使用者和多線程應用程式變得很普通。通過內部記錄版本消除了讀程式和寫程式之間的鎖爭用,從而提供了一致的回應時間和進階別的並發。 Oracle TimesTen 資料庫是持久的且可恢複。 應用程式可以根據其效能要求選擇事務 ACID 屬性的設定。 根據標準關係資料模型,可以使用 SQL、JDBC 和 ODBC 訪問 Oracle TimesTen 資料庫。 任何熟悉 RDBMS 和 SQL 介面的開發人員使用 Oracle 記憶體資料庫 TimesTen 可以立即提高開發即時應用程式的效率。
Oracle 記憶體資料庫 TimesTen 支援各種部署配置以適應各種情況,從臨時尋找緩衝到操作資料儲存、再到任務關鍵的交易處理系統。
由於應用程式的任務關鍵特性,大多數部署都添加了 Replication - TimesTen to TimesTen 選件以實現高可用性和Server Load Balancer。對於應用程式層緩衝(如對服務導向架構的支援),Cache Connect to Oracle 選件可將記憶體資料庫擴充成一個可更新的緩衝,從而管理 Oracle 資料庫與 Oracle 記憶體資料庫 TimesTen 之間的資料載入和同步。
TimesTen作為一個記憶體資料庫,資料完全放置在記憶體中,那麼它的資料持久性如何保持?以及如何?高可用性保證的呢?
TimesTen的資料持久性是通過磁碟上的DataStore檔案和Log檔案保持的。TimesTen每一次操作,都會先緩衝在記憶體的LogBuffer中,然後由背景守護進程非同步地同步到磁碟上的Log檔案中。TimesTen每隔一段時間或者收集到一定的髒日誌量後,就觸發一次Checkpoint,將記憶體中變化的資料增量寫到磁碟上的DataStore檔案中,然後清除掉已經同步過的Log檔案。所以當掉電,或者其它故障時,TimesTen可以通過這些檔案進行自動回復。
至於高可用性保證,如果是單節點,不想有任何的資料丟失,TimesTen可以通過設定參數DurableCommits =1來保證,即每次提交都強制性同步到磁碟上(預設為非同步方式),這種情況下,資料庫寫的效能會受到影響。所以如果既想保持高效能,又能保證資料的高可用性,TimesTen通過Replication機制完美地達到了上述兩點,通過Replication,TimesTen在多個節點的之間保持資料的自動高效同步。節點之間由多種複製模式可以選擇:Active-Standby,Active-Active,Active-Standby-Disaster Recovery等等;資料的傳送模式也有同步、半同步、完全同步等三種模式。
TimesTen主要的四個用途:
1)主要資料庫:為即時應用提供服務的主要資料庫。這時候它和別的關係型資料庫一樣,作為整個應用系統中的一塊:後台資料庫,提供對資料的檢索和更新功能。
2)即時資料管理:這時候TimesTen 和傳統的資料庫結合在一起,即時的資料存放區在TimesTen中,而大量的資料還是儲存在Oracle中,TimesTen和Oracle之間通過Cache Group來進行資料的互動。
3)訊息中轉:這時候TimesTen作為一個訊息的中轉站,可以在不同的應用之間架設一個訊息傳遞的橋樑;不同的應用通過TimesTen,以訊息的形式來進行資料的互動。
4)資料整合點