狠狠撸

狠狠撸Share a Scribd company logo
福建富士通信息软件有限公司 Fujian  Fujitsu  Communication  Software  Co.,  Ltd.(FFCS) 二零零九年十月二十八日
TimesTen 是什么? TimesTen 的发展 TimesTen 的特点 TimesTen 基础 TimesTen 的结构 TimesTen 的使用 可选功能介绍 Cache Connect to Oracle Replication 目录
TimesTen 是什么? 名称: Oracle TimesTen InMemory Database 目的:缩短数据库层的响应时间 特点: ?  TimesTen 是一个完整的数据库 ?  相关数据全部储存在计算机内存中 ?  算法的简化成就更少的 CPU 开销 ?  比 Oracle  数据库的 DB 缓存更快 Ten Times
TimesTen 发展 1992 年: TimesTen  源于 HP 试验室,当时主要目的是针对电信网络应用,使用内存数据库技术进行一些深入研究。 1996 年:由该团队核心人员成立独立运作公司,并发布 TimesTen 第一个商用版本( TimesTen2.0 ) 。 2001 年:产物中增加 Cache Connect 组件,以至产物可以和 Oracle 无缝集成 。 2005 年:由 Oracle 收购,到今天为止,该产物已经有 15 年历史,有多达 11 个主要的发布版本产生,在 TimesTen 被收购之前, TimesTen 在全球已经有 1500+ 的公司用户(比如:爱立信、  CISCO   、 amdocs 、 JPMorgan 、 AVAYA 等等) 。 2009 年: 7 月 29 日,甲骨文宣布推出 Oracle 内存数据库 TimesTen 11g 和 Oracle 内存数据库高速缓存 11g(Oracle In-Memory Database Cache)  。 2007 年: Oracle 发布 Timesten 7.0.5 版本
TimesTen 产物 Product : Oracle TimesTen In-Memory Database Option :  Cache Connect to Oracle Option :  Replication - TimesTen to TimesTen
TimesTen 特点 高速数据处理 微秒级别的响应时间 采用标准技术 支持大部分 SQL92 的功能,包括索  引,物化视图 减少开发难度和开发时间 减少维护成本 高可靠性 足以满足证券行业等等业务的高可靠性要求
TimesTen 是什么? TimesTen 的发展 TimesTen 的特点 TimesTen 基础 TimesTen 的结构 TimesTen 的使用 可选功能介绍 Cache Connect to Oracle Replication 目录
TimesTen 的结构
内存结构 Data Store 保存所有数据库数据的区域 日志缓存 用于暂时存储记录 Data Store 变更的日志 临时数据区域 临时存储执行计划等数据的共享区域 排序等等操作临时使用
后台进程 常驻后台进程 主进程 (Daemon) ?  监听功能 (Listener) ?  读取配置文件 odbc.ini ?  分配和监视 Sub Daemon 子进程 (Sub Daemon) ?  载入 / 卸载 Data Store ?  将日志缓存写入日志文件 ?  监视和解除死锁 (Dead Lock) ?  执行检查点 (Checkpoint) 可选后台进程 Replication 代理 ? 实施 Replication Cache 代理 ?  实施 Cache Connect TimesTen 服务器 ?  采用客户端 / 服务器连接时的服务器进程
文件结构 Transaction log  memory buffer Transaction  log files Background log flusher persists transaction data to disk Checkpoint files Updates Committed transactions Application Application odbc.ini 配置文件 ?  用于记录各个 DSN 的参数 Transaction log  files 事务日志 ?  保存数据库的变更 ? 原有文件超过一定的大小后,自动生成新的日志文件 ?  与检查点文件一起用于数据库的恢复 ?  用于 redo(recovery) 和 undo(rollback) Reserve Space Files ? 用于当日志文件所在磁盘空间满时,回滚事务 Chenckpoint files 检查点文件 ?  保存于磁盘的数据库镜像。 ?  TimesTen 启动时,检查点文件的数据被装载到内存中 ?  TimesTen 运行时,隔一段时间进行一次检查点处理,仅保存改变的数据块并删除无用的日志文件 ?  TimesTen 关闭时,用于保存 Data Store 内的数据 ?  出于安全考虑,存在两个文件 Reserve  Space Files Memory-resident data store Periodic snapshot of data store to checkpoint files  2 1
TimesTen 连接模式 Direct Connect Mode - 直接驱动器连接 ?  Oracle 推荐的连接方式,具有最佳的性能 ?  TimesTen 数据库与应用程序处于同一台主机上,同处于应用程序层 ?  应用程序通过 ODBC/JDBC 直接对数据库进行访问 ?  与传统的客户端 / 服务器的模式相比,减少了 TCP/IP 、 IPC 方面的开销 Client/Server Connect Mode - 客户端 / 服务器连接 ?  传统的连接方式,性能比直接驱动器连接差 ?  TimesTen 数据库与应用程序处于不同的主机上 ?  客户端与服务器一般以 TCP/IP 方式连接,存在网络开销
First Data Store Connection 1).  应用程序建立与  TimesTen main daemon 的连接 . 2). main daemon 分配一个 subdaemon  管理  data store. 3). subdaemon  为 data store 创建一块共享内存 (shared memory segment). 4). subdaemon  加载 checkpoint files 数据到共享内存 . 5). subdaemon  应用事务日志前滚或者回滚 . 6).  应用程序将共享内存映射到自己的地址空间 . 当应用程序与 data store 建立连接后, 仅需进行 1) 、 6) 两步操作
TimesTen 是什么? TimesTen 的发展 TimesTen 的特点 TimesTen 基础 TimesTen 的结构 TimesTen 的使用 可选功能介绍 Cache Connect to Oracle Replication 目录
创建 data store Window: 控制面板- > 管理工具- > 数据源 (ODBC) - > 系统 DSN
Data Store RAM Policy   C:\Documents and Settings\ChenLi> ttadmin -query tttest RAM Residence Policy  : inUse plus grace period RAM Residence Grace (Secs)  : 30 Replication Agent Policy  : manual Replication Manually Started  : False Cache Agent Policy  : manual Cache Agent Manually Started  : False C:\Documents and Settings\ChenLi> ttAdmin -ramPolicy always tttest RAM Residence Policy  : always Replication Agent Policy  : manual Replication Manually Started  : False Cache Agent Policy  : manual Cache Agent Manually Started  : False 内存策略: inUse:  Load store into memory only if the store has at least one connection (default) always : Always keep the store resident in memory manual :Manually load and unload the store
数据类型   数据类型 TypeMode: Oracle type mode ( recommended and default mode ) Timesten type mode  ( provided for backward compatibility ) 存储方式 : 固定长度:  inline 可变长度:  inline  or  out-line Inline 与 out-line 区别: Inline: 空间的分配和普通的 int , char 等类型一样,都是放在表所在的连续空间中,当可变长度的长度小于等于 128 字节时缺省是 inline  。定义多少实际消耗多少。性能好。 Out-line : 放在一个另开的空间,比如堆中,当可变长度的长度大于 128 字节时,缺省是 not inline 。 out-line 存放的好处是节省空间。
DDL/DML DDL CREATE TABLE   CREATE GLOBAL TEMPORARY TABLE AGING LRU/AGING USE DROP TABLE TRUNCATE TABLE ALTER TABLE CREATE INDEX ---T-tree index / hash index System tables Ttsize DML select/insert/update/delete/merge function prepare/exec
管理工具 ttBulkCp ttBackup ttRestore ttMigrate ttSchema snmpTrap
TimesTen 是什么? TimesTen 的发展 TimesTen 的特点 TimesTen 基础 TimesTen 的结构 TimesTen 的使用 可选功能介绍 Cache Connect to Oracle Replication 目录
缓存组:储存在 TimesTen 中供应用程序读写的 Oracle 数据 缓存组可以存储一张或者几张 Oracle 表,或者是 Oracle 表的部分内容 每个缓存组由一个根表 (root table) 和若干子表 (Child table) 组成 每张子表必须与根表或者别的子表之间存在外键约束 Cache Group (缓存组)介绍
将数据从 Oracle  数据库复制到 TimesTen 中( REFRESH ) 将 TimesTen 中改变过的数据通过同步 / 非同步的方式写入 Oracle  数据库中( FLUSH ) 缓存组 (Cache Group) 可以设置成为只读或读写模式 “ 透过 (Pass Through)” 功能允许只连接 TimesTen 但可以同时访问 TimesTen 和 Oracle  数据库 Cache Group 的特征
System-managed READONLY Oracle 数据库中更新的数据通过非同步模式反映到 TimesTen 中 SYNCHRONOUS WRITETHROUGH  ( SWT ) TimesTen 中更新的数据通过同步模式写入 Oracle  数据库 ASYNCHRONOUS WRITETHROUGH  ( AWT ) TimesTen 中更新的数据通过非同步模式写入 Oracle  数据库 USERMANAGED 用户自定义 Cache Group 类型
每隔一定时间,缓存代理将数据复制到 TimesTen 适合用于储存几乎没有更新的数据 READONLY (只读) TimesTen 对没有缓存的表的操作被 Pass Through* DML 被 PassThrough* AUTOREFRESH * 具体操作取决于 PassThrough 的设置 READONLY Application cache agent
DML 被 Pass Through 给 Oracle 等待 Oracle 完成 COMMIT Oracle 无法 COMMIT 的话 TimesTen 会被 ROLLBACK 适合仅希望通过使用 TimesTen 加速 SELECT 操作的情况 SWT (同步写入) * 具体操作取决于 PassThrough 的设置 cache agent TimesTen Manual load Application SYNCHRONOUS WRITETHROUGH Automatically propagate updates
Application  (0) SELECT <..> UPDATE <..> INSERT <..> (1) COMMIT TimesTen (2) Propagate transaction to Oracle (UPDATE, INSERT, COMMIT) Oracle (3) Commit transaction and return to TimesTen TimesTen   (4)  Commit to transaction log  (5)  Return control to application SWT  数据流程 1 cache agent TimesTen transaction log 2 3 4 SYNCHRONOUS WRITETHROUGH TimesTen Application 5
DML 被 Pass Through 给 Oracle 不等待 Oracle 完成 COMMIT Oracle 无法 COMMIT 的话将错误信息写入错误日志 适合希望通过 TimesTen 加速 DML 操作的情况 AWT (异步写入) * 具体操作取决于 PassThrough 的设置 Automatically propagate updates Manual load replication agent cache agent ASYNCHRONOUS WRITETHROUGH TimesTen Application
Application   (0) SELECT <..> UPDATE <..> INSERT <..> (1) COMMIT TimesTen (2) Commit to transaction log (3) Return control to application (4) Propagate transaction to Oracle (UPDATE, INSERT, COMMIT) Oracle (5) Commit transaction and return to TimesTen AWT 数据流程 * 具体操作取决于 PassThrough 的设置 2 Application Application 4 5 TimesTen transaction log ASYNCHRONOUS WRITETHROUGH TimesTen 3 1
0  1  2  3 PassThrough 的级别 在 TimesTen 出错的 DML   Err  O  O  O 对 READONLY 执行 DML   Err  Err  O  O 在 TimesTen 不出错的 DML   T  T  O  O DDL  T  T  T  O O : 在 Oracle 中执行 T : 在 TimesTen 中执行
Cache group 例子 配置 cache group
TimesTen 是什么? TimesTen 的发展 TimesTen 的特点 TimesTen 基础 TimesTen 的结构 TimesTen 的使用 可选功能介绍 Cache Connect to Oracle Replication 目录
基于事务 (Transaction) 日志 Replication 代理通过 TCP/IP Stream Socket 收发更新信息 可以选择同步 / 非同步模式 基于时间戳、解决更新版本冲突问题 Replication 的特征 Replication - TimesTen to TimesTen Network In-Memory Database TimesTen  Libraries Application TimesTen  Libraries Application TimesTen  Libraries Application In-Memory Database TimesTen  Libraries Application TimesTen  Libraries Application TimesTen  Libraries Application
Replication 的组建方式
Replication 的模式 异步模式 不等待接收方的反馈 同步模式 回执模式 (RETURN RECEIPT) 可以检测无法同步的情况 双重保险模式 (RETURN TWOSAFE) 保证完全同步 高速 数据完整性
异步模式 1.commit 2.Commit 完成 Rep agent Rep agent 3.  写入日志文件 日志文件 日志文件 8.  写入日志文件 7.  将更新信息 写入 Data Store 5.  发送更新信息 4.  生成更新信息 6.  确认更新信息发送成功 发送方 接收方 应用程序 Data Store 日志缓存 Data Store 日志缓存
回执模式 (RETURN RECEIPT) 1.commit 6.Commit 完成 Rep agent Rep agent 2.  写入日志文件 日志文件 日志文件 8.  写入日志文件 7.  将更新信息 写入 Data Store 4.  发送更新信息 3.  生成更新信息 5.  确认更新信息发送成功 发送方 接收方 应用程序 Data Store 日志缓存 Data Store 日志缓存
双重保险模式 (RETURN TWOSAFE) 1.pre-commit 9.  完成 Data Store 日志缓存 Rep agent Rep agent 8.  写入日志文件 日志文件 日志文件 5.  写入日志文件 4 .  将更新信息 写入 Data Store 3.  发送更新信息 2.  生成更新信息 6.  确认更新信息发送成功 发送方 接收方 7.Commit 应用程序 Data Store 日志缓存
replication 例子 配置 Master-subscriber 模式 replication
诚谢领导关注和聆听!

