本文适合对其有一定了解的朋友阅读。
数据文件存储在该选项指定的目录中。 每个库()都有一系列文件:.ns、.0、.1、...也称为数据文件,意思是Data File。
.ns 文件
.ns 文件存储命名空间信息。 其中,每个都有一个名为 的命名空间。 .ns 文件存储哈希表节点的数组。 键是基于命名空间的名称,值是命名空间信息。 哈希表节点大小为628字节,.ns文件默认大小为16M,总共可以存储26715个命名空间。 选项可以设置.ns 文件的大小。
相关代码类别
.系列文件
.文件存储了每个库的所有数据,其文件格式为
-----------------------------------------------------------
-----------------------------------------------------------
(为一个 )
...
(有些是为了空间)
-----------------------------------------------------------
更多的...
-----------------------------------------------------------
是数据文件的标头,后面是 . 文件空间以单元为单位分配。 每个命名空间的申请形成一个双向链表,页眉和页脚存储在命名空间信息中。 也就是说,记录被分配在其中,每个记录中的所有内容形成一个双向链表,表头位于表的头部和尾部。 可以想象,对于命名空间的所有遍历方式都是:遍历链表,对于每一个,遍历其链表。 Free(剩余空间,或者说删除)被调用,根据其大小,形成19个单向链表(表头也存在于命名空间中)。 你可以想办法申请一个:先在免费的中搜索; 如果没有找到,则分配一个新的。
当一个命名空间被删除时,它的所有内容都会被挂在名为$的链表中。 那么分配的时候会先从$的链表中查找。 如果找不到,请申请新的。
相关代码类别