一,什么是BH
BH即Buffer Header,每一个数据块在被读入buffer cache时,都会先在buffer cache中构造一个buffer header,buffer header与数据块一一对应
buffer header包含的主要信息有:
1) 该数据块在buffer cache中实际的内存地址。就是上图中的虚线箭头所表示的意思。 2) 该数据块的类型,包括data、segment header、undo header、undo block等等。 3) 该buffer header所在的hash chain,是通过在buffer header里保存指向前一个buffer header的指针和指向后一个buffer header的指针的方式实现的。 4) 该buffer header所在的LRU、LRUW、CKPTQ等链表(这些链表我们后面都会详细说明)。也是通过记录前后buffer header指针的方式实现。 5) 当前该buffer header所对应的数据块的状态以及标记。 6) 该buffer header被访问(touch)的次数。 7) 正在等待该buffer header的进程列表(waiter list)和正在使用该buffer header的进程列表(user list)