ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 内存数据库TimesTen介绍

内存数据库TimesTen介绍

原创 Linux操作系统 作者:redhouser 时间:2012-03-07 12:31:02 0 删除 编辑

全称: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/,如需转载,请注明出处,否则将追究法律责任。

上一篇: StreamsAdvancedQueuing
请登录后发表评论 登录
全部评论

注册时间:2011-05-26

  • 博文量
    211
  • 访问量
    787123