作用介绍
在重研所多个项目中都有内存数据库的应用,但重研所应用的内存数据库有多
个版本,没有统一的版本,目前以FastDb占主流。普遍存在以下问题,访问方式不符合SQL92规范,不支持客户服务器模式,没有完整的API,可靠性不高,和数据库之间的数据互操作困难等等。
编辑本段Times Ten公司简
Times Ten公司是一家私有的实时数据管理软件供应商,主要为电信、网络、证券交易等行业提供基础架构软件,并用这种软件进行事件管理、交易和数据的工作。其在全球的客户包括Amdocs、亚斯贝克通信公司、爱立信、JP摩根、nec、诺基亚、斯普林特、美国航空等。这家公司目前支持的系统包括实时计费系统、股票交易系统、呼叫中心系统、航线运营系统等。
编辑本段TimesTen 发展历史
1992-起源于惠普实验室研究项目
针对电信网络应用的内存数据库研究
1996-TimesTen 公司成立
核心成员都来自HP实验室原来成员, 第一个商业版产生(TimesTen2.0)
2001-增加Cache Connect功能
2005-由Oracle 收购
ORACLE 收购 Times Ten 标志Oracle进入内存数据库领域。
11主要的版本产生(TimesTen6.0)
200+ 客户,1500+ 部署系统
至今-整合,迅速发展...
编辑本段官方定义
Times Ten官方定义:TimesTen?/Cache (Cache) is a real-time dynamic data caching system. It includes TimesTen‘s in-memory database and data exchange technologies. Together, they enable applications to combine the real-time performance of TimesTen with the large storage capacity of an RDBMS.
编辑本段特点
Times Ten 特点:
符合RDBMS标准的独立内存数据库
服务
支持SQL92
支持 ODBC & JDBC
高性能
可以作为Oracle数据库的前端Cache,目前不支持其他数据库
支持本地的高速访问和网络访问方式
不是开源代码,需要较高费用
目前不支持存储过程和触发器
编辑本段简介
1.同步
Oracle->TimesTen
同步的原理是在oracle上面更新的数据会通过trigger捕获记录下来,然后通过cache agent定期来获取这些信息同步到TT。
TimesTen->Oracle
TT上的同步则是通过分析TT的操作日志来获得做了哪些DML操作,然后通过cache agent同步到oracle .
2.结构
一个TimesTen Data Manager可以管理多个DataStore。DataStore 是指TimesTen中的表、索引等放在内存段中的一个集合,类似与Oracle中库的概念。DataStore由放在相应ODBC配置文件中的一个DSN(Data Source Name)所定义,该DSN由一个名字和相关的属性组成。
TimesTen也有自己的日志文件,以及存放日志文件的目录(LogDir),缺省的就是和DataStore放在同一个目录下。但一般建议分开放。日志的概念和Oracle的一样,在回滚以及恢复的时候,都会用到它。
类似于Oracle中dbf文件,负责TimesTen数据恢复的镜像是checkpoint,恢复的时候先找到最近的检查点文件,然后结合日志文件一起恢复。checkpoint是为了内存中已经被修改的数据块与磁盘数据文件同步的一种数据库事件。它提供了一种保持事务提交以后数据一致的手段。其写检查点文件是增量写的方式,不是整个数据都写的。
checkpoint有两个目地:确保数据一致性;使数据库能快速地恢复。
3.连接
有三种模式:
Direct Driver连接:Timesten推荐连接方式,由于没有了协议转换的开销,这种连接方式具有最高的效率。对于JDBC应用程序,可以通过JDBC库访问ODBC的direct driver。这种连接方式要求应用程序和Timesten数据库处于同一台服务器上。对于共享模式,数据库被加载到共享内存中,多个应用程序可以共享访问内存中的数据。可以减少TCP/IP,IPC方面的开销。
客户端/服务器连接:当应用程序与Timesten不在同一个服务器上,则应用程序将命令发给客户端驱动,而客户端和服务器端一般通过TCP/IP协议通信,服务器端得到应用程序提交给客户端的请求并执行。
TimesTen 采用客户机/服务器架构模式运行虽然不如采用直接内存模式运行得快,但它还是很快的。TimesTen 客户机/服务器应用程序比连接到传统的客户机/服务器数据库的应用程序性能高;尤其是,与传统的数据库相比,TimesTen具有更高的吞吐能力。
Driver Manager连接:应用程序通过ODBC驱动管理器连接到Timesten,而这个驱动管理器一般是第三方提供的独立于数据库的驱动接口