在每一个块中都有一个标记flg用来表明块是否链入了 free list链中。如果这个标志置上,该块中后向指针指向free list链中下一个块的DBA。如果当前块是链的最末尾的块,该后向指针值为0。
这里给出位于free list上的block dump的片段
| Block header dump: 0x03c00235
Object id on Block? Y seg/obj: 0xe2d8 csc: 0x00.6264c61 itc: 1 flg: O typ: 1 - DATA fsl: 1 fnx: 0x3c00234 ver: 0x01 ==> Seg/obj Object ID in dictionary ==> csc SCN of last block cleanout ==> itc Number of ITL slots ==> flg O = On freelist , - = Not on freelist ==> typ 1 = DATA 2 = INDEX ==> fsl ITL TX freelist slot ==> fnx DBA of NEXT block on freelist |
举例来说如果有五个块在free list中,分别为A,B,C,D,E
就会形成segment header->A->B->C->D->E--|
同时segment header->E
2.3 free list类别
更多内容请看PCdog.com--性能调优专题
