在此处插入图片利用内存数据库TimesTen加快应用程序响应时间SusanCheung产品管理总监OracleCorporation-版权所有2007为什么选择TimesTen?•TimesTen是业界领先的关系内存数据库•Oracle提供的策略性产品•该技术已经通过几千个已部署该产品的客户证明•TimesTen提供了中间层的实时数据管理•可作为独立的内存数据库•可作为Oracle数据库的缓存•部署在应用程序层•TimesTen可加快应用程序的响应时间•针对在线以及实时性能关键的应用程序•TimesTen提供了微秒级的可预测响应时间!OracleCorporation-版权所有2007Oracle内存数据库TimesTen中间层的内存RDBMS可实现实时企业应用程序应用程序OracleCorporation-版权所有2007实际部署中的得到验证数千家公司都使用了OracleTimesTen•实时计费•VoIP•移动网络网络网络•增值服务•收入保障•网络和QOS管理•验证电信电信•定单匹配•风险管理•实时分析华尔街华尔街•呼叫中心•托管CRM•动态个性化面向客户的面向客户的应用程序应用程序OracleCorporation-版权所有2007Oracle内存数据库TimesTen7.0、4个CPU、3GHzx86Xeon、32位RHLinux0102030更新一条记录读取一条记录微秒微秒30301111微秒平均响应时间内存数据库TimesTen快速响应OracleCorporation-版权所有2007在此处插入图片应用程序演示OracleCorporation-版权所有2007在此处插入图片OracleTimesTen技术概述OracleCorporation-版权所有2007Oracle内存数据库TimesTen•内存RDBMS•整个数据库在内存中•以标准方式访问ODBC/JDBC、SQL92•与Oracle数据库兼容•杰出的性能•响应时间短•吞吐量高•可嵌入•持久性和可持续性•数据库是持久的并且可恢复•具有ACID属性的事务处理•实时服务•在线的、无阻塞操作•实时的数据库更改通知•接近于零管理TimesTen库应用程序TimesTen库应用程序检查点文件网络客户端服务器直接链接TimesTen库应用程序TimesTen客户端库应用程序事务日志内存数据库OracleCorporation-版权所有2007数据发布—事务日志API(XLA)XLA接口日志内存缓冲区TX日志文件内存数据库XLA应用程序实时应用程序更新•事务日志API(XLA)•跟踪实时数据更改•监视事务更新•将更改传播到外部应用程序•实现实时事件通知和处理•跟踪表和物化视图中的更改•仅返回事务日志中已提交的记录•通过书签维护日志位置OracleCorporation-版权所有2007Replication–TimesTentoTimesTen•实时事务数据复制•在TimesTen数据库之间•高性能•异步复制•同步复制•健壮且可靠•灵活的配置•双机热备份、负载均衡、N路网络内存数据库内存数据库TimesTen库应用程序TimesTen库应用程序TimesTen库应用程序Replication–TimesTentoTimesTen内存数据库内存数据库TimesTen库应用程序TimesTen库应用程序TimesTen库应用程序OracleCorporation-版权所有2007Replication–TimesTentoTimesTen•事务复制•数据库或表•使用SQL配置•高性能复制•同步或异步•自动恢复、主节点同步•冲突检测和解决•复制对应用程序是透明的•无需更改应用程序代码•在线升级—无停机时间双机热备份N路传播负载均衡OracleCorporation-版权所有2007CacheConnecttoOracle•缓存Oracle数据库中的表•用户配置的缓存组•缓存单独的表和相关表•缓存全部或部分行和列•只读或可更新•访问缓存的表,如常规数据库表•自动同步数据•TimesTen到Oracle•Oracle到TimesTen检查点Tx日志网络客户端服务器缓存表缓存代理直接链接应用程序应用程序TimesTen库TimesTen客户端库应用程序OracleCorporation-版权所有2007缓存Oracle数据库中的数据缓存组—描述要通过SQLWHERE子句缓存到内存数据库TimesTen的Oracle数据TimesTen缓存组根表子表子表子表示例:缓存采购定单在500份以上的重要客户的名称和地址CREATECACHEGROUPPremierUsersFROMCUSTOMER(NAMEVARCHAR2(100)NOTNULL,ADDRVARCHAR2(100))WHERECUSTOMER.ORDER500;OracleCorporation-版权所有2007只读缓存组•只读缓存组•TimesTen中不允许更新•可以有选择地将更新发送到Oracle(通过传递特性)•Oracle中的更新可以自动刷新到TimesTen缓存组•高可用性和故障恢复Oracle刷新对缓存组的更新更新传递到Oracle应用程序客户端只读缓存组IMDB应用程序客户端/服务器C/S应用程序OracleCorporation-版权所有2007只读缓存示例OracleTimesTen(引用数据):v航班信息v网关信息v股票代码v翻译表Oracle数据库:v航班预定v引用数据v历史数据v事务数据读取引用数据会受到应用程序的频繁访问,它是“只读的”,是实时缓存的理想选择OracleCorporation-版权所有2007HA—只读缓存组节点1=活动节点2=备用Oracle到TimesTenTimesTen到TimesTen复制应用程序读取TimesTen节点1TimesTen节点2自动刷新Oracle读取TimesTen节点1TimesTen节点2自动刷新Oracle读取发生故障后TimesTen节点1TimesTen节点2自动刷新复制Oracle读取读取OracleCorporation-版权所有2007可更新的缓存组•TimesTen中执行的事务•更新直接写入到Oracle•同步或异步•同步直接写入事务会同步提交到Oracle•异步直接写入事务会分批提交到Oracle•高可用性和故障恢复Oracle从Oracle加载一次数据将更改传播到Oracle应用程序客户端直接写入缓存组IMDB应用程序客户端/服务器C/S应用程序OracleCorporation-版权所有2007区域1区域2多个可更新缓存示例Oracle数据库:v记录DBv供应v定单历史v消息存储读取写入OracleTimesTen:v预付帐单数据v产品组合/位置v帐户余额v航班预定OracleCorporation-版权所有2007HA—可更新的缓存组节点1=活动节点2=备用TimesTen到OracleTimesTen到TimesTen复制应用程序更新TimesTen节点1TimesTen节点2异步直接写入复制Oracle更新TimesTen节点1TimesTen节点2OracleAWT更新TimesTen节点1TimesTen节点2OracleAWT更新发生故障后OracleCorporation-版权所有2007在此处插入图片OracleTimesTen动态缓存OracleCorporation-版权所有2007自动加载到SELECT•某些应用程序会在需要时加载用户数据•整个数据集位于后端Oracle数据库中•如果数据不在TimesTen中,则从Oracle数据库加载缓存数据•可选功能,由应用程序启动ON/OFF•加载特定缓存实例•SELECT查询使用主键或外键•自动从Oracle数据库加载相关的父行和子行•示例:•在代理应答电话时加载订购者的帐单记录•在用户登录时加载用户配置文件/首选项数据OracleCorporation-版权所有2007按需缓存•如果数据不在TimesTen中,则按需从Oracle加载数据•对缓存的所有更新将直接写入Oracle数据库•设置数据老化策略,淘汰不再需要的数据Oracle通过SELECT从Oracle加载数据应用程序客户端按需缓存组IMDB应用程序客户端/服务器C/S应用程序当不再需要时淘汰OracleCorporation-版权所有2007自动数据老化•数据老化是一项移除不再需要的数据的操作•基于某个时间值移除旧数据•移除在一段时间内未使用的数据•支持两种类型的数据老化•基于时间的老化—基于时间戳值•基于使用率的老化—基于LRU算法•用户可配置的老化策略•在选定的表或缓存组上设置策略•使应用程序在内存中只保留最新的数据•实现合规性•滑动窗口数据缓存•数据库大小控制OracleCorporation-版权所有2007动态数据库缓存呼叫中心应用示例•从Oracle数据库透明加载•在通话时动态加载客户数据•增强后续操作的DB响应能力•自动数据老化•移除旧数据或最近使用次数最少的数据,为新的呼叫方腾出空间OracleCorporation-版权所有2007滑动窗口缓存缓存特定时间窗口的数据,以实现实时管理、监视和优化•缓存5天的发货信息,以实时优化路线和日程安排•缓存最后15分钟的RFID数据,以实现实时流程监视•缓存最后90天的定单,以加快呼叫代理或自助服务门户的搜索•缓存最后30天的市场数据,以进行分析和模拟星期三星期二星期一OracleCorporation-版权所有2007多层企业体系结构的全面高可用性TimesTen复制可在应用程序层提供连续的可用性Oracle10gRAC可在数据库层提供高可用性和企业可伸缩性TimesTen可跨层提供高可用性,将应用程序与网络中断或DB中断隔离开OracleCorporation-版权所有2007在此处插入图片OracleTimesTen演示OracleCorporation-版权所有2007TimesTen7.0支持的平台平台处理器HP-UX11i和11iv2PA-RISC(32位和64位)HP-UX11iv2IA64(32位和64位)HPTru6464位IBMAIX5L5.2和5.3POWER(32位和64位)MicrosoftWindows2000、WindowsXP、Windows2003ServerX86(32位和64位)MontaVistaLinuxCGE4.0X86(32位和64位)RedHatEnterpriseLinux3和4X86(32位和64位)Itanium2(64位)SunSolaris8、9、10Sparc(32位和64位)SunSolaris10x86onAMDOpteron(32位*/64位)SUSELinuxEnterpriseServer9、10X86(32位和64位)Itanium2(64位)OracleCorporation-版权所有2007使用TimesTen测试的Java中间件•Oracle应用服务器•OracleBPEL流程管理器•OracleTopLink•OracleJDeveloper•JBoss应用服务器•Hibernate•WebSphere应用服务器•Weblogic应用服务器•SunJavaSystem应用服务器OracleCorporation-版权所有2007总结•Oracle提供了业界唯一的内存技术来实现实时业务•OracleTimesTen•为企业和嵌入式应用程序提供了实时性能•在应用程序层提供了高可用性•扩展了Oracle数据库,以提高应用程序性能•提供了与Oracle数据库的强大兼容性和互操作性OracleCorporation-版权所有2007其他资源•OTN上的OracleTimesTen产品中心••产品下载、文档、白皮书•Orac