梁智兴 罗军
重庆大学计算机学院 重庆 400044
内存数据库(main memory database,MMDB)区别于传统磁盘数据库(disk resident database,DRDB),一般数据库的数据存取是针对磁盘设计的,事务操作涉及磁盘I/O,速度较慢。而内存数据库其数据存取针对内存设计,其“主拷贝”常驻内存,活动事务只与内存打交道,数据库则不再作为大量存储文件看待而作为内存中可寻址的大量数据,这使得存取速度快速、存取时间易于预测,提高了数据库性能,使内存数据库在实时系统等环境要求下表现良好。但由于内存的易失性,MMDB必须在磁盘或者其它非易失性存储器中保存它的备份,以防系统崩溃等故障导致内存中数据丢失。而数据库的备份、日志存储及异常情况下的系统恢复需要执行大量费时的磁盘I/O操作,这必将成为系统的瓶颈,影响系统正常的事务处理能力。
本文借鉴 Song's No-Log Recovery Mechanism采用了两步恢复机制。即,第一步,当事务提交时,数据处理器把影子内存(Shadow Memory)中的脏页备份到备份缓冲区中;第二步,恢复处理器把备份缓冲区中的脏页备份到归档磁盘的备份数据库中,结合影子内存技术,在增加稳定内存(stable memory)的情况下,设计一种用备份取代日志和检查点的恢复方法。此种方法,无需记录日志,同时,既可以减少恢复时间,又可确保响应时间的快速性和可预测性,更进一步的,它在两个分开的区域分别执行事务处理和备份,最小化避免了彼此之间的冲突。
当系统出现各种故障时,确保数据库快速恢复到一致性状态是M M D B恢复方法的目标。……