最近突然想看点什么了,于是就拿timesten试试了,没准儿这是以后的趋势呢。timesten是oracle推出的一种关系型内存数据库,随着现在系统规模越来越大,应用变得越来越慢,而硬件越来越先进,于是内存数据库应运而生了。其实说白了就是把数据都放到内存里,速度当然就会快,呵呵。今天开始,有空就看一点点,希望能坚持把这个高明白吧。
首先,按照oracle的说法,使用传统基于disk的RDBMS时,即使将数据都拿到内存里,性能的提高仍然会受到逻辑编码,索引设计以及数据访问机制的影响。而timesten简化了很多东西,运算法则、结构等等,可以更直接的路由到数据,总之,假设数据完全放到内存里,脱离磁盘的话,复杂的东西必然就变得简单了。
具体的一点的说,使用传统rdbms访问buffer pool的数据时,首先通过与server process建立IPC连接访问RDBMS的查询优化器(Query Optimizer),之后通过一个hash函数以及线形的搜索来找到访问页的位置,之后将其copy到private buffer,在通过IPC将数据返回给应用,整个过程的性能开销都浪费在了IPC上。而timesten简化了这些,去除了IPC的开销,通过直接访问timesten找到数据内存中的地址,之后将数据返回给应用。过程简化了,速度自然应该可以变快,不过是否真的快很多,我现在还不知道:)
timesten支持ODBC和JDBC,而且比其它数据库系统支持要好,要快。支持SQL-92标准,不过听说对oracle本身的pl/sql反倒不支持了,不知道真假,以后再说了。它同样支持用户帐号等分级的访问控制管理。timesten同样使用的是cost-based优化器,不过灵敏度更高,因为不需要考虑disk访问的开销问题。Read-committed仍然是timesten的确实隔离级别,当然serializable也是支持的。timesten通过Transaction Log API(XLA)来监控更新操作,timesten的有一种被称为fuzzy的checkpoint,可以不通过log file来进行恢复,当然额外的需要维护连个checkpoint文件。数据老化分为两种类型,基于时间戳和基于使用(LRU)。timesten可以通过Cache Connect来连接oracle数据库实现数据的同步。
今天先写这么多吧,能安心看点东西还是挺幸福的~
阅读(3660) | 评论(0) | 转发(0) |