分类: 数据库开发技术
2008-10-07 09:57:59
Oralce内存数据库TimesTen简介
中兴通讯重庆研究所 游波
关键词:内存数据库,TimesTen,数据库,一致性,可靠性,复制,锁
文章摘要:
近期和Oracle技术工程师作了一次关于TimesTen,Oracle10G,Oracle9i的交流。本文对TimesTen作一简要介绍,主要在于各项目组在开发设计中可以考虑使用比较成熟的商业内存数据库系统。TimesTen除具有一般商业内存数据库的特点外,还具有同Oracle数据库绑定的功能。
1. 内存数据库简介
在重研所多个项目中都有内存数据库的应用,但重研所应用的内存数据库有多个版本,没有统一的版本,目前以FastDb占主流。普遍存在以下问题,访问方式不符合SQL92规范,不支持客户服务器模式,没有完整的API,可靠性不高,和数据库之间的数据互操作困难等等。
近期和Oracle技术工程师作了一次关于TimesTen,Oracle10G,Oracle9i的交流。在交流中,Oracle的工程师比较详细地介绍了Oracle的内存数据库TimesTen。因此在与Oracle技术工程师交流过程中,根据重研所的需求情况特别关注了一下TimesTen。
ORACLE和Times Ten公司6月20日在上海宣布,双方已就甲骨文收购Times Ten正式达成最终协议。Times Ten公司是一家私有的实时数据管理软件供应商,主要为电信、网络、证券交易等行业提供基础架构软件,并用这种软件进行事件管理、交易和数据的工作。其在全球的客户包括Amdocs、亚斯贝克通信公司、爱立信、JP摩根、NEC、诺基亚、斯普林特、美国航空等。这家公司目前支持的系统包括实时计费系统、股票交易系统、呼叫中心系统、航线运营系统等。ORACLE收购Times Ten标志 Oracle进入内存数据库领域。
2. Times Ten简介
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 特点:
l 符合RDBMS标准的独立内存数据库服务
l 支持SQL92
l 支持 ODBC & JDBC
l 高性能
l 可以作为Oracle数据库的前端Cache,目前不支持其他数据库
l 支持本地的高速访问和网络访问方式
l 可靠性高。支持完整日志,支持镜像复制功能。
l 不是开源代码,需要较高费用
l 目前不支持存储过程和触发器
Times Ten 和 Oracle 数据库的比较
系统特点 | Oracle | TimesTen |
架构 | 磁盘为中心 | 内存为中心 |
驱动方式 | 人机交互 | 计算机到计算机 |
实施方式 | 单独的服务器 | 可以嵌入应用 |
响应速度 | 毫秒级 | 微秒到毫秒 |
数据容量 | 数十TG | 数十G |
管理 | DBA和系统管理 | 不需要特别的进行管理 |
3. Times Ten体系结构
并发管理:
l 支持多线程访问。
l 支持不同的事务隔离级别:Read committed Serializable
l 支持不同级别的锁控制:库级,表级,行级
l 支持拴:用于保护内部数据结构
l 自动死锁检测和解除
l 完整的事务控制机制,包括commit/rollback
l 数据一致性:数据库总是保持数据一致状态,并且在掉电等情况下能够基于磁盘(日志等)恢复一致性。
l 可靠性:通过log和Checkpoint file保证可靠性
日志:
l 支持自动检查点
l 支持人工强制检查点
l 支持完整日志机制。
l 支持日志写入硬盘,写入内存,支持不写日志以提高效率。
镜像复制:
l 灵活的配置:支持多种形式
l 快速可靠:不是基于数据复制,而是基于日志。
l 支持同步或异步模式
l 支持镜像之间的自恢复
l 支持故障时,应用访问自动快速安全切换到备用
oracle数据库缓存:
l TimesTen Cache中表符合关系模型
l Cache 提供只读,自动刷新数据库数据,自动刷入数据库,手工刷入数据库等多种数据同步机制。
l SQL语句传递功能:对于不在内存数据库中表的访问,timesten传递到数据库执行
SQL开发
l 支持SQL92的函数
l 基于代价的查询优化机制
l 完善的索引方式
l 支持分不事务处理
l 支持ODBC2.5 JDBC3.0
l 支持c和c++库
l 支持命令交互方式ttlsql
l 支持事件触发可以部分替代触发器
安全控制
l 可以开启和关闭安全访问控制
l 7种访问权限控制:Instance Administrator, Connect, CreateDatastore, Select, Write, DDL, and Admin
l 支持SQL GRANT/REVOKE方式授权
4. 性能
以下是timesten的性能测试数据
5. 应用案例