更新时间:2024-05-20 GMT+08:00

Astore简介

Astore与Ustore的多版本实现最大的区别在于最新版本和历史版本是否分离存储。Astore不进行分离存储,而Ustore当前也只是分离了数据,索引本身没有分开。

使用Astore的优势

  1. Astore没有回滚段,而Ustore有回滚段。对于Ustore来说,回滚段是非常重要的,回滚段损坏,会导致数据丢失甚至数据库无法启动的严重问题;且Ustore恢复时同步需要Redo和Undo。由于Astore没有回滚段,旧数据都是记录在原先的文件中,所以当数据库异常crash后,恢复时,不会像Ustore数据库那样进行那么复杂的恢复。
  2. 由于旧的数据是直接记录在数据文件中,而不是回滚段中,所以不会经常报Snapshot Too Old错误。
  3. 回滚可以很快完成,因为回滚并不删除数据,但回滚时很复杂,在事务回滚时必须清理该事务所进行的修改,插入的记录要删除,更新的记录要更新回来,同时回滚的过程也会再次产生大量的Redo日志。
  4. WAL日志要简单一些,仅需要记录数据文件的变化,不需要记录回滚段的变化。