記憶體資料庫TimesTen介紹

redhouser發表於2012-03-07

全稱:Oracle TimesTen In-Memory Database

1,基本特性:
作為在應用層部署的嵌入式資料庫,以完全常駐實體記憶體的方式提供SQL方式的實施訪問.

2,透過以下方式提高響應速度和吞吐量:
 --在記憶體中管理資料
 --針對資料在記憶體中最佳化資料結構和訪問演算法
 --由於以嵌入在應用中,減少了上下文切換和網路開銷
 Note:正因為後兩條,TimesTen比完全快取、基於磁碟的資料庫效能優越

3,與基於應用的快取相比,優勢在於:
--最佳化的儲存結構和演算法
--SQL介面(遵循關係模型,支援SQL、JDBC、ODBC標準),便於應用擴充套件

4,TimesTen特性
--ODBC and JDBC interfaces
--SQL functionality(SQL-92)
--Access Control(user ACCOUNTS)
--Distributed transactions(XA,JTA)
--Database connectivity(direct driver connection,client/server connection,driver manager connection/ODBC)
--Durability(同步/非同步事務log,fuzzy checkpoint and blocking checkpoint)
--Query optimization(cost based optimizer,T-tree and hash index,nested-loop and merge join,hints)
--Concurrency(Read-committed and serializable isolation)
--Automatic data aging(time based or LRU based)
--Globalization support(single-byte and multibyte encodings/Unicode,character set automatic convert,linguistic sorting)
--Transaction log monitoring(Transaction Log API(XLA),Event Notification)
--Administration and utilities(interactive SQL,backup and restore, copy)
--Replication – TimesTen to TimesTen(activestandby or active-active,asynchronous or synchronous transmission,conflict detection and resolution and automatic resynchronization after a failed server is restored.)
--Cache Connect to Oracle(updatable cache for Oracle data,propagate updates in both directions and to automate passthrough of SQL requests for non-cached data. It automatically resynchronizes data after failures.)

5,事務日誌用途
--Recover transactions if the application or database fails
--Undo transactions that are rolled back(使用versioning版本實現read committed隔離)
--Replicate changes to other TimesTen databases
--Replicate TimesTen changes to Oracle tables
--Enable applications to detect changes to tables (using the XLA API)

6,應用場景
--實時應用程式的主資料庫
--作為基於磁碟資料庫工作流部分任務的資料管理器
--作為效能要求苛刻的應用的資料管理工具,如作為訊息佇列的儲存
--作為Oracle資料庫的只讀快取,並可以自動隨Oracle庫更新
--作為Oracle資料庫的可更新快取,可以同步或非同步更新Oracle資料庫
--分散式快取,提供Oracle資料庫的多份快取

7,並行操作
--支援隔離級別
  Read committed isolation(預設)
  Serializable isolation
--實現方式
  Read committed isolation透過多版本實現,更新操作建立被更新行的新版本,避免修改操作阻塞讀操作
  Serializable isolation透過在所有獲取的行上加鎖實現
--鎖
  Database-level locking
  Table-level locking
  Row-level locking(預設)

8,查詢最佳化
--基於成本最佳化器,考慮如下因素:
  Table and column statistics
  Metadata information (such as referential integrity, primary key)
  Index choices (including automatic creation of temporary indexes)
  Scan methods (full table scan, Rowid lookup, T-tree or hash index scan)
  Join algorithm choice (nested loop joins, nested loop joins with indexes, or merge join)
--基本策略
  由於一次最佳化多次執行,與最佳化所花費時間相比,執行時間在最佳化過程中有更高優先順序
  傾向於使用更多記憶體獲取效能(透過使用臨時表/索引),可以透過最佳化器提示禁止該策略

9,索引
  T-tree index(支援等值/範圍查詢)
  Hash index(僅支援等值查詢)

10,Cache connect to Oracle
10.1Cache group
*支援對資料庫中一個或多個表資料的快取,可以使所有行/部分行,所有列/部分列
*應用可以讀/寫cache group
*cache group可以自動/手動重新整理(從Oracle庫載入)
*對cache group的更新可以自動/手動持久化到資料庫(同步/非同步方式)
*相關概念:cache group,root table/chile table,cache instance key
10.2載入/更新Cache group
*load from oracle to cache group,支援
  全部載入/解除安裝
  根據key載入/解除安裝
  使用WHERE條件載入/解除安裝
  自動按需載入
*Oracle to cache group updates,支援
  全量自動重新整理,以指定間隔自動更新
  增量自動重新整理,以指定間隔自動進行增量更新(依賴於基表上的觸發器)
  手動重新整理
  透明載入,cache group中不存在時自動載入,使用於非autorefresh的cache group
*Cache group to Oracle updates,支援
  傳播,支援傳播,同步寫入(synchronous writethrough,SWT),非同步寫入(asynchronous writethrough,AWT)
  flush,透過手動flush到Oracle,使用於更新頻繁且可以批次flush的情況
*Aging,支援
  自動Aging
  基於時間或使用次數
*Passthrough,支援SQL根據指定條件進行本地處理或傳送到Oracle

10.3系統管理Cache group,完全由cache agent處理load,propagate,flush
10.4使用者管理Cache group,使用者可以完全控制load,propagate,flush時機
10.5複製Cache group,在多個TimesTen中複製cache group

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18922393/viewspace-717932/,如需轉載,請註明出處,否則將追究法律責任。

相關文章