CN107203478A - 一种数据存储的方法及装置 - Google Patents
一种数据存储的方法及装置 Download PDFInfo
- Publication number
- CN107203478A CN107203478A CN201710474458.4A CN201710474458A CN107203478A CN 107203478 A CN107203478 A CN 107203478A CN 201710474458 A CN201710474458 A CN 201710474458A CN 107203478 A CN107203478 A CN 107203478A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- item
- storage
- extension
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000003860 storage Methods 0.000 claims abstract description 40
- 230000004048 modification Effects 0.000 claims abstract description 36
- 238000012986 modification Methods 0.000 claims abstract description 36
- 230000008439 repair process Effects 0.000 claims description 2
- 230000008859 change Effects 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储的方法及装置,当待存储数据需要扩展时,获取预设数据项描述信息的修改信息,其中,上述预设数据项描述信息为包括数据偏移信息、数据长度信息、最后字段信息和后续项信息的数据项属性组信息;根据修改信息,修改预设数据项描述信息,得出扩展数据项描述信息;根据扩展数据项描述信息,将扩展后的待存储数据存储至存储介质。本申请通过数据项描述信息属性组描述每一项数据,当需要对数据长度进行扩展时,只需要简单修改原数据项的最后字段信息和后续项信息,避免数据项的扩展对其它数据项的影响;同时无需考虑为每个数据项预留存储空间,降低系统设计初期在存储介质中进行数据布局设计的难度,提高存储数据的易扩展性。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种数据存储的方法及装置。
背景技术
随着存储技术的发展进步,所需存储的数据长度也在不断增加。
现有采用顺序保存方式来将数据存储在存储介质中,该存储介质可以为EEPROM等存储设备。当需要将数据存储在EEPROM等存储介质时,一般地,按照(数据偏移,数据长度)对的形式进行顺序保存。
但是,当所需存储数据的数据长度发生变化时,例如,假定系统设计初期规定product_sn占7个字节,在实现时将EEPROM的0x0000—0x0006七个字节用于存放product_sn,并预留一个字节用于扩展;而从0x0008偏移处开始的四个字节用于存放节点的ipv4地址。在开发过程中,发现产品序列号product_sn需要由7位扩展为9位,按照传统的形式组织EEPROM中的数据,由于预留空间不足,首先需要将ipv4地址数据后移,为product_sn留出足够的空间;而ipv4址数数据存放位置改变时,必须同时修改ipv4数据的描述信息即(数据偏移,数据长度)数据对;当EEPROM中存入大量数据时,格式变更导致的存储空间调整将变得异常复杂,复杂性甚至不亚于对EEPROM空间进行重新分配。由上可知,采用顺序保存的方式的存在较大弊端:当某条信息的格式发生变化,如长度变长而预留的空间不足以容纳新的数据格式时,需要重新规划所有数据在EEPROM中的分布,造成前期工作的浪费;而为每条信息预留超过所需的存储空间又势必造成空间的浪费。
发明内容
本发明的目的是提供一种数据存储的方法及装置,目的在于解决现有采用顺序保存方式存储数据的易扩展性较差的问题。
为解决上述技术问题,本发明提供一种数据存储的方法,该方法包括:
当待存储数据需要扩展时,获取预设数据项描述信息的修改信息,其中,所述预设数据项描述信息为包括数据偏移信息、数据长度信息、最后字段信息和后续项信息的数据项属性组信息;
根据所述修改信息,修改所述预设数据项描述信息,得出扩展数据项描述信息,所述修改信息为用于修改所述后续项信息和所述最后字段信息的信息;
根据所述扩展数据项描述信息,将扩展后的所述待存储数据存储至存储介质。
可选地,在所述根据所述扩展数据项描述信息,将所述待存储数据存储至存储介质之后还包括:
获取数据读取指令;
根据所述数据读取指令包含的所述后续项信息和所述最后字段信息,读取扩展数据和原存储数据;
将所述控制数据和所述原存储数据进行拼接,得出扩展后的所述待存储数据。
可选地,所述存储介质为EEPROM。
此外,本发明还提供了一种数据存储的装置,该装置包括:
修改信息获取模块,用于当待存储数据需要扩展时,获取预设数据项描述信息的修改信息,其中,所述预设数据项描述信息为包括数据偏移信息、数据长度信息、最后字段信息和后续项信息的数据项属性组信息;
描述信息修改模块,用于根据所述修改信息,修改所述预设数据项描述信息,得出扩展数据项描述信息,所述修改信息为用于修改所述后续项信息和所述最后字段信息的信息;
扩展存储模块,用于根据所述扩展数据项描述信息,将扩展后的所述待存储数据存储至存储介质。
可选地,还包括:
读取指令获取模块,用于获取数据读取指令;
读取模块,用于根据所述数据读取指令包含的所述后续项信息和所述最后字段信息,读取扩展数据和原存储数据;
拼接模块,用于将所述控制数据和所述原存储数据进行拼接,得出扩展后的所述待存储数据。
可选地,所述存储介质为EEPROM。
本发明所提供的一种数据存储的方法及装置,当待存储数据需要扩展时,获取预设数据项描述信息的修改信息,其中,上述预设数据项描述信息为包括数据偏移信息、数据长度信息、最后字段信息和后续项信息的数据项属性组信息;根据修改信息,修改预设数据项描述信息,得出扩展数据项描述信息,上述修改信息为用于修改最后字段信息和后续项信息的信息;根据扩展数据项描述信息,将扩展后的待存储数据存储至存储介质。本申请通过数据项描述信息属性组描述每一项数据,当需要对数据长度进行扩展时,只需要简单修改原数据项的最后字段信息和后续项信息,避免了数据项的扩展对其它数据项的影响;同时无需考虑为每个数据项预留存储空间,降低了系统设计初期在存储介质中进行数据布局设计的难度,进而提高了存储数据的易扩展性。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的数据存储方法的一种具体实施方式的流程示意图;
图2为本发明实施例所提供的数据存储装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,图1为本发明实施例所提供的数据存储方法的一种具体实施方式的流程示意图,该方法包括以下步骤:
步骤101:当待存储数据需要扩展时,获取预设数据项描述信息的修改信息,其中,所述预设数据项描述信息为包括数据偏移信息、数据长度信息、最后字段信息和后续项信息的数据项属性组信息。
可以理解,上述最后字段信息可以是指表征待存储数据的各行数据是否为最后字段的信息,即表明各个数据是否为最后数据,具体地可以用is_end表示,当is_end列为false时,表明该行数据不是最后的数据;当is_end列为true时,表明该行数据是最后的数据。
上述后续项信息可以表明后续一行数据项的信息,具体可以用next_field来表示,当is_end列为false时,next_field列则表明后续数据的所在行。
步骤102:根据所述修改信息,修改所述预设数据项描述信息,得出扩展数据项描述信息,所述修改信息为用于修改所述后续项信息和所述最后字段信息的信息。
上述修改信息可以是指用户根据需要对上述后续线信息和最后字段信息配置的信息,例如,可以将is_end列由true改为false。
步骤103:根据所述扩展数据项描述信息,将扩展后的所述待存储数据存储至存储介质。
可以理解,上述存储介质优选地为EEPROM,当然,也可以具体为其它存储介质,在此不作限定。
为了更好地介绍整个扩展存储的过程,下面将以product_sn(产品的序列号)存储至EEPROM为例进行介绍说明。
假定系统设计初期规定product_sn占7个字节,在实现时将EEPROM的0x0000—0x0006七个字节用于存放product_sn,并预留一个字节用于扩展;而从0x0008偏移处开始的四个字节用于存放节点的ipv4地址。
而开发过程中,发现product_sn需要由7位扩展为9位,采用如下文所示的eeprom_dafa_field属性数组描述每一个数据项的信息,每一行用于描述data_filed_enum中的一项在EEPROM中的存储方式,数组中last_field_e项之前的每一行表示基础行;last_field_e项之后的每一行表示扩展行,是对基础行中数据的扩展;每一列表示数据的一个属性,其中is_end列表示该行数据是否最后的数据,当is_end列为false时next_field列表明后续数据的所在行。
当EEPROM中的product_sn_e需要由7字节扩展为9字节时,只需要将product_sn_e对应的行的is_end项由true改为false,表明该行的数据不是最终数据;在EEPROM中寻找一块2字节的空闲空间存放product_sn_e的扩展部分;在eeprom_dafa_field中增加一行(last_field_e+1)用于描述扩展的EEPROM存储空间;将product_sn_e对应的行的next_field列修改为扩展的EEPROM存储空间中新增的行。
对EEPROM中的数据进行扩展存储后,在读取product_sn_e时,可以通过is_end为false判断该行数据不完全,再根据next_filed列找到扩展数据,将两者拼接成完整的product_sn。
作为一种具体实施方式,在上述根据所述扩展数据项描述信息,将所述待存储数据存储至存储介质之后还可以包括:获取数据读取指令;根据所述数据读取指令包含的所述后续项信息和所述最后字段信息,读取扩展数据和原存储数据;将所述控制数据和所述原存储数据进行拼接,得出扩展后的所述待存储数据。
本实施例所提供的数据存储的方法,当待存储数据需要扩展时,获取预设数据项描述信息的修改信息,其中,上述预设数据项描述信息为包括数据偏移信息、数据长度信息、最后字段信息和后续项信息的数据项属性组信息;根据修改信息,修改预设数据项描述信息,得出扩展数据项描述信息,上述修改信息为用于修改最后字段信息和后续项信息的信息;根据扩展数据项描述信息,将扩展后的待存储数据存储至存储介质。该方法通过数据项描述信息属性组描述每一项数据,当需要对数据长度进行扩展时,只需要简单修改原数据项的最后字段信息和后续项信息,避免了数据项的扩展对其它数据项的影响;同时无需考虑为每个数据项预留存储空间,降低了系统设计初期在存储介质中进行数据布局设计的难度,进而提高了存储数据的易扩展性。
下面对本发明实施例提供的数据存储装置进行介绍,下文描述的数据存储装置与上文描述的数据存储方法可相互对应参照。
图2为本发明实施例所提供的数据存储装置的结构框图,参照图2数据存储装置可以包括:
修改信息获取模块21,用于当待存储数据需要扩展时,获取预设数据项描述信息的修改信息,其中,所述预设数据项描述信息为包括数据偏移信息、数据长度信息、最后字段信息和后续项信息的数据项属性组信息;
描述信息修改模块22,用于根据所述修改信息,修改所述预设数据项描述信息,得出扩展数据项描述信息,所述修改信息为用于修改所述后续项信息和所述最后字段信息的信息;
扩展存储模块23,用于根据所述扩展数据项描述信息,将扩展后的所述待存储数据存储至存储介质。
可选地,还包括:
读取指令获取模块,用于获取数据读取指令;
读取模块,用于根据所述数据读取指令包含的所述后续项信息和所述最后字段信息,读取扩展数据和原存储数据;
拼接模块,用于将所述控制数据和所述原存储数据进行拼接,得出扩展后的所述待存储数据。
可选地,所述存储介质为EEPROM。
本实施例所提供的数据存储的装置,通过数据项描述信息属性组描述每一项数据,当需要对数据长度进行扩展时,只需要简单修改原数据项的最后字段信息和后续项信息,避免了数据项的扩展对其它数据项的影响;同时无需考虑为每个数据项预留存储空间,降低了系统设计初期在存储介质中进行数据布局设计的难度,进而提高了存储数据的易扩展性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的数据存储的方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (6)
1.一种数据存储的方法,其特征在于,包括:
当待存储数据需要扩展时,获取预设数据项描述信息的修改信息,其中,所述预设数据项描述信息为包括数据偏移信息、数据长度信息、最后字段信息和后续项信息的数据项属性组信息;
根据所述修改信息,修改所述预设数据项描述信息,得出扩展数据项描述信息,所述修改信息为用于修改所述后续项信息和所述最后字段信息的信息;
根据所述扩展数据项描述信息,将扩展后的所述待存储数据存储至存储介质。
2.如权利要求1所述的方法,其特征在于,在所述根据所述扩展数据项描述信息,将所述待存储数据存储至存储介质之后还包括:
获取数据读取指令;
根据所述数据读取指令包含的所述后续项信息和所述最后字段信息,读取扩展数据和原存储数据;
将所述控制数据和所述原存储数据进行拼接,得出扩展后的所述待存储数据。
3.如权利要求1或2所述的方法,其特征在于,所述存储介质为EEPROM。
4.一种数据存储的装置,其特征在于,包括:
修改信息获取模块,用于当待存储数据需要扩展时,获取预设数据项描述信息的修改信息,其中,所述预设数据项描述信息为包括数据偏移信息、数据长度信息、最后字段信息和后续项信息的数据项属性组信息;
描述信息修改模块,用于根据所述修改信息,修改所述预设数据项描述信息,得出扩展数据项描述信息,所述修改信息为用于修改所述后续项信息和所述最后字段信息的信息;
扩展存储模块,用于根据所述扩展数据项描述信息,将扩展后的所述待存储数据存储至存储介质。
5.如权利要求4所述的装置,其特征在于,还包括:
读取指令获取模块,用于获取数据读取指令;
读取模块,用于根据所述数据读取指令包含的所述后续项信息和所述最后字段信息,读取扩展数据和原存储数据;
拼接模块,用于将所述控制数据和所述原存储数据进行拼接,得出扩展后的所述待存储数据。
6.如权利要求4或5所述的装置,其特征在于,所述存储介质为EEPROM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710474458.4A CN107203478B (zh) | 2017-06-21 | 2017-06-21 | 一种数据存储的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710474458.4A CN107203478B (zh) | 2017-06-21 | 2017-06-21 | 一种数据存储的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107203478A true CN107203478A (zh) | 2017-09-26 |
CN107203478B CN107203478B (zh) | 2020-07-24 |
Family
ID=59908063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710474458.4A Active CN107203478B (zh) | 2017-06-21 | 2017-06-21 | 一种数据存储的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107203478B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806364A (zh) * | 2021-08-28 | 2021-12-17 | 特斯联科技集团有限公司 | 一种大数据存储系统及方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294387A (zh) * | 1999-08-20 | 2001-05-09 | 微软公司 | 对顺序存取存储介质上变长度数据的有效存取 |
US20100005259A1 (en) * | 2008-07-03 | 2010-01-07 | Anand Prahlad | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
CN101751413A (zh) * | 2008-12-18 | 2010-06-23 | 中国银联股份有限公司 | 字段标记法交易流水文件及其信息记录方法 |
CN102073702A (zh) * | 2010-12-30 | 2011-05-25 | 浪潮集团山东通用软件有限公司 | 一种人力资源管理信息系统的人员信息动态扩展的实现方法 |
CN102298584A (zh) * | 2010-06-23 | 2011-12-28 | 上海博路信息技术有限公司 | 一种数据动态增长的电子书结构 |
US20130024432A1 (en) * | 2011-07-20 | 2013-01-24 | Symantec Corporation | Method and system for storing data in compliance with a compression handling instruction |
CN104102664A (zh) * | 2013-04-10 | 2014-10-15 | 中国科学院计算技术研究所 | 一种物理机资源信息的数据处理方法及系统 |
-
2017
- 2017-06-21 CN CN201710474458.4A patent/CN107203478B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294387A (zh) * | 1999-08-20 | 2001-05-09 | 微软公司 | 对顺序存取存储介质上变长度数据的有效存取 |
US20100005259A1 (en) * | 2008-07-03 | 2010-01-07 | Anand Prahlad | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
CN101751413A (zh) * | 2008-12-18 | 2010-06-23 | 中国银联股份有限公司 | 字段标记法交易流水文件及其信息记录方法 |
CN102298584A (zh) * | 2010-06-23 | 2011-12-28 | 上海博路信息技术有限公司 | 一种数据动态增长的电子书结构 |
CN102073702A (zh) * | 2010-12-30 | 2011-05-25 | 浪潮集团山东通用软件有限公司 | 一种人力资源管理信息系统的人员信息动态扩展的实现方法 |
US20130024432A1 (en) * | 2011-07-20 | 2013-01-24 | Symantec Corporation | Method and system for storing data in compliance with a compression handling instruction |
CN104102664A (zh) * | 2013-04-10 | 2014-10-15 | 中国科学院计算技术研究所 | 一种物理机资源信息的数据处理方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113806364A (zh) * | 2021-08-28 | 2021-12-17 | 特斯联科技集团有限公司 | 一种大数据存储系统及方法 |
CN113806364B (zh) * | 2021-08-28 | 2023-12-22 | 深圳特斯联智能科技有限公司 | 一种大数据存储系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107203478B (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8643652B2 (en) | Dynamic augmentation of extensible font subsets | |
US8823720B2 (en) | Methods, systems, and data structures for generating a rasterizer | |
TW201348958A (zh) | 資料儲存裝置與資料儲存裝置操作方法 | |
CN105335445A (zh) | 布局显示方法和装置 | |
CN107222505A (zh) | 一种适配外部协议的方法及装置 | |
CN104503955A (zh) | 一种生成个性化excel表单据的方法 | |
CN107203478A (zh) | 一种数据存储的方法及装置 | |
CN107423321B (zh) | 适用大批量小文件云存储的方法及其装置 | |
US10084613B2 (en) | Self adapting driver for controlling datapath hardware elements | |
CN106547701A (zh) | 记忆装置及数据读取方法 | |
CN102651674B (zh) | 一种反射内存网数据传输方法 | |
JP2021039447A (ja) | メモリコントローラおよびメモリコントローラで実施される方法 | |
CN110109763A (zh) | 一种共享内存管理方法及装置 | |
CN104426774A (zh) | 一种同时支持IPv4和IPv6的高速路由查找方法及装置 | |
CN109766179A (zh) | 一种显存分配方法以及装置 | |
CN116975335A (zh) | 图像扭曲运算的顺序仿存方法、装置、介质及电子设备 | |
CN107391105A (zh) | 文本绘制方法和装置 | |
CN106919615A (zh) | 数据存取方法及系统 | |
CN105095290A (zh) | 一种分布式存储系统的数据布局方法 | |
CN105657521A (zh) | 一种频道数据存储方法和装置 | |
CN109634516A (zh) | 一种芯片存储器的读、写数据方法及系统 | |
CN101430715B (zh) | 一种排版后数据的存储方法和装置 | |
KR101556709B1 (ko) | 글리프의 유형에 따른 한글 폰트 자동 생성 시스템 및 방법 | |
US20090289947A1 (en) | System and method for processing data sent from a graphic engine | |
US7971007B2 (en) | Downgrade memory apparatus, and method for accessing a downgrade memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200628 Address after: 215100 No. 1 Guanpu Road, Guoxiang Street, Wuzhong Economic Development Zone, Suzhou City, Jiangsu Province Applicant after: SUZHOU LANGCHAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 450018 Henan province Zheng Dong New District of Zhengzhou City Xinyi Road No. 278 16 floor room 1601 Applicant before: ZHENGZHOU YUNHAI INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |