大数据页中高效存储非定常数据结构的制作方法

文档序号:6510792阅读:290来源:国知局
大数据页中高效存储非定常数据结构的制作方法
【专利摘要】本发明公开了一种大数据页中高效存储非定常数据结构,包括存储结构和记录内容两部分,存储结构的数据页包括存储文件头、空间管理段、元数据管理段和数据块四种类型,记录内容包含有数据记录头和数据记录两部分,记录内容用于存储记录的相关信息。其结构能够对使用非定长数据页的非关系型数据库,在使用常数个IO开销(O(1))的前提下找到一个空闲空间进行数据插入,以适应非定长数据页中快速检索与变更数据的需求,可持续对复杂程度与大小日益增长的数据进行快速,灵活的检索和更新。
【专利说明】大数据页中高效存储非定常数据结构
【技术领域】
[0001]本发明涉及一种数据存储结构,特别涉及一种关于大数据页的高效存储非定常数据结构,属于信息管理系统领域。
【背景技术】
[0002]在数据库领域中,高效存储、检索数据是数据库性能的一个重要指标。经过30年的发展,传统的关系型数据库在这一领域已经有了近乎统一的磁盘存储模式,传统的关系型数据库的每个数据页长度固定,起始为一个数据页头,之后使用若干定长的槽位作为‘指针’,分别指向数据页内的某一偏移,该偏移即为数据的起始偏移。使用中,槽位的增长从前向后,数据的增加从后向前,两者之间的空间即为该数据页的剩余空间。当查询一条记录时,对于顺序查询可以从头至尾遍历槽位,然后对每一个槽位指向的偏移进行访问即可;当指定查询时,首先跳转至该数据页的槽位,读取其偏移,然后访问该偏移所指向的数据即可;当删除记录时,将被删除记录的槽位置为一个无效值即可;当插入记录时,需要从槽位的起始开始扫描,直至槽位的结束或者遇到一个无效值,然后将新插入记录的偏移记录到该槽位中,从而完成记录插入。
[0003]这种数据结构对于传统关系型数据库的小数据页(4KB,8KB,16KB等占用磁盘空间较小的数据页)比较合适,但是在非关系型数据库的领域,一条数据记录可能远远大于这种小数据页的长度,因此在非关系型数据库的实现中,数据页的大小往往是非定长的,并且可能增长到相当大的地步(如32MB、64MB等)。这种大数据页的情况下,传统数据库的磁盘页形式会对性能造成极大的影响。试想一个16MB的数据页存取了很多100字节的数据,也就是说一个数据页可以容纳大约16万条记录。如果存储数据时从前向后扫描槽位,最坏情况下需要扫描16万次,也就是大约160个4KB大小的磁盘页。这样会造成任何插入操作都要执行160个I / 0,而不像传统数据库那样每个数据页仅占一个或者很少个磁盘页,同样,对于越大的数据页,需要越多的磁盘访问数量才能找到相应的位置插入数据,其关系为
O(η)的开销。因此,关系型数据库磁盘格式的局限性,已不适用于新型的非关系型数据库,在非关系型数据库中,我们亟需一种新的磁盘存取方式,以取代传统关系型数据库的数据模型。

【发明内容】

