timesten如何实现写不阻塞读?

[复制链接]
查看11 | 回复5 | 2009-1-4 14:52:28 | 显示全部楼层 |阅读模式
timesten实现了写不阻塞读,oracle是通过回滚段来实现的,timesten没有回滚段,它是通过什么机制来实现写不阻塞读的呢?
以个人理解,它的当前image和前image应该都在日志文件中,是否可以实现多版本查询。因为timesten介绍中提到过【versioning实现了read commited隔离级别】,这里的versioning是否相当于oracle中的多版本查询?
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
timesten只有两个版本,就是提交了的版本和没提交的版本,没有MVCC。查询的时候把当前提交的版本不阻塞的返回。主要是利用日志缓冲区,如果读日志,那就慢了,不过在生产中可能发生要读日志。所以也没有那对业务毫无意义的”多版本一致性“,但是效率会高很多,实现也简单的多。
[ 本帖最后由 wolfop 于 2010-6-21 11:57 编辑 ]
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
事实上对绝大多数业务而言,2VCC就足够了,提交之前本来就应该慎重。
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
如果实现MVCC,会好很多。
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
原帖由 liyongdong 于 2010-7-11 21:44 发表
如果实现MVCC,会好很多。

错,对于要求响应速度这么高的情况,MVCC严重的性能瓶颈。从开发方便性和性能综合考虑,2VCC足够了。Altibase那种实现MVCC的方式真是撑的,该实现的durable在altibase竟然不能保障,去实现一个毫无意义的 MVCC。
另外,MVCC到底在业务上有什么优势?谁能和我说清楚?从来没发现过。
回复

使用道具 举报

千问 | 2009-1-4 14:52:28 | 显示全部楼层
关系型数据库产品MVCC技术的实现原理和模拟在网上很多,建议可以先在网上看看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行