最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mongodb数据文件格式

来源:动视网 责编:小采 时间:2020-11-09 09:48:23
文档

mongodb数据文件格式

mongodb数据文件格式:本文适合于对mongodb有一定了解的朋友阅读。 mongodb的数据文件存在dbpath选项指定的目录里。每个库(database)都有一系列的文件:dbname.ns, dbname.0, dbname.1, ...数据文件也叫pdfile,意思是Portable Data File。 dbname.n
推荐度:
导读mongodb数据文件格式:本文适合于对mongodb有一定了解的朋友阅读。 mongodb的数据文件存在dbpath选项指定的目录里。每个库(database)都有一系列的文件:dbname.ns, dbname.0, dbname.1, ...数据文件也叫pdfile,意思是Portable Data File。 dbname.n


本文适合于对mongodb有一定了解的朋友阅读。 mongodb的数据文件存在dbpath选项指定的目录里。每个库(database)都有一系列的文件:dbname.ns, dbname.0, dbname.1, ...数据文件也叫pdfile,意思是Portable Data File。 dbname.ns文件 dbname.ns文件存储命名空

本文适合于对mongodb有一定了解的朋友阅读。

mongodb的数据文件存在dbpath选项指定的目录里。每个库(database)都有一系列的文件:dbname.ns, dbname.0, dbname.1, ...数据文件也叫pdfile,意思是Portable Data File。

dbname.ns文件

dbname.ns文件存储命名空间信息。在mongodb里,每个collection都具有一个命名空间,名字为dbname.collection_name。dbname.ns文件存储的是一个哈希表节点数组。key是根据命名空间的名字,value是命名空间信息。哈希表节点的大小是628字节,服务器租用,dbname.ns文件的默认大小是16M,虚拟主机,一共可以存放26715个命名空间。nssize选项可以设置dbname.ns文件的大小。

相关代码类

dbname.<#>系列文件

dbname.<#>系列文件存储了每个库的所有数据,其文件格式为

--------------------------------------------
DataFileHeader
--------------------------------------------
Extent (for a particular namespace)
Record
...
Record (some chained for unused space)
--------------------------------------------
more Extents...
--------------------------------------------

DataFileHeader是数据文件的头部,后面的部分为Extent。文件空间的分配以Extent为单位。每个命名空间的所申请的Extent形成一个双向链表,表头和表尾存在命名空间信息里。Record即记录,在Extent里分配,每个Extent里的所有Record形成一个双向链表,表头和表尾存在Extent头部。可以想到,对命名空间的所有Record的遍历方法为:遍历Extent链表,对每个Extent,遍历其Record链表。空闲的Record(Extent里剩余的空间、或者Record被删除),免备案空间,称作DeleteRecord,根据其大小,形成19个单向链表(表头也存在命名空间里)。可以想到,申请一个Record的方法:先从空闲的Record里面找;如果找不到,则分配新的Extent。

当一个命名空间被删除的时候,它的所有的Extent都会挂到名为$freelist的collection的Extent链表中。那么,分配Extent的时候,会先从$freelist的Extent链表中寻找。如果找不到,就申请新的Extent。

相关代码类

文档

mongodb数据文件格式

mongodb数据文件格式:本文适合于对mongodb有一定了解的朋友阅读。 mongodb的数据文件存在dbpath选项指定的目录里。每个库(database)都有一系列的文件:dbname.ns, dbname.0, dbname.1, ...数据文件也叫pdfile,意思是Portable Data File。 dbname.n
推荐度:
标签: 格式 文件 文档
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top