mirror of
https://github.com/fumiama/fumidb.git
synced 2026-06-11 05:30:26 +08:00
add page
This commit is contained in:
@@ -34,7 +34,7 @@
|
||||
#### 新建
|
||||
空闲块不会被主动新建,而是源于分配时富余的部分以及删除后的剩余。
|
||||
#### 合并
|
||||
受限于记录长度的数字为uint16,一块未被使用的空闲空间大小最大为`65535`,一般则不使其超过`32768`。如果确有连续的超过`32768`字节的空闲,应当划分为多个块。特别地,如果确有连续的超过`32768`字节的空闲且其后的空间不足`4096`字节,应当适当减小前一块的大小,使后一块大小超过`4096`字节。
|
||||
受限于记录长度的数字为uint16,一块未被使用的空闲空间大小最大为`65535`,实际使用时不使其超过`4096`。如果确有连续的超过`4096`字节的空闲,应当划分为多个块。块应当是`4k`对齐的。
|
||||
#### 使用
|
||||
使用时优先从第一个块遍历,比较其大小以及页对齐是否符合要求。当使用后仍有剩余,对于小于10字节的块,直接舍弃不用;否则更新块大小与相关链表指针。
|
||||
### 表
|
||||
|
||||
Reference in New Issue
Block a user