主权项 |
一种影子内存的备份方法,其特征在于,包括以下步骤:当一事务开始执行,向内存请求页面,并在日志管理器中写入一个节点;在当前页链表中查找所述请求的页面,如果找到,则表明所述一事务与同样请求所述页面的其它事务发生冲突,判断所述发生冲突的事务是否适合合并,如果是,则执行事务合并操作;否则继续在当前页链表中查找所述请求的页面;执行所述合并操作时,将日志管理器中所述发生冲突的事务对应的节点合并,生成新的合并节点,从而构造了一棵倒置的二叉树,该二叉树称为合并树,所述发生冲突事务所请求的页面都并入新的合并节点,并将所述事务请求的所有页面加载到当前页链表,所述合并后的事务请求页面成功后,修改该页面的标记位,对该页面执行相应操作;操作完成后,再次修改所述标记位;循环执行对所有请求的页面的操作,直到事务完成;在所述合并树中找到所述事务的最底层节点,修改该节点的事务完成标记,事务完成后,扫描该事务所属的合并树,如果属于该合并树的所有事务都完成,则利用合并树中记录的事务的ID,返回日志管理器中,将该事务操作所有涉及的页面拷贝至内存;把该事务在当前页链表中对应的页挂载到备份页链表上,等待后台的线程完成备份;删除日志管理器中的对应节点,然后删除日志管理器中对应的合并树。 |