More Related Content

What's hot (20)

PDF
Oracle Tablespace介紹
Chien Chung Shen
?
PPT
数据库性能诊断的七种武器
Leyi (Kamus) Zhang
?
PDF
惭测厂蚕尝查询优化浅析
frogd
?
PPT
罢厂惭6培训教程
acqua young
?
PPT
分区表基础知识培训
maclean liu
?
PDF
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术团队
?
PDF
【诗檀软件 郭兆伟-技术报告】跨国公司级Oracle数据库备份策略
maclean liu
?
PPTX
排队论及其应用浅析
frogd
?
PDF
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
maclean liu
?
PDF
罢辞尘颁补迟迁移步骤简述以及案例
maclean liu
?
PDF
基于惭测厂蚕尝开放复制协议的同步扩展
Sky Jian
?
PDF
Oracle 資料庫建立
Chien Chung Shen
?
PDF
Oracle 索引介紹
Chien Chung Shen
?
PPT
手机之家的数据访问层实践
guestf5121c
?
PDF
惭测厂蚕尝数据库生产环境维护
mysqlops
?
PPTX
賽門鐵克 Storage Foundation 6.0 簡報
Wales Chen
?
PDF
诗檀软件 Oracle数据块损坏知识
maclean liu
?
DOCX
系統程式 -- 第 10 章 作業系統
鍾誠 陳鍾誠
?
PDF
低功耗服务器定制与绿色计算
Wensong Zhang
?
PPTX
Cdc@ganji.com
Tailor Cai
?
Oracle Tablespace介紹
Chien Chung Shen
?
数据库性能诊断的七种武器
Leyi (Kamus) Zhang
?
惭测厂蚕尝查询优化浅析
frogd
?
罢厂惭6培训教程
acqua young
?
分区表基础知识培训
maclean liu
?
美团点评技术沙龙010-Redis Cluster运维实践
美团点评技术团队
?
【诗檀软件 郭兆伟-技术报告】跨国公司级Oracle数据库备份策略
maclean liu
?
排队论及其应用浅析
frogd
?
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
maclean liu
?
罢辞尘颁补迟迁移步骤简述以及案例
maclean liu
?
基于惭测厂蚕尝开放复制协议的同步扩展
Sky Jian
?
Oracle 資料庫建立
Chien Chung Shen
?
Oracle 索引介紹
Chien Chung Shen
?
手机之家的数据访问层实践
guestf5121c
?
惭测厂蚕尝数据库生产环境维护
mysqlops
?
賽門鐵克 Storage Foundation 6.0 簡報
Wales Chen
?
诗檀软件 Oracle数据块损坏知识
maclean liu
?
系統程式 -- 第 10 章 作業系統
鍾誠 陳鍾誠
?
低功耗服务器定制与绿色计算
Wensong Zhang
?
Cdc@ganji.com
Tailor Cai
?

