,有好的表现,虽然DB2的失败(无论从任何意义上来说,目前DB2的状态都不能算作成功吧?)...另外说个题外话,undo的主要作用,是当事务回滚的时候,可以直接取到修改前的数据块,这是一个随机读的过程,但DB2的undo日志记录在redo里,事务回滚需要读redo,这个以及db2的锁机制(所有行锁都是内存的数据结构...打个比方,一个事务开始之后,sleep了10秒,期间别的三个事务修改并提交了同一行记录,当这个事务在之后读取的时候,会沿着undo一路读取到10秒前的记录.
那老的数据会在什么时候被彻底删除呢?...基本实现上,和MySQL是一致的,也是每个update和delete,都会对老行搞一个删除标记,作为"死亡"记录,然后带着当前的事务id写入对应的行,这个过程中,对数据块的修改会记录为redo.
?...预分配一组独立的顺序数字编号文件(每个1MB)作为undo文件,并且是从buffer pool过来的随机访问,使用上作为表空间访问,而非独立的缓冲区,其变更记录也一样会写入redo.
2. undo记录逐条记录到