首页 理论教育分布式数据库技术中的体系结构问题

分布式数据库技术中的体系结构问题

【摘要】:要讨论体系结构问题,首先要回顾前面提到的体系结构模型,再讨论本块恢复管理器和数据库缓冲管理器间的接口。要指出的是,LRM执行的事务操作仅对易失数据库实施。如果没有空余的缓冲空间,LRM就选择一个缓冲页面写入稳定数据库,空出一个页面,再读一个请求的页面到空出来的缓冲空间。数据库缓冲管理器也提供接口,借助该接口,LRM可以让它写回缓冲页面。

要讨论体系结构问题,首先要回顾前面提到的体系结构模型,再讨论本块恢复管理器和数据库缓冲管理器(buffer manager,BM)间的接口

数据库的所有存取都是通过数据库缓冲管理器实现的。关于数据库缓冲管理器的讨论这里不想深入。本地恢复管理器和数据库缓冲管理器间的接口如图10.5所示。

图10.5 本地恢复管理器和数据库缓冲管理器间的接口

图10.5中,我们区分了辅存(图左部的圆柱体部分)和主存(图右部的矩形部分)两部分,两者之间通过读(read)、写(write)命令交互。

假设数据库永久存放在辅助存储器里,称为稳定存储器(stable storage),简称稳存。存放在稳定存储器里的数据库称为稳定数据库,其数据的存取单位是页面(page)。

数据库缓冲管理器把最近访问的数据都放在内存缓冲里,优点是可以提高性能。一般我们可以把缓冲分配成与稳定数据库一样大小的页面。这部分数据库就称为易失数据库(volatile database)。要指出的是,LRM执行的事务操作仅对易失数据库实施。以后再让易失数据库里的数据写回稳定数据库。

如果按照事务要求,LRM要读一个数据页面,它就发出一个取(fetch)命令,表示它想读这个页面。数据库缓冲管理器检查这个页面是否已经在缓冲里(即前面的事务可能已经取过这个页面),若是,则让它给该事务使用;否则,就从稳定数据库中读取该页面到数据库缓冲管理器(条件是该缓冲管理器有空闲空间)。如果没有空余的缓冲空间,LRM就选择一个缓冲页面写入稳定数据库,空出一个页面,再读一个请求的页面到空出来的缓冲空间。(www.chuimin.cn)

数据库缓冲管理器也提供接口,借助该接口,LRM可以让它写回缓冲页面。这可以使用刷新(flush)命令来实现。

从上可以看出,数据库缓冲管理器是存取数据库的唯一管道,它主要提供如下三个功能。

●为给定页面搜索缓冲池。

●如果该页面没有在缓冲空间里,则为其分配一个空闲的缓冲区,从辅存将该页面放入该空闲的缓冲区。

●如果没有空闲的缓冲区可用,则选择一个缓冲页面进行替换。典型情况下,缓冲页面在事务间共享,所以搜索是全局性的。缓冲页面的分配是动态进行的。

分配要做的另一个工作是取数据页。最常用的技术是按需分配页面,在需要时将页面放入缓冲。页面替换是第三个功能,当替换缓冲页面时,最有名的技术是最近最少使用(LRU)算法