当数据块内数据被删除到pctused所指定值(默认40%)时,即将该块挂起到freelist上,使其可以接受新数据段插入。 在segment中若同一时刻发生多个insert,会引起freelist争用,故一个segment中可存在多个freelist。freelist的多少决定了同一时刻在同一segment中进行insert操作的数量。多个freelist又可归属于不同的freelist group。 当grouplist=1时,第一个block为段头块,存放freelist及HWM信息,其余均为数据块,第一个数据块是从第二个块开始插入的。 当freelist group >=2时,freelist从segment header内分离出来,存在单独的block中,每个freelist group占一个block,及真正的数据从1(段头)+n (freelist group数据)块之后的块开始。 ASSM(默认)以位图BMB方式管理段中的空闲数据块以避免freelist链表竞争, 当段空间<=1M,第一个块为一级位图块,该块管理2个分区内那些块,第二个块为二级位图块,它指明所有一级位图块的位置,第三块为段头,存放所有区的编号、一级位图块和而及位图块。第17个块也为位图块,管理第18~32个块,即2个区。依次类推。 当当段空间>1M,前16个区与上述相同,从17个区开始2个一级位图管理1个区,因为一个一级位图最多可管理64个块 转载请保留固定链接: https://linuxeye.com/database/659.html |