Times Ten Training

  • 1. 福建富士通信息软件有限公司 Fujian Fujitsu Communication Software Co., Ltd.(FFCS) 二零零九年十月二十八日
  • 2. TimesTen 是什么? TimesTen 的发展 TimesTen 的特点 TimesTen 基础 TimesTen 的结构 TimesTen 的使用 可选功能介绍 Cache Connect to Oracle Replication 目录
  • 3. TimesTen 是什么? 名称: Oracle TimesTen InMemory Database 目的:缩短数据库层的响应时间 特点: ? TimesTen 是一个完整的数据库 ? 相关数据全部储存在计算机内存中 ? 算法的简化成就更少的 CPU 开销 ? 比 Oracle 数据库的 DB 缓存更快 Ten Times
  • 4. TimesTen 发展 1992 年: TimesTen 源于 HP 试验室,当时主要目的是针对电信网络应用,使用内存数据库技术进行一些深入研究。 1996 年:由该团队核心人员成立独立运作公司,并发布 TimesTen 第一个商用版本( TimesTen2.0 ) 。 2001 年:产物中增加 Cache Connect 组件,以至产物可以和 Oracle 无缝集成 。 2005 年:由 Oracle 收购,到今天为止,该产物已经有 15 年历史,有多达 11 个主要的发布版本产生,在 TimesTen 被收购之前, TimesTen 在全球已经有 1500+ 的公司用户(比如:爱立信、 CISCO 、 amdocs 、 JPMorgan 、 AVAYA 等等) 。 2009 年: 7 月 29 日,甲骨文宣布推出 Oracle 内存数据库 TimesTen 11g 和 Oracle 内存数据库高速缓存 11g(Oracle In-Memory Database Cache) 。 2007 年: Oracle 发布 Timesten 7.0.5 版本
  • 5. TimesTen 产物 Product : Oracle TimesTen In-Memory Database Option : Cache Connect to Oracle Option : Replication - TimesTen to TimesTen
  • 6. TimesTen 特点 高速数据处理 微秒级别的响应时间 采用标准技术 支持大部分 SQL92 的功能,包括索 引,物化视图 减少开发难度和开发时间 减少维护成本 高可靠性 足以满足证券行业等等业务的高可靠性要求
  • 7. TimesTen 是什么? TimesTen 的发展 TimesTen 的特点 TimesTen 基础 TimesTen 的结构 TimesTen 的使用 可选功能介绍 Cache Connect to Oracle Replication 目录
  • 9. 内存结构 Data Store 保存所有数据库数据的区域 日志缓存 用于暂时存储记录 Data Store 变更的日志 临时数据区域 临时存储执行计划等数据的共享区域 排序等等操作临时使用
  • 10. 后台进程 常驻后台进程 主进程 (Daemon) ? 监听功能 (Listener) ? 读取配置文件 odbc.ini ? 分配和监视 Sub Daemon 子进程 (Sub Daemon) ? 载入 / 卸载 Data Store ? 将日志缓存写入日志文件 ? 监视和解除死锁 (Dead Lock) ? 执行检查点 (Checkpoint) 可选后台进程 Replication 代理 ? 实施 Replication Cache 代理 ? 实施 Cache Connect TimesTen 服务器 ? 采用客户端 / 服务器连接时的服务器进程
  • 11. 文件结构 Transaction log memory buffer Transaction log files Background log flusher persists transaction data to disk Checkpoint files Updates Committed transactions Application Application odbc.ini 配置文件 ? 用于记录各个 DSN 的参数 Transaction log files 事务日志 ? 保存数据库的变更 ? 原有文件超过一定的大小后,自动生成新的日志文件 ? 与检查点文件一起用于数据库的恢复 ? 用于 redo(recovery) 和 undo(rollback) Reserve Space Files ? 用于当日志文件所在磁盘空间满时,回滚事务 Chenckpoint files 检查点文件 ? 保存于磁盘的数据库镜像。 ? TimesTen 启动时,检查点文件的数据被装载到内存中 ? TimesTen 运行时,隔一段时间进行一次检查点处理,仅保存改变的数据块并删除无用的日志文件 ? TimesTen 关闭时,用于保存 Data Store 内的数据 ? 出于安全考虑,存在两个文件 Reserve Space Files Memory-resident data store Periodic snapshot of data store to checkpoint files 2 1
  • 12. TimesTen 连接模式 Direct Connect Mode - 直接驱动器连接 ? Oracle 推荐的连接方式,具有最佳的性能 ? TimesTen 数据库与应用程序处于同一台主机上,同处于应用程序层 ? 应用程序通过 ODBC/JDBC 直接对数据库进行访问 ? 与传统的客户端 / 服务器的模式相比,减少了 TCP/IP 、 IPC 方面的开销 Client/Server Connect Mode - 客户端 / 服务器连接 ? 传统的连接方式,性能比直接驱动器连接差 ? TimesTen 数据库与应用程序处于不同的主机上 ? 客户端与服务器一般以 TCP/IP 方式连接,存在网络开销
  • 13. First Data Store Connection 1). 应用程序建立与 TimesTen main daemon 的连接 . 2). main daemon 分配一个 subdaemon 管理 data store. 3). subdaemon 为 data store 创建一块共享内存 (shared memory segment). 4). subdaemon 加载 checkpoint files 数据到共享内存 . 5). subdaemon 应用事务日志前滚或者回滚 . 6). 应用程序将共享内存映射到自己的地址空间 . 当应用程序与 data store 建立连接后, 仅需进行 1) 、 6) 两步操作
  • 14. TimesTen 是什么? TimesTen 的发展 TimesTen 的特点 TimesTen 基础 TimesTen 的结构 TimesTen 的使用 可选功能介绍 Cache Connect to Oracle Replication 目录
  • 15. 创建 data store Window: 控制面板- > 管理工具- > 数据源 (ODBC) - > 系统 DSN
  • 16. Data Store RAM Policy C:\Documents and Settings\ChenLi> ttadmin -query tttest RAM Residence Policy : inUse plus grace period RAM Residence Grace (Secs) : 30 Replication Agent Policy : manual Replication Manually Started : False Cache Agent Policy : manual Cache Agent Manually Started : False C:\Documents and Settings\ChenLi> ttAdmin -ramPolicy always tttest RAM Residence Policy : always Replication Agent Policy : manual Replication Manually Started : False Cache Agent Policy : manual Cache Agent Manually Started : False 内存策略: inUse: Load store into memory only if the store has at least one connection (default) always : Always keep the store resident in memory manual :Manually load and unload the store
  • 17. 数据类型 数据类型 TypeMode: Oracle type mode ( recommended and default mode ) Timesten type mode ( provided for backward compatibility ) 存储方式 : 固定长度: inline 可变长度: inline or out-line Inline 与 out-line 区别: Inline: 空间的分配和普通的 int , char 等类型一样,都是放在表所在的连续空间中,当可变长度的长度小于等于 128 字节时缺省是 inline 。定义多少实际消耗多少。性能好。 Out-line : 放在一个另开的空间,比如堆中,当可变长度的长度大于 128 字节时,缺省是 not inline 。 out-line 存放的好处是节省空间。
  • 18. DDL/DML DDL CREATE TABLE CREATE GLOBAL TEMPORARY TABLE AGING LRU/AGING USE DROP TABLE TRUNCATE TABLE ALTER TABLE CREATE INDEX ---T-tree index / hash index System tables Ttsize DML select/insert/update/delete/merge function prepare/exec
  • 19. 管理工具 ttBulkCp ttBackup ttRestore ttMigrate ttSchema snmpTrap
  • 20. TimesTen 是什么? TimesTen 的发展 TimesTen 的特点 TimesTen 基础 TimesTen 的结构 TimesTen 的使用 可选功能介绍 Cache Connect to Oracle Replication 目录
  • 21. 缓存组:储存在 TimesTen 中供应用程序读写的 Oracle 数据 缓存组可以存储一张或者几张 Oracle 表,或者是 Oracle 表的部分内容 每个缓存组由一个根表 (root table) 和若干子表 (Child table) 组成 每张子表必须与根表或者别的子表之间存在外键约束 Cache Group (缓存组)介绍
  • 22. 将数据从 Oracle 数据库复制到 TimesTen 中( REFRESH ) 将 TimesTen 中改变过的数据通过同步 / 非同步的方式写入 Oracle 数据库中( FLUSH ) 缓存组 (Cache Group) 可以设置成为只读或读写模式 “ 透过 (Pass Through)” 功能允许只连接 TimesTen 但可以同时访问 TimesTen 和 Oracle 数据库 Cache Group 的特征
  • 23. System-managed READONLY Oracle 数据库中更新的数据通过非同步模式反映到 TimesTen 中 SYNCHRONOUS WRITETHROUGH ( SWT ) TimesTen 中更新的数据通过同步模式写入 Oracle 数据库 ASYNCHRONOUS WRITETHROUGH ( AWT ) TimesTen 中更新的数据通过非同步模式写入 Oracle 数据库 USERMANAGED 用户自定义 Cache Group 类型
  • 24. 每隔一定时间,缓存代理将数据复制到 TimesTen 适合用于储存几乎没有更新的数据 READONLY (只读) TimesTen 对没有缓存的表的操作被 Pass Through* DML 被 PassThrough* AUTOREFRESH * 具体操作取决于 PassThrough 的设置 READONLY Application cache agent
  • 25. DML 被 Pass Through 给 Oracle 等待 Oracle 完成 COMMIT Oracle 无法 COMMIT 的话 TimesTen 会被 ROLLBACK 适合仅希望通过使用 TimesTen 加速 SELECT 操作的情况 SWT (同步写入) * 具体操作取决于 PassThrough 的设置 cache agent TimesTen Manual load Application SYNCHRONOUS WRITETHROUGH Automatically propagate updates
  • 26. Application (0) SELECT <..> UPDATE <..> INSERT <..> (1) COMMIT TimesTen (2) Propagate transaction to Oracle (UPDATE, INSERT, COMMIT) Oracle (3) Commit transaction and return to TimesTen TimesTen (4) Commit to transaction log (5) Return control to application SWT 数据流程 1 cache agent TimesTen transaction log 2 3 4 SYNCHRONOUS WRITETHROUGH TimesTen Application 5
  • 27. DML 被 Pass Through 给 Oracle 不等待 Oracle 完成 COMMIT Oracle 无法 COMMIT 的话将错误信息写入错误日志 适合希望通过 TimesTen 加速 DML 操作的情况 AWT (异步写入) * 具体操作取决于 PassThrough 的设置 Automatically propagate updates Manual load replication agent cache agent ASYNCHRONOUS WRITETHROUGH TimesTen Application
  • 28. Application (0) SELECT <..> UPDATE <..> INSERT <..> (1) COMMIT TimesTen (2) Commit to transaction log (3) Return control to application (4) Propagate transaction to Oracle (UPDATE, INSERT, COMMIT) Oracle (5) Commit transaction and return to TimesTen AWT 数据流程 * 具体操作取决于 PassThrough 的设置 2 Application Application 4 5 TimesTen transaction log ASYNCHRONOUS WRITETHROUGH TimesTen 3 1
  • 29. 0 1 2 3 PassThrough 的级别 在 TimesTen 出错的 DML Err O O O 对 READONLY 执行 DML Err Err O O 在 TimesTen 不出错的 DML T T O O DDL T T T O O : 在 Oracle 中执行 T : 在 TimesTen 中执行
  • 30. Cache group 例子 配置 cache group
  • 31. TimesTen 是什么? TimesTen 的发展 TimesTen 的特点 TimesTen 基础 TimesTen 的结构 TimesTen 的使用 可选功能介绍 Cache Connect to Oracle Replication 目录
  • 32. 基于事务 (Transaction) 日志 Replication 代理通过 TCP/IP Stream Socket 收发更新信息 可以选择同步 / 非同步模式 基于时间戳、解决更新版本冲突问题 Replication 的特征 Replication - TimesTen to TimesTen Network In-Memory Database TimesTen Libraries Application TimesTen Libraries Application TimesTen Libraries Application In-Memory Database TimesTen Libraries Application TimesTen Libraries Application TimesTen Libraries Application
  • 34. Replication 的模式 异步模式 不等待接收方的反馈 同步模式 回执模式 (RETURN RECEIPT) 可以检测无法同步的情况 双重保险模式 (RETURN TWOSAFE) 保证完全同步 高速 数据完整性
  • 35. 异步模式 1.commit 2.Commit 完成 Rep agent Rep agent 3. 写入日志文件 日志文件 日志文件 8. 写入日志文件 7. 将更新信息 写入 Data Store 5. 发送更新信息 4. 生成更新信息 6. 确认更新信息发送成功 发送方 接收方 应用程序 Data Store 日志缓存 Data Store 日志缓存
  • 36. 回执模式 (RETURN RECEIPT) 1.commit 6.Commit 完成 Rep agent Rep agent 2. 写入日志文件 日志文件 日志文件 8. 写入日志文件 7. 将更新信息 写入 Data Store 4. 发送更新信息 3. 生成更新信息 5. 确认更新信息发送成功 发送方 接收方 应用程序 Data Store 日志缓存 Data Store 日志缓存
  • 37. 双重保险模式 (RETURN TWOSAFE) 1.pre-commit 9. 完成 Data Store 日志缓存 Rep agent Rep agent 8. 写入日志文件 日志文件 日志文件 5. 写入日志文件 4 . 将更新信息 写入 Data Store 3. 发送更新信息 2. 生成更新信息 6. 确认更新信息发送成功 发送方 接收方 7.Commit 应用程序 Data Store 日志缓存
  • 38. replication 例子 配置 Master-subscriber 模式 replication

