CN110262755A - 一种嵌入式系统的文件存储方法 - Google Patents
一种嵌入式系统的文件存储方法 Download PDFInfo
- Publication number
- CN110262755A CN110262755A CN201910536221.3A CN201910536221A CN110262755A CN 110262755 A CN110262755 A CN 110262755A CN 201910536221 A CN201910536221 A CN 201910536221A CN 110262755 A CN110262755 A CN 110262755A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- specified
- index
- header
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种嵌入式系统的文件存储方法,一个文件包含同一类型的一条或多条数据,所述一个文件包括文件头和数据区,所述文件头记录所述数据区中各条数据的索引,所述数据索引标记所述数据区中各数据的偏移地址和/或有效性,所述数据区记录实际存储的一条或多条数据内容。本发明采用一个文件来记录同一类型的多条数据,避免同一类型数据分散存储,便于统一管理相同类型的数据;文件头中的索引标记着数据区中各数据的偏移地址和有效性,不需要遍历查询整个数据区,便可以统计文件中有效数据的个数,提高了文件的查询效率;删除指定数据时,只需将文件头中指定数据的索引置为无效,即可完成删除操作,提高了数据的删除处理效率。
Description
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及一种嵌入式系统的文件存储方法。
背景技术
嵌入式系统运行过程中,会需要一些原始的配置参数,也会产生一些实时的运行数据。目前一般的处理方法是,将这些配置参数和运行数据逐条地存储在非易失性存储介质中。这样处理的好处是存储操作简单,但不足之处是,各条数据分散存储,没有顺序性,不利于数据的检索查询操作。例如,基于这样的处理方法,若读取某一条数据时,需要遍历整个存储空间才能找到该指定的数据;若删除某一条数据时,需要先遍历找到该指定数据,再将该指定数据做删除操作。
发明内容
鉴于现有技术中存在的问题,本发明提出了一种新的嵌入式系统的文件存储方法,该技术方案可以统一管理相同类型的数据,显著地提高数据检索操作的效率,以解决上述背景技术中提出的问题。
为解决上述技术问题,本发明所采用的技术方案是:一种嵌入式系统的文件,所述一个文件包含同一类型的一条或多条数据,所述一个文件包括文件头和数据区,所述文件头记录所述数据区中各条数据的索引,所述数据索引标记所述数据区中各数据的偏移地址和/或有效性,所述数据区记录实际存储的一条或多条数据内容,根据所述数据区中数据的总个数,预分配所述数据索引的空间大小。
一种所述嵌入式系统的文件存储方法,在系统启动初始化时,所述方法包括以下步骤:
步骤A1,系统上电启动,打开指定文件;
步骤A2,判断所述指定文件是否存在,若不存在则跳转至步骤A3,若存在则跳转至步骤A4;
步骤A3,创建所述指定文件,并格式化文件头;
步骤A4,读取文件头,加载所述指定文件的文件头索引到内存中;
步骤A5,完成初始化,关闭所述指定文件。
进一步的,在删除指定文件的一条指定数据时,包括以下步骤:
步骤B1,从所述指定文件的文件头中,找到所述指定数据的索引;
步骤B2,所述指定数据的索引置为无效,更新所述指定文件的文件头。
进一步的,在读取指定文件的一条指定数据时,包括以下步骤:
步骤C1,从所述指定文件的文件头中,找到所述指定数据的索引,得到所述指定数据的偏移地址;
步骤C2,根据所述偏移地址,读取所述指定文件数据区的指定数据。
进一步的,在更新指定文件的一条指定数据时,包括以下步骤:
步骤D1,从所述指定文件的文件头中,找到所述指定数据的索引,得到所述指定数据的偏移地址;
步骤D2,根据所述偏移地址,更新所述指定文件数据区的指定数据。
进一步的,在新增指定文件的一条指定数据时,包括以下步骤:
步骤E1,从所述指定文件的文件头中,找到一条空闲的索引;
步骤E2,根据所述空闲索引的偏移地址,写入所述指定数据到所述指定文件的数据区;
步骤E3,所述空闲索引置为有效,更新所述指定文件的文件头。
进一步的,在获取指定文件的有效数据个数时,包括以下步骤:
步骤F1,读取所述指定文件的文件头;
步骤F2,遍历所述文件头的索引,得到所述指定文件的有效数据个数。
由上述对本发明结构的描述可知,和现有技术相比,本发明具有如下优点:
本发明采用一个文件来记录同一类型的多条数据,避免同一类型数据分散存储,便于统一管理相同类型的数据;文件头中的索引标记着数据区中各数据的偏移地址和有效性,不需要遍历查询整个数据区,便可以统计文件中有效数据的个数,提高了文件的查询效率;删除指定数据时,只需将文件头中指定数据的索引置为无效,即可完成删除操作,提高了数据的删除处理效率。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明一种实施例的单一文件的存储结构示意图;
图2示出了本发明一种实施例的系统启动初始化的工作流程示意图;
图3示出了本发明一种实施例的删除指定文件的一条指定数据的工作流程示意图;
图4示出了本发明一种实施例的读取指定文件的一条指定数据的工作流程示意图;
图5示出了本发明一种实施例的更新指定文件的一条指定数据的工作流程示意图;
图6示出了本发明一种实施例的新增指定文件的一条指定数据的工作流程示意图;
图7示出了本发明一种实施例的获取指定文件的有效数据个数的工作流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。。
实施例
如图1所示,本例提供一种嵌入式系统的文件,所述一个文件包含同一类型的一条或多条数据,所述一个文件包括文件头X和数据区Y,所述文件头X记录所述数据区Y中各条数据的索引,所述数据索引标记所述数据区Y中各数据的偏移地址和/或有效性,所述数据区Y记录实际存储的一条或多条数据内容。
本例所述数据索引的值,表示数据区Y中实际数据的唯一主键值。该唯一主键值,用来区分相同类型的各条实际数据。同时所述数据索引的值,也标示着数据区Y中相应位置的数据的有效与否。此外,所述数据索引的顺序编号,表示数据区Y中相应数据的偏移地址,文件头中数据索引与数据区中实际数据存在一一对应关系。例如,若索引1的值等于3,表示数据区中第1条数据为主键值等于3的实际数据;若索引N的值为特定无效值,表示数据区中第N条数据为空。
本例还包括,根据所述数据区Y中数据的总个数,预分配所述数据索引的空间大小。本例中文件头和数据区均采用固定长度管理。相同类型的实际数据的长度也是相同的,它们被分配了固定的存储空间。若数据区中实际数据的总个数为N,那么文件头中数据索引的个数也为N。单个数据索引的长度,可根据以下情况确定:
若N小于等于256,1字节大小的数据索引足以表示全部数据的主键值,则单个数据索引长度为1,预分配文件头的空间大小为N;
若N大于256且小于等于65536,2字节大小的数据索引足以表示全部数据的主键值,则单个数据索引长度为2,预分配文件头的空间大小为2N;
若N大于65536,4字节大小的数据索引足以表示全部数据的主键值,则单个数据索引长度为4,预分配文件头的空间大小为4N;
本例所述数据区中相应数据的偏移地址,通过以下公式计算得到:
偏移地址=文件头空间总大小+(数据索引序号x单条数据长度)。
如图2所示,一种所述嵌入式系统的文件存储方法,在系统启动初始化时,所述方法包括以下步骤:
步骤A1,系统上电启动,打开指定文件;
步骤A2,判断所述指定文件是否存在,若不存在则跳转至步骤A3,若存在则跳转至步骤A4;
步骤A3,创建所述指定文件,并格式化文件头;
步骤A4,读取文件头,加载所述指定文件的文件头索引到内存中;
步骤A5,完成初始化,关闭所述指定文件。
所述步骤A3中,创建所述指定文件,包括创建所述指定文件的文件头和数据区。所述步骤A4中,读取文件头,加载所述指定文件的文件头索引到内存中,并在内存中对该文件的文件头索引进行排序,便于后续查找指定数据的索引,以及便于后续快速获取指定文件中有效数据的个数,缩短了系统开机的初始化等待时间。
如图3所示,在删除指定文件的一条指定数据时,包括以下步骤:
步骤B1,从所述指定文件的文件头中,找到所述指定数据的索引;
步骤B2,所述指定数据的索引置为无效,更新所述指定文件的文件头。
所述步骤B2中,只更新了所述指定文件的文件头部分,不需要更新所述指定文件的数据区部分,即可完成指定数据的删除操作,提高了删除指定数据的效率。
如图4所示,在读取指定文件的一条指定数据时,包括以下步骤:
步骤C1,从所述指定文件的文件头中,找到所述指定数据的索引,得到所述指定数据的偏移地址;
步骤C2,根据所述偏移地址,读取所述指定文件数据区的指定数据。
如图5所示,在更新指定文件的一条指定数据时,包括以下步骤:
步骤D1,从所述指定文件的文件头中,找到所述指定数据的索引,得到所述指定数据的偏移地址;
步骤D2,根据所述偏移地址,更新所述指定文件数据区的指定数据。
所述步骤D2中,只更新所述指定文件数据区的指定数据,不需要更新所述指定文件的文件头部分。
如图6所示,在新增指定文件的一条指定数据时,包括以下步骤:
步骤E1,从所述指定文件的文件头中,找到一条空闲的索引;
步骤E2,根据所述空闲索引的偏移地址,写入所述指定数据到所述指定文件的数据区;
步骤E3,所述空闲索引置为有效,更新所述指定文件的文件头。
如图7所示,在获取指定文件的有效数据个数时,包括以下步骤:
步骤F1,读取所述指定文件的文件头;
步骤F2,遍历所述文件头的索引,得到所述指定文件的有效数据个数。
本发明采用一个文件来记录同一类型的多条数据,避免同一类型数据分散存储,便于统一管理相同类型的数据;文件头中的索引标记着数据区中各数据的偏移地址和有效性,不需要遍历查询整个数据区,便可以统计文件中有效数据的个数,提高了文件的查询效率;删除指定数据时,只需将文件头中指定数据的索引置为无效,即可完成删除操作,提高了数据的删除处理效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种嵌入式系统的文件,其特征在于:所述一个文件包含同一类型的一条或多条数据,所述一个文件包括文件头和数据区,所述文件头记录所述数据区中各条数据的索引,所述数据索引标记所述数据区中各数据的偏移地址和/或有效性,所述数据区记录实际存储的一条或多条数据内容,根据所述数据区中数据的总个数,预分配所述数据索引的空间大小。
2.一种权利要求1所述嵌入式系统的文件存储方法,其特征在于:在系统启动初始化时,所述方法包括以下步骤:
步骤A1,系统上电启动,打开指定文件;
步骤A2,判断所述指定文件是否存在,若不存在则跳转至步骤A3,若存在则跳转至步骤A4;
步骤A3,创建所述指定文件,并格式化文件头;
步骤A4,读取文件头,加载所述指定文件的文件头索引到内存中;
步骤A5,完成初始化,关闭所述指定文件。
3.根据权利要求2所述一种嵌入式系统的文件存储方法,其特征在于:在删除指定文件的一条指定数据时,包括以下步骤:
步骤B1,从所述指定文件的文件头中,找到所述指定数据的索引;
步骤B2,所述指定数据的索引置为无效,更新所述指定文件的文件头。
4.根据权利要求2所述一种嵌入式系统的文件存储方法,其特征在于:在读取指定文件的一条指定数据时,包括以下步骤:
步骤C1,从所述指定文件的文件头中,找到所述指定数据的索引,得到所述指定数据的偏移地址;
步骤C2,根据所述偏移地址,读取所述指定文件数据区的指定数据。
5.根据权利要求2所述一种嵌入式系统的文件存储方法,其特征在于:在更新指定文件的一条指定数据时,包括以下步骤:
步骤D1,从所述指定文件的文件头中,找到所述指定数据的索引,得到所述指定数据的偏移地址;
步骤D2,根据所述偏移地址,更新所述指定文件数据区的指定数据。
6.根据权利要求2所述一种嵌入式系统的文件存储方法,其特征在于,在新增指定文件的一条指定数据时,包括以下步骤:
步骤E1,从所述指定文件的文件头中,找到一条空闲的索引;
步骤E2,根据所述空闲索引的偏移地址,写入所述指定数据到所述指定文件的数据区;
步骤E3,所述空闲索引置为有效,更新所述指定文件的文件头。
7.根据权利要求2所述一种嵌入式系统的文件存储方法,其特征在于,在获取指定文件的有效数据个数时,包括以下步骤:
步骤F1,读取所述指定文件的文件头;
步骤F2,遍历所述文件头的索引,得到所述指定文件的有效数据个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910536221.3A CN110262755A (zh) | 2019-06-20 | 2019-06-20 | 一种嵌入式系统的文件存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910536221.3A CN110262755A (zh) | 2019-06-20 | 2019-06-20 | 一种嵌入式系统的文件存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110262755A true CN110262755A (zh) | 2019-09-20 |
Family
ID=67919745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910536221.3A Pending CN110262755A (zh) | 2019-06-20 | 2019-06-20 | 一种嵌入式系统的文件存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110262755A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190471A (zh) * | 2021-06-30 | 2021-07-30 | 飞天诚信科技股份有限公司 | 一种助记词的管理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182508A (zh) * | 2014-08-19 | 2014-12-03 | 华为技术有限公司 | 一种数据处理方法和数据处理装置 |
CN105426366A (zh) * | 2014-08-19 | 2016-03-23 | 西安慧泽知识产权运营管理有限公司 | 一种对数据资源进行有效管理的方法 |
CN106649653A (zh) * | 2016-12-12 | 2017-05-10 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载矢量地图数据的预处理方法 |
CN108228479A (zh) * | 2018-01-29 | 2018-06-29 | 深圳市泰比特科技有限公司 | 一种嵌入式flash数据存储方法及系统 |
CN109597865A (zh) * | 2018-11-21 | 2019-04-09 | 中国航空无线电电子研究所 | 基于嵌入式平台的海量地理信息数据的存储与检索方法 |
-
2019
- 2019-06-20 CN CN201910536221.3A patent/CN110262755A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182508A (zh) * | 2014-08-19 | 2014-12-03 | 华为技术有限公司 | 一种数据处理方法和数据处理装置 |
CN105426366A (zh) * | 2014-08-19 | 2016-03-23 | 西安慧泽知识产权运营管理有限公司 | 一种对数据资源进行有效管理的方法 |
CN106649653A (zh) * | 2016-12-12 | 2017-05-10 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载矢量地图数据的预处理方法 |
CN108228479A (zh) * | 2018-01-29 | 2018-06-29 | 深圳市泰比特科技有限公司 | 一种嵌入式flash数据存储方法及系统 |
CN109597865A (zh) * | 2018-11-21 | 2019-04-09 | 中国航空无线电电子研究所 | 基于嵌入式平台的海量地理信息数据的存储与检索方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190471A (zh) * | 2021-06-30 | 2021-07-30 | 飞天诚信科技股份有限公司 | 一种助记词的管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8255398B2 (en) | Compression of sorted value indexes using common prefixes | |
CN110347852B (zh) | 嵌入横向扩展键值存储系统的文件系统及文件管理方法 | |
CN105320775A (zh) | 数据的存取方法和装置 | |
US8099421B2 (en) | File system, and method for storing and searching for file by the same | |
CN106951375B (zh) | 在存储系统中删除快照卷的方法及装置 | |
CN111190904B (zh) | 一种图-关系数据库混合存储的方法和装置 | |
CN111399777A (zh) | 一种基于数据值分类的差异化键值数据存储方法 | |
KR19990070838A (ko) | 데이터 베이스 관리 시스템과 정보 검색의 밀결합을 위하여 서브 인덱스와 대용량 객체를 이용한 역 인덱스 저장 구조 | |
CN105808633A (zh) | 数据归档方法和系统 | |
CN105912687A (zh) | 海量分布式数据库存储单元 | |
CN107463447A (zh) | 一种基于远程直接非易失内存访问的b+树管理方法 | |
CN101263462A (zh) | 具有区块管理的非易失性存储器 | |
CN108491402B (zh) | 一种轻量级文件系统的实现方法 | |
CN103186622A (zh) | 一种全文检索系统中索引信息的更新方法以及装置 | |
CN111459885B (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
CN104156432A (zh) | 一种文件访问方法 | |
CN115935020A (zh) | 一种图数据存储方法和装置 | |
CN105512325A (zh) | 多版本数据索引的更新、删除与建立方法及装置 | |
KR100907477B1 (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
CN110262755A (zh) | 一种嵌入式系统的文件存储方法 | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
CN110413724A (zh) | 一种数据检索方法和装置 | |
CN114281242B (zh) | 存储器负载均衡的方法、装置和设备 | |
KR100878142B1 (ko) | 플래시 메모리 상에서의 효율적인 동작을 위한 수정된b-트리 인덱스 구성 방법 | |
KR101465426B1 (ko) | 익스텐트 매핑 플래시 디바이스 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190920 |