一种数据存储方法及读取还原方法技术

技术编号:14526669 阅读:31 留言:0更新日期:2017-02-02 06:20
本发明专利技术提供了一种数据存储方法及读取还原方法。将需要存储的数据信息分解为一条一条不可再分割的基本元数据,同时,为每一条元数据分配一个序列号ID;一条数据信息包括有N条元数据;在存储数据时,先将数据写入到一段连续的内存空间中,再写入磁盘或者其他介质中;将数据信息分为元数据部分和ID位置部分两部分,元数据部分为将数据信息所分解成的N个元数据,ID位置部分的每个ID位置与元数据部分的每个元数据为一一顺序对应关系;元数据部分位于ID位置部分之后;每个ID位置写入一个偏移值作为其对应的元数据在其写入的内存空间中的实际偏移值。无版本依赖,维护简单并且具有极高的数据还原性,能够支持快速过滤的数据兼容存储。

【技术实现步骤摘要】

本专利技术涉及一种数据存储方法及读取还原方法,特别是涉及一种适用于软件版本更迭的数据存储方法及读取还原方法。
技术介绍
软件版本更迭过程中会涉及存储信息的结构变化,从而使得软件的新旧版本数据结构存在差异,但是旧版本产生数据往往是有意义的,需要使得新版本软件可能正常读取使用旧的数据,这就要求有一套可以保证数据可以被兼容的方法。目前广泛采用的数据兼容方法主要以不同版本数据直接转换和采用特定的序列化存储方法,但在实际使用过程中存在以下方面问题:1、采用不同版本数据直接转化的方法存在大量的维护工作,N个版本数据会存在2N种转换方法,复杂且容易出错;2、采用特定的序列化存储方法可以避免第1点问题,但是在数据使用是往往需要花费较多的时间在数据反序列化还原上,极其影响分析性能。
技术实现思路
本专利技术要解决的技术问题是提供一种无版本依赖、维护简单并且具有极高的数据还原性能的数据存储方法及读取还原方法。一种数据存储方法,具体方法为:在存储数据前,将需要存储的数据信息分解为一条一条不可再分割的基本元数据,同时,为每一条元数据分配一个序列号ID,序列号ID从0开始依次递增;定义一条数据信息包括有N条元数据,所述N为大于等于1的自然数;在存储数据时,先将数据写入到一段连续的内存空间中,再写入磁盘或者其他介质中;内存空间的具体写入方法为:将数据信息分为元数据部分和ID位置部分两部分,元数据部分为将数据信息所分解成的N个元数据,ID位置部分的每个ID位置与元数据部分的每个元数据为一一顺序对应关系;元数据部分位于ID位置部分之后;每个ID位置写入一个偏移值作为其对应的元数据在其写入的内存空间中的实际偏移值。所述元数据为不可再分割的,如整数、字符串等数据;每个元数据的ID号都是唯一的,由系统自动分配。读取数据内容时,由于每一个元数据都是独立的,只需要知道元数据的ID值就可以读取出元数据的内容。在实际应用中,如果需要对用户信息下的某些数据做过滤操作,那么只需要还原出需要的信息,并不需要还原出完整的用户数据,具有极高的性能。元数据的真实内容按照写入的顺序依次写入到元数据部分。元数据部分由被分割成的一条一条元数据组成,顺序依次对应被分割的需要存储的数据信息。所述每个偏移值由2个字节组成,也就是说ID位置部分包括N*2个字节。ID位置部分用户存放元数据的实际偏移值,每个元数据对应一个ID位置,每个ID位置存放一个偏移值,每个偏移值由两个字节组成,也就是说每个ID位置由两个字节组成。定义第一个元数据的实际偏移值为0。每一个元数据的实际偏移值为上一个元数据的实际偏移值+上一个元数据类型固定长度。存储数据在内存空间的具体写入方法步骤为:S1、在连续的内存空间开始位置分配N个单元的数组空间;S2、获取数据空间之后的第一个空闲位置的偏移值,将第一个元数据的内容写入到该空闲位置上,并将其偏移值写入其对应的ID位置;S3、计算和更新当前写入的元数据内容及空闲位置的新的偏移值,将第二个元数据的内容写到该空闲位置上,并将其偏移值写入其对应的ID位置;以此类推,将元数据依次写入连续的内存空间中的数组空间之后,每个元数据在写入之前或之时或之后都获得其偏移值并将其偏移值写入其对应的ID位置。所述N个单元,每个单元包含2个字节。基于上述数据存储方法的数据读取还原方法,具体方法为:还原一条元数据时,根据元数据的ID值,读取其偏移值;根据元数据的类型,确定要读取的固定字节长度,从其偏移值位置开始读取所述固定字节长度的字节,完成对一个元数据内容的读取;依次读取数据信息中包含的所有元数据内容,完成一个完整的数据信息的还原。与现有技术相比,本专利技术的有益效果是:读取数据内容时,由于每一个元数据都是独立的,只需要知道元数据的ID值就可以读取出元数据的内容,这种数据存储方法,无版本依赖,维护简单并且具有极高的数据还原性,能够支持快速过滤的数据兼容存储。附图说明图1为本专利技术其中一实施例的数据存储原理示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。具体实施例1一种数据存储方法,具体方法为:在存储数据前,将需要存储的数据信息分解为一条一条不可再分割的基本元数据,同时,为每一条元数据分配一个序列号ID,序列号ID从0开始依次递增;定义一条数据信息包括有N条元数据,所述N为大于等于1的自然数;在存储数据时,先将数据写入到一段连续的内存空间中,再写入磁盘或者其他介质中;内存空间的具体写入方法为:将数据信息分为元数据部分和ID位置部分两部分,元数据部分为将数据信息所分解成的N个元数据,ID位置部分的每个ID位置与元数据部分的每个元数据为一一顺序对应关系;元数据部分位于ID位置部分之后;每个ID位置写入一个偏移值作为其对应的元数据在其写入的内存空间中的实际偏移值。具体实施例2在具体实施例1的基础上,元数据的真实内容按照写入的顺序依次写入到元数据部分。具体实施例3在具体实施例1或2的基础上,在本具体实施例中,所述每个偏移值由2个字节组成,也就是说ID位置部分包括N*2个字节。具体实施例4在具体实施例1到3之一的基础上,定义第一个元数据的实际偏移值为0。具体实施例5在具体实施例1到4之一的基础上,存储数据在内存空间的具体写入方法步骤为:S1、在连续的内存空间开始位置分配N个单元的数组空间;S2、获取数据空间之后的第一个空闲位置的偏移值,将第一个元数据的内容写入到该空闲位置上,并将其偏移值写入其对应的ID位置;S3、计算和更新当前写入的元数据内容及空闲位置的新的偏移值,将第二个元数据的内容写到该空闲位置上,并将其偏移值写入其对应的ID位置;以此类推,将元数据依次写入连续的内存空间中的数组空间之后,每个元数据在写入之前或之时或之后都获得其偏移值并将其偏移值写入其对应的ID位置。具体实施例6在具体实施例5的基础上,在本具体实施例中,所述N个单元,每个单元包含2个字节。具体实施例7在具体实施例1到6之一的基础上的数据读取还原方法,具体方法为:还原一条元数据时,根据元数据的ID值,读取其偏移值;根据元数据的类型,确定要读取的固定字节长度,从其偏移值位置开始读取所述固定字节长度的字节,完成对一个元数据内容的读取;依次读取数据信息中包含的所有元数据内容,完成一个完整的数据信息的还原。具体实施例8在具体实施例7的基础上,将需要存储的数据信息,分解为一条一条不可再分割的基本元数据,这里的元数据指的是不可再分割的,如整数、字符串等数据,定义一条数据信息包括有N条元数据;所述N为大于等于1的自然数;为每一条元数据自动分配一个序列号ID,序列号ID是从0开始依次递增的;在存储数时,先将数据写入到一段连续的内存空间中,然后再写入磁盘或者其它介质中,具体写入方法如下:在连续内存空间开始位置分配N*2个字节,形成一个由两个字节组成的一个单元,包含N个单元的数组空间,我们称这个数据空间为VTable;如图1所示,V本文档来自技高网...

