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