[0004]鉴于上述现有技术的不足,本发明旨在提供一种适合非定常大数据页的高效数据访问与存取数据结构,使磁盘访问量能维持在0(1)的水平上,以满足非关系型数据库的存储和使用需要。
[0005]本发明是通过以下技术方案来实现的:
[0006]一种大数据页中高效存储非定常数据结构,包括存储结构和记录内容两部分,存储结构的数据页包括存储文件头、空间管理段、元数据管理段和数据块四种类型。
[0007]所述存储文件头,用于记录存储文件的基本信息,存储文件头位于数据页的开始端。
[0008]所述空间管理段,用于维护和管理整个存储文件的空闲数据页信息,并以O代表数据页未分配,I代表数据页已分配但未被占用,2代表数据页被占用。
[0009]所述元数据管理段,存储和管理存储文件中所包含的全部集合信息。
[0010]所述数据块,用于存储用户数据的空间,数据块包含有数据块头信息及用户数据信息,一个数据块由一个或多个数据页构成。
[0011]所述记录内容包含有数据记录头和数据记录两部分,记录内容用于存储记录的相关信息。
[0012]所述存储文件头内记录的基本信息包括:文件标示串、数据页长度、存储文件长度、存储文件名和序列号。文件标示串用于标识数据存储文件的格式;数据页长度为数据块中每个数据页的大小,所有数据页以该大小为标准;存储文件长度表示存储文件头、空间管理段以及全部数据块文件所占据的数据页的数量,并以数据页的个数为单位;存储文件名代表了存储文件的名称;序列号代表存储文件在当前数据库中所属的编号。
[0013]所述元数据管理段包括一个以上的元数据单元,每个数据单元包含的信息有:集合名、标示、集合ID、起始数据块ID、终结数据块ID、删除列表和逻辑ID。集合名代表了该集合的名称;标示采用标示符代表该集合的状态;集合ID表示该集合在元数据管理段中所占据的地址;起始数据块ID表示该集合中包含的第一个数据块所在的数据页;终结数据块ID表示该集合中包含的最后一个数据块所在的数据页;删除列表中记录了该集合中不同长度记录被删除的第一条记录的位置;逻辑ID代表了该集合创建时的逻辑位置。
[0014]所述数据块头信息及用户数据信息包含有:字符标示串、数据块长度、所属集合ID、数据块标示、数据块版本、数据块逻辑ID、前一个数据块ID、后一个数据块ID、记录数、第一条记录偏移、最后一条记录偏移、空闲空间。字符标示串代表一个数据块起始的信息,并以字符标示数据块是否为非法数据块;数据块长度代表了该数据块所占数据页的数量,数据页在文件中必须连续,并且不能被别的集合所使用;所属集合ID代表了该数据块所属于的集合ID ;数据块标示代表该数据块的状态;数据块版本代表该数据块的格式信息;数据块逻辑ID是以逻辑递增方式标示出在每个集合中创建的新的数据块;前一个数据块ID标示了该数据块的前块ID ;后一个数据块ID标示了该数据块的后块ID ;记录数代表着该数据块内包含的用户记录个数;第一条记录偏移代表了该数据块内第一条记录的偏移地址;最后一条记录偏移代表了该数据块内最后一条记录的偏移地址;空闲空间代表了该数据块内的可用空间大小。
[0015]所述数据记录头包含的信息有:记录标示、记录长度、记录在数据块中偏移、前一条记录偏移、后一条记录偏移。记录标示代表了该数据记录的状态;记录长度代表了该数据记录的长度;记录在数据块中偏移代表了该数据记录在当前数据块内的偏移地址;前一条记录偏移标示了该数据记录的前一条记录的偏移指针;后一条记录偏移标示了该数据记录的后一条记录的偏移指针。
[0016]本发明所述的大数据页中高效存储非定常数据结构,其有益效果在于:能够对使用非定长数据页的非关系型数据库,在使用常数个IO开销(0(1))的前提下找到一个空闲空间进行数据插入,以适应非定长数据页中快速检索与变更数据的需求,可持续对复杂程度与大小日益增长的数据进行快速,灵活的检索和更新。克服了传统数据库结构在非定常数据页中,其空闲空间查找效率为0(n)的弊端。查找效率和使用灵活性明显提高,方便了大数据页非定常数据的存储需要。
【具体实施方式】
[0017]下面对本发明所述的大数据页中高效存储非定常数据结构在实际应用中的具体结构做进一步的详细描述:
[0018]本发明所述的一种大数据页中高效存储非定常数据结构,包括存储结构和记录内容两部分。记录内容用于存储记录的相关信息,存储结构用于反映和指示存储的相关状态。
[0019]一、存储结构的数据页包括存储文件头、空间管理段、元数据管理段和数据块四种类型,各类型数据页包含的具体信息内容如下:
[0020]1、存储文件头
[0021]存储文件头用于记录存储文件的基本信息,存储文件头位于数据页的开始端,并且占据了 65536个字节,其余部分以O补位。存储文件头内记录的基本信息包括:文件标示串、数据页长度、存储文件长度、存储文件名和序列号。如下表:
[0022]
【权利要求】
1.一种大数据页中高效存储非定常数据结构,其特征在于,包括存储结构和记录内容两部分,所述存储结构的数据页包括存储文件头、空间管理段、元数据管理段和数据块四种类型; 所述存储文件头,用于记录存储文件的基本信息,存储文件头位于数据页的开始端;所述空间管理段,用于维护和管理整个存储文件的空闲数据页信息,并以O代表数据页未分配,I代表数据页已分配但未被占用,2代表数据页被占用; 所述元数据管理段,存储和管理存储文件中所包含的全部集合信息; 所述数据块,用于存储用户数据的空间,数据块包含有数据块头信息及用户数据信息,一个数据块由一个或多个数据页构成; 所述记录内容包含有数据记录头和数据记录两部分,记录内容用于存储记录的相关信息。
2.根据权利要求1所述的大数据页中高效存储非定常数据结构,其特征在于,所述存储文件头内记录的基本信息包括:文件标示串、数据页长度、存储文件长度、存储文件名和序列号; 所述文件标示串用于标识数据存储文件的格式; 所述数据页长度为数据块中每个数据页的大小,所有数据页以该大小为标准; 所述存储文件长度表示存储文件头、空间管理段以及全部数据块文件所占据的数据页的数量,并以数据页的个数为单位; 所述存储文件名代表了存储文件的名称; 所述序列号代表存储文件在当前数据库中所属的编号。
3.根据权利要求1所述的大数据页中高效存储非定常数据结构,其特征在于,所述元数据管理段包括一个以上的元数据单元,每个数据单元包含的信息有:集合名、标示、集合ID、起始数据块ID、终结数据块ID、删除列表和逻辑ID ; 所述集合名代表了该集合的名称; 所述标示采用标示符代表该集合的状态; 所述集合ID表示该集合在元数据管理段中所占据的地址; 所述起始数据块ID表示该集合中包含的第一个数据块所在的数据页; 所述终结数据块ID表示该集合中包含的最后一个数据块所在的数据页; 所述删除列表中记录了该集合中不同长度记录被删除的第一条记录的位置; 所述逻辑ID代表了该集合创建时的逻辑位置。
4.根据权利要求1所述的大数据页中高效存储非定常数据结构,其特征在于,所述数据块头信息及用户数据信息包含有:字符标示串、数据块长度、所属集合ID、数据块标示、数据块版本、数据块逻辑ID、前一个数据块ID、后一个数据块ID、记录数、第一条记录偏移、最后一条记录偏移、空闲空间; 所述字符标示串代表一个数据块起始的信息,并以字符标示数据块是否为非法数据块; 所述数据块长度代表了该数据块所占数据页的数量,数据页在文件中必须连续,并且不能被别的集合所使用; 所述所属集合ID代表了该数据块所属于的集合ID ;所述数据块标示代表该数据块的状态; 所述数据块版本代表该数据块的格式信息; 所述数据块逻辑ID是以逻辑递增方式标示出在每个集合中创建的新的数据块; 所述前一个数据块ID标示了该数据块的前块ID ; 所述后一个数据块ID标示了该数据块的后块ID ; 所述记录数代表着该数据块内包含的用户记录个数; 所述第一条记录偏移代表了该数据块内第一条记录的偏移地址; 所述最后一条记录偏移代表了该数据块内最后一条记录的偏移地址; 所述空闲空间代表了该数据块内的可用空间大小。
5.根据权利要求1所述的大数据页中高效存储非定常数据结构,其特征在于,所述数据记录头包含的信息有:记录标示、记录长度、记录在数据块中偏移、前一条记录偏移、后一条记录偏移; 所述记录标示代表了该数据记录的状态; 所述记录长度代表了该数据记录的长度; 所述记录在数据块中偏移代表了该数据记录在当前数据块内的偏移地址; 所述前一条记录偏移标示了该数据记录的前一条记录的偏移指针; 所述后一条记录偏移标示了该数据 记录的后一条记录的偏移指针。
【文档编号】G06F17/30GK103488710SQ201310406735
【公开日】2014年1月1日 申请日期:2013年9月10日 优先权日:2013年9月10日
【发明者】唐迅, 王涛 申请人:广州巨杉软件开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1