Editor's Notes

  • #4: 第一,传统的数据库和应用程序是两个不同的应用系统,它们之间的通讯是通过 IPC 连接来实现的。而 TimesTen 则是直接把数据库的内存映射到 应用程序的地址空间中,简单来说,这时候 TimesTen 访问数据库中的数据,就象访问应用程序自己的数组、字符串变量一样,只不过 TimesTen 有一 套完善的机制来实现数据的一致性和完整性。这种直接嵌入到应用程序的运行地址空间机制比 IPC 要高效很多。 第二,传统的数据库都是 Disk-based 的,即预先假定数据主要是放在磁盘中的,所以它的所有优化、查询算法都是以磁盘存储为主的。举个简单的例子,比如说要查找一行记录,传统的数据库要先查找 索引,通过索引查找该记录所在的页面,然后通过查找该页是已经在内存中,还是要从磁盘的数据文件中读取出来。而 TimesTen 是预先就把所有的数据 Load 到内存中,它知道所有的数据一定在内存里面,不会再通过其它的调用去决定数据在哪儿,这其中就少走了很多的弯路,基本没有磁盘的 IO ,而且都在内 存中,效率也就高了很多。所以即使传统的数据库把数据都预先 Load 的内存中,也是达不到 TimesTen 的效果的。因为传统数据库的索引机制、优化算 法、复杂的数据结构、数据的获取机制等等因素限制了它的性能。 第三,由于 TimesTen 启动的时候预先将所有的数据 Load 到内存中,所以它没有页进页出,而且也不需要类似与 Oracle 中的 SGA 缓冲区的管理。
  • #18: create table a(a0 char(128) ,a1 char(129),a2 varchar2(127),a3 varchar2(128),a4 varchar2(129),a5 varchar2(127) not inline,a6 varchar2(129) inline);