【技术保护点】
一种数据存储方法,具体方法为:在存储数据前,将需要存储的数据信息分解为一条一条不可再分割的基本元数据,同时,为每一条元数据分配一个序列号ID,序列号ID从0开始依次递增;定义一条数据信息包括有N条元数据,所述N为大于等于1的自然数;在存储数据时,先将数据写入到一段连续的内存空间中,再写入磁盘或者其他介质中;内存空间的具体写入方法为:将数据信息分为元数据部分和ID位置部分两部分,元数据部分为将数据信息所分解成的N个元数据,ID位置部分的每个ID位置与元数据部分的每个元数据为一一顺序对应关系;元数据部分位于ID位置部分之后;每个ID位置写入一个偏移值作为其对应的元数据在其写入的内存空间中的实际偏移值。

【技术特征摘要】
1.一种数据存储方法,具体方法为:在存储数据前,将需要存储的数据信息分解为一条一条不可再分割的基本元数据,同时,为每一条元数据分配一个序列号ID,序列号ID从0开始依次递增;定义一条数据信息包括有N条元数据,所述N为大于等于1的自然数;在存储数据时,先将数据写入到一段连续的内存空间中,再写入磁盘或者其他介质中;内存空间的具体写入方法为:将数据信息分为元数据部分和ID位置部分两部分,元数据部分为将数据信息所分解成的N个元数据,ID位置部分的每个ID位置与元数据部分的每个元数据为一一顺序对应关系;元数据部分位于ID位置部分之后;每个ID位置写入一个偏移值作为其对应的元数据在其写入的内存空间中的实际偏移值。2.根据权利要求1所述的数据存储方法,元数据的真实内容按照写入的顺序依次写入到元数据部分。3.根据权利要求1所述的数据存储方法,所述每个偏移值由2个字节组成,也就是说ID位置部分包括N*2个字节。4.根据权利要求1所述的数据存储方法,定义第一个元数据的实际偏移值为0。5.根据权利要求1到4...

【专利技术属性】
技术研发人员:罗鹰黄江林康
申请(专利权)人:成都科来软件有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1