Oracle中Timesten的应用


 Timesten作为一款纯内存数据库,由于比常规意义的数据库快10倍,在被Oracle收购前,主要用于交易非常高的场合,如交易撮合、电子商务等。在被Oracle收购后,理所当然要配合Oracle数据库使用。昨天上午参加了Oracle 11g的一个研讨会,终于清楚了Timesten的主要使用场景。

  Timesten为什么能比普通的数据库快10倍,主要是两个原因。(1)由于所有数据全部在内存,不需要从硬盘上取数据,当然速度大大加快。(2)应用和Timesten之间可以在同一台机器上直接访问,不需要通过网络TCP/IP。同时,由于Timesten全部数据在内存中,一定要和常规数据库配合,最终把数据变化写回常规数据库,把数据永久保留在磁盘上。Oracle是用Trigger方式来保持Oracle数据和Timesten数据一致的,当然Trigger是很消耗资源的,必须合理使用。

  明白了上述的几点,就可以明白Timesten的主要场景或使用方法。Timesten最好和Application server如Weblogic装在同一台服务器上,让APP server本机直接访问Timesten,以获得最佳性能。Timesten启动后,将Oracle数据中的常用表同步到Timesten中,APP Server要访问这些数据时,直接从Timesten中获得。比如电子商务中的产品SKU、价格、其他特性等。每一台中间件服务器上都装APP Server和Timesten,由于只读,各机器中的Timesten互相独立,互不影响。利用这种价格,可以大规模地扩展架构,提升交易的并发性。Sybase的ASE Server在11版时,就可以在数据库内存中专门配置特定cache来绑定某些热点数据表,而不会由于内存不足而又要从硬盘访问大量数据时,将这些热点数据swap回硬盘,原理和Timesten的这种使用方式是一致的。不过当时的硬件技术不像现在,服务器可以轻易达到512G~几TB内存,所以能绑定的数据表容量是有限的,限制了应用的使用。不过即使到现在,这种用法和Timesten比起来还是要慢一些的,因为APP Server还是要访问DB Server内存的数据,还是要通过网络TCP/IP的。



相关阅读:
JS是否可以跨文件同时控制多个iframe页面的应用技巧
同一个页面用多个id有什么影响
一个“灵异”批处理引发的思考加补充说明
JSP/Servlet:Servlet/JSP会话跟踪机制
一个多文件上传的例子(原创)
HTML表格标记教程(9):单元格间距属性CELLSPACING
CSS页面布局中HTML结构化
使用PHP实现动态网页
meta标签之详解
纯vbs实现zip压缩与unzip解压缩函数代码
asp 下用正则表达式检测邮箱格式的函数
HTML5设计网页时应该避免的一些小错误
SQL Server数据库简体繁体数据混用的问题
基于Linux的性能监测比拼和实现攻略
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4