CN114706836B - 一种基于机载嵌入式数据库的数据生命周期管理方法 - Google Patents
一种基于机载嵌入式数据库的数据生命周期管理方法 Download PDFInfo
- Publication number
- CN114706836B CN114706836B CN202210322838.7A CN202210322838A CN114706836B CN 114706836 B CN114706836 B CN 114706836B CN 202210322838 A CN202210322838 A CN 202210322838A CN 114706836 B CN114706836 B CN 114706836B
- Authority
- CN
- China
- Prior art keywords
- data
- ttl
- time
- database table
- transaction
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Abstract
本发明公开了一种基于机载嵌入式数据库的数据生命周期管理方法,其步骤包括:1)在事务开启前,在所选数据库表的数据库表结构体中设置数据最长存储时间、数据最大存储条数的属性值,并在数据库表结构体内添加隐藏字段TTL_clock_time@和TTL_count@;TTL_clock_time@用于标识基于时间戳的TTL机制,TTL_count@用于标识基于记录条数的TTL机制;2)在事务开启后,检查事务所操作的数据库表的数据库表结构体信息中是否存在所述隐藏字段,如果存在则对所操作数据添加对应TTL标识;3)在事务提交的第一阶段基于记录条数的TTL机制和基于时间戳的TTL机制对数据进行操作。
Description
技术领域
本发明涉及一种数据管理方法,尤其是涉及一种基于机载嵌入式数据库的数据生命周期管理方法。
背景技术
随着科学技术的进步,嵌入式设备在电子通信、工业控制等领域得到了广泛的应用,嵌入式数据库的出现解决了嵌入式设备中大量数据和复杂数据管理的需求。
新一代航空系统为进一步提升其数据管理能力,机载数据库通常采用嵌入式数据库。与其他数据库相比,嵌入式数据库具备体积小、可移植性好、直接与应用程序集成等特点,在运行时,它们需要较少的内存资源和空间,主要用于对实时性、可靠性以及资源占用方面有较高要求的嵌入式系统。
机载嵌入式数据库当前面临的一个重要问题是如何优化高性能的吞吐量和低内存的使用率的问题,在嵌入式数据库内存模式下,高效利用存储空间,降低存储开销是解决该问题的出发点。低内存的使用率本质原因是在嵌入式数据库的内存模式下,运行时间越久,数据的冗余率越高,但事实上很多历史数据已经是无效数据或无价值数据,极大影响嵌入式数据库的运行效率,因此数据管理方法是一种优化内存性能的重要方法之一。
发明内容
基于上述特点,本发明引入“数据生命周期”机制,拟解决机载嵌入式数据库中内存模式下数据的存储压力,数据生命周期(Time-To-Live,TTL)管理是一种基于策略的方法,用于管理信息系统的数据在整个生命周期内流动:为提高对数据有效性的管理能力,本方法中提供了对表中数据的生命周期管理功能,提供了两种删除优化数据机制,分别是基于记录条数的TTL机制和基于时间戳的TTL机制。用户通过设置表中相关字段的属性值来管理表中记录的生命周期,在事务提交的第一阶段,系统将自动检测当前机载数据库内存中数据记录与用户外部设置的阈值数据的符合性,符合TTL策略要求的数据将被保留,超出阈值的数据将被删除。在机载嵌入式数据库系统中,所有的数据信息都始终存储在内存中,但其中有些数据已经很少被访问到了,甚至有一些是无效、冗余的数据。如果没用一个机制在事务提交时去筛选掉这些数据,由于内存空间资源有限,那么随着数据的增加,将会造成内存中数据的冗余,有效数据的存储将会遇到瓶颈。如果在事务开启前,在结构体中添加数据的生命周期截止时间和数据生命周期截止的记录条数,则可以基于这些阀值进行判断,在事务提交时进行数据的筛选,有效的记录数据将被保留,无效的记录数据将被释放,内存中相应的空间被回收。
本发明提供了一种数据生命周期管理方法,解决机载嵌入式数据库中内存数据过期、无效的数据处理的方法,其技术方案如下所述:
一种基于机载嵌入式数据库的数据生命周期管理方法,其步骤包括:
1)在机载嵌入式数据库的事务开启前,在所选数据库表的数据库表结构体中设置数据最长存储时间T、数据最大存储条数N的属性值,并在数据库表结构体内添加两个隐藏字段TTL_clock_time@和TTL_count@;其中,TTL_clock_time@用于标识基于时间戳的TTL机制,TTL_count@用于标识基于记录条数的TTL机制;
2)在事务开启后,检查该事务所操作的数据库表的数据库表结构体信息中是否存在TTL_clock_time@和或TTL_count@,如果存在,则判定所操作数据库表具备TTL功能并对内存中该事务所操作的数据添加对应功能的TTL标识;
3)如果该事务所操作的数据库表具备的TTL功能为基于时间戳的TTL机制,则在事务提交的第一阶段比较该数据库表中数据本身的已生存时间是否大于该数据对应的数据最长存储时间T,若大于T则释放该数据,然后进行事务操作;如果该事务所操作的数据库表具备的TTL功能为基于记录条数的TTL机制,则在事务提交的第一阶段比较该数据库表中有效记录数是否大于设定的数据最大存储条数N,若大于N则保留最近的N条记录,然后进行事务操作。
进一步的,根据应用环境能够设定数据最长存储时间T和数据最大存储条数N,并将所设置阈值数据传入具备对应TTL功能的数据库表。
进一步的,在所选数据库表的数据库表结构体中添加数据生命周期截止时间戳字段TTL_clock_time、数据生命周期截止计数条数字段TTL_count;其中,字段TTL_clock_time用于存储数据最长存储时间T、字段TTL_count用于存储数据最大存储条数N。
进一步的,在具有基于时间戳的TTL机制的数据库表中每插入一条数据记录时,在隐藏字段TTL_clock_time@中保存该数据记录的已生存时间数值;当查询数据时获取当前所查询到的数据记录的已存储时间,如果该数据记录的已存储时间超过该数据库表中设定的数据生命周期截止时间T,则在读写事务的第一阶段删除该数据记录。
进一步的,在具有基于计数条数的TTL机制的数据库表插入一条数据记录时,在隐藏字段TTL_count@中保存当前记录在数据库表中的数据行数;当查询数据时获取该数据库表当前记录总条数;如果该数据库表当前记录总条数超过数据最大存储条数N,则在读写事务的第一阶段删除该数据库表中多余的记录,保留最近的N条记录。
一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明为提高对机载数据有效的管理能力,机载嵌入式数据库添加了一种TTL数据管理机制,管理时包括以下步骤:
(1)在事务开启前(事务是数据库的一个基本操作,事务操作一般是指开启事务,提交事务,回滚事务,具有ACID的特性,保证了整个操作过程中的数据一致性和独立性),设置TTL字段分别为数据的生命周期截止时间和截止计数条数,用户在数据库表结构体中设置数据库中数据最长存储时间、数据最大存储条数的属性值,则默认添加两个隐藏字段TTL_clock_time@和TTL_count@分别用以标识基于时间戳的TTL机制和基于记录条数的TTL机制。
(2)在事务开启后,系统会检查数据库表结构体信息中隐藏字段标识,确定是否存在TTL_clock_time@和TTL_count@;,若存在则判定该数据库表具备相应TTL功能并对内存中事务所操作数据添加对应功能的TTL标识。两个隐藏字段中实时都在存储着数据的已生存时间和当前记录条数
(3)在具备基于时间戳的TTL机制功能的表中,在事务提交的第一阶段比较该数据库表中数据本身的已生存时间是否大于数据设定的生命周期管理时间,若大于数据生命周期管理时间,数据将被释放,若小于生命周期管理时间,数据将被保留。在具备基于记录条数的TTL机制功能的表中,在事务提交的第一阶段比较该表中数据本身的有效记录数是否大于数据设定的生命周期管理有效记录条数,若大于生命周期管理有效记录条数,则多余数据将被释放,保留最近的N条记录;若小于生命周期管理有效记录条数,数据将被保留。
在步骤(1)中,数据最长存储时间和数据最大存储条数根据应用环境能够由用户自行设定,用户通过设置阈值数据,调整机载嵌入式数据库TTL数据生命周期管理策略。
将阈值数据传入具备TTL功能的表描述符中,有效管理嵌入式数据库的内存使用大小。
在步骤(2)中,检查表信息中是否有对应的隐藏字段标识,若存在,通过所设置阈值数据传入具备TTL功能的表描述符中。
在步骤(3)中,当内存中某表具备TTL功能时,系统会检查该表中数据的生命周期管理时间和生命周期管理有效记录数,判断该记录是否仍在有效期内,若已经超出生命周期管理时间或生命周期管理有效记录数,则释放该数据内存空间。
与现有技术相比,本发明的积极效果为:
本发明通过引入“数据生命周期”机制,包括基于时间戳的TTL管理子功能和基于记录条数的TTL管理子功能两部分。在数据结构中设置时间戳和记录条数阈值,在机载数据库内核中进行判断识别,在内存模式下,对近期数据进行保留,对过期数据进行释放,该功能的实现,有利于缓解数据存储压力,避免随着数据量的增长,存储空间不足的状况。可定期帮助用户清理内存中过期数据,有效保证机载装备资源环境受限下的内存利用率。
附图说明
图1表定义样例图;
图2基于时间戳的TTL原理图;
图3基于记录条数的TTL原理图;
图4是基于时间戳的TTL方法与角色之间的关系;
图5是基于记录条数的TTL方法与角色之间的关系;
图6是数据管理架构图。
具体实施方式
下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明引入“数据生命周期管理”机制,对数据表结构进行了重新设计,增加了数据最长存储时间T、数据最大存储条数N的属性值,对数据库内存中数据进行操作,以用于解决机载嵌入式数据库无盘模式下内存资源紧张的情况,具体数据结构请参照图1。
本发明建立的“数据生命周期管理”机制,包括基于时间戳的生命周期管理和基于计数条数的生命周期管理两部分。
本发明所述的基于时间戳的生命周期管理。用户在所选数据库表的表结构中添加数据生命周期截止时间戳字段,设置该表中数据的生命周期时间,则默认添加隐藏字段TTL_clock_time@;检查检查表描述符字段信息,若存在字段信息名称为对应的隐藏字段TTL_clock_time@,则该表具备数据生命周期管理TTL机制中的基于时间戳的数据管理;在具备TTL策略的表中每插入一条数据会在隐藏字段TTL_clock_time@中保存表中数据本身的已生存时间数值,用户查询数据时获取当前数据的已存储时间;超过表中用户数据生命周期截止时间的记录将会在读写事务的第一阶段被删除。
本发明所述的基于计数条数的生命周期管理,用户在所选数据库表的表结构中添加数据生命周期截止计数条数字段,设置该表中数据的生命周期记录条数,则默认添加隐藏字段TTL_count@;检查表描述符字段信息,若存在字段信息名称为对应的隐藏字段TTL_count@,则该表具备数据生命周期管理TTL机制中的基于截止记录条数的数据管理;在具备TTL策略的表中每插入一条数据会在隐藏字段TTL_count@中保存当前记录的数据行数,用户查询数据时获取当前记录总条数;超过表中数据生命周期记录条数的数据记录将会在读写事务的第一阶段被删除。
本发明所述的一种基于机载嵌入式数据库的生命周期管理方法的实施与角色之间的关系如图4、图5所示。
综上所述,本发明通过设置机制嵌入式数据库的“数据生命周期管理”机制,有效改善了有效数据的访问速度,并节约了存储资源。该机制的实现可定期帮助用户清理内存中过期数据,有效保证机载嵌入式数据库资源环境受限下的内存利用率。
发明实例一:本发明所述数据结构表定义样例如图1所示。本发明在数据结构中添加数据生命周期截止时间戳字段TTL_clock_time、数据生命周期截止计数条数TTL_count,可根据特定机载嵌入式数据库使用环境设置该数据生命周期截止时间和条数,应用到整个机载数据库内存中记录的管理过程。
发明实例二:本发明所述的基于时间戳的生命周期管理方法流程图如图2所示。基于时间戳的TTL管理通过设置时间戳确定要保留的记录,在事务提交时进行过期数据的释放,事务提交后表中只保留设置的时间戳之内的数据。用户在使用该功能时,只需在表的定义中声明TTL关键字、TTL管理的模式以及用户设定数值。用户设置TTL时间戳为T,因此在事务提交时表只保留时间戳T之内的数据记录,其余记录被释放。
发明实例三:本发明所述的基于计数条数的生命周期管理方法流程图如图3所示。基于记录条数的TTL管理通过设置截止记录条数确定要保留的记录条数,在事务提交时进行过期数据的释放,事务提交后表中只保留有效的记录数,用户在使用该功能时,只需在表的定义中声明TTL关键字、TTL管理的模式以及用户设定数值。用户设置TTL记录条数为N,因此在事务提交时表只保留最近的N条记录,其余记录被释放。
尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (7)
1.一种基于机载嵌入式数据库的数据生命周期管理方法,其步骤包括:
1)在机载嵌入式数据库的事务开启前,在所选数据库表的数据库表结构体中设置数据最长存储时间T、数据最大存储条数N的属性值,将阈值数据传入具备TTL功能的表描述符中,并在数据库表结构体内添加两个隐藏字段TTL_clock_time@和TTL_count@;其中,TTL_clock_time@用于标识基于时间戳的TTL机制产生的已生存时间,TTL_count@用于标识基于记录条数的TTL机制产生的当前记录条数;
2)在事务开启后,检查该事务所操作的数据库表的数据库表结构体信息中是否存在TTL_clock_time@和TTL_count@,如果存在,则判定所操作数据库表具备TTL功能并对内存中该事务所操作的数据添加对应功能的TTL隐藏字段标识;两个隐藏字段TTL_clock_time@和TTL_count@中分别实时存储着数据的已生存时间和当前记录条数;
3)如果该事务所操作的数据库表具备的TTL功能为基于时间戳的TTL机制,则在事务提交的第一阶段比较该数据库表中数据本身的已生存时间是否大于该数据对应的数据最长存储时间T,若大于T则释放该数据,然后进行事务操作;
4)如果该事务所操作的数据库表具备的TTL功能为基于记录条数的TTL机制,则在事务提交的第一阶段比较该数据库表中有效记录数是否大于设定的数据最大存储条数N,若大于N则保留最近的N条记录,然后进行事务操作。
2.根据权利要求1所述的方法,其特征在于,根据应用环境能够设定数据最长存储时间T和数据最大存储条数N,并将所设置阈值数据传入具备对应TTL功能的数据库表。
3.根据权利要求1所述的方法,其特征在于,在所选数据库表的数据库表结构体中添加数据生命周期截止时间戳字段TTL_clock_time、数据生命周期截止计数条数字段TTL_count;其中,字段TTL_clock_time用于存储数据最长存储时间T、字段TTL_count用于存储数据最大存储条数N。
4.根据权利要求1或2或3所述的方法,其特征在于,在具有基于时间戳的TTL机制的数据库表中每插入一条数据记录时,在隐藏字段TTL_clock_time@中保存该数据记录的已生存时间数值;当查询数据时获取当前所查询到的数据记录的已存储时间,如果该数据记录的已存储时间超过该数据库表中设定的数据生命周期截止时间T,则在读写事务的第一阶段删除该数据记录。
5.根据权利要求1或2或3所述的方法,其特征在于,在具有基于计数条数的TTL机制的数据库表插入一条数据记录时,在隐藏字段TTL_count@中保存当前记录在数据库表中的数据行数;当查询数据时获取该数据库表当前记录总条数;如果该数据库表当前记录总条数超过数据最大存储条数N,则在读写事务的第一阶段删除该数据库表中多余的记录,保留最近的N条记录。
6.一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1至5任一所述方法中各步骤的指令。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210322838.7A CN114706836B (zh) | 2022-03-29 | 2022-03-29 | 一种基于机载嵌入式数据库的数据生命周期管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210322838.7A CN114706836B (zh) | 2022-03-29 | 2022-03-29 | 一种基于机载嵌入式数据库的数据生命周期管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114706836A CN114706836A (zh) | 2022-07-05 |
CN114706836B true CN114706836B (zh) | 2023-01-10 |
Family
ID=82171282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210322838.7A Active CN114706836B (zh) | 2022-03-29 | 2022-03-29 | 一种基于机载嵌入式数据库的数据生命周期管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706836B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827651B (zh) * | 2022-11-22 | 2023-07-04 | 中国科学院软件研究所 | 一种低能耗的机载嵌入式数据库内存事务管理方法及系统 |
CN116860722B (zh) * | 2023-08-31 | 2023-11-14 | 中国科学院软件研究所 | 一种数据库持久化组织优化方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170116135A1 (en) * | 2015-10-26 | 2017-04-27 | Salesforce.Com, Inc. | In-Memory Cache for Web Application Data |
WO2020073854A1 (zh) * | 2018-10-12 | 2020-04-16 | 第四范式(北京)技术有限公司 | 管理内存数据及在内存中维护数据的方法和系统 |
CN112632068A (zh) * | 2020-12-22 | 2021-04-09 | 银盛支付服务股份有限公司 | 一种快速提供海量数据查询服务的解决方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112487095B (zh) * | 2020-12-09 | 2023-03-28 | 浪潮云信息技术股份公司 | 一种分布式数据库事务数据存储优化的方法 |
-
2022
- 2022-03-29 CN CN202210322838.7A patent/CN114706836B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170116135A1 (en) * | 2015-10-26 | 2017-04-27 | Salesforce.Com, Inc. | In-Memory Cache for Web Application Data |
WO2020073854A1 (zh) * | 2018-10-12 | 2020-04-16 | 第四范式(北京)技术有限公司 | 管理内存数据及在内存中维护数据的方法和系统 |
CN112632068A (zh) * | 2020-12-22 | 2021-04-09 | 银盛支付服务股份有限公司 | 一种快速提供海量数据查询服务的解决方法 |
Non-Patent Citations (2)
Title |
---|
嵌入式实时数据库研究与实现;金芳等;《计算机工程与设计》;20080816(第15期);全文 * |
建立内存机制保证海量数据实时性系统的运行;李恒;《科学技术与工程》;20080415(第08期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114706836A (zh) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10331655B2 (en) | System-wide checkpoint avoidance for distributed database systems | |
US10437721B2 (en) | Efficient garbage collection for a log-structured data store | |
CN114706836B (zh) | 一种基于机载嵌入式数据库的数据生命周期管理方法 | |
US8799213B2 (en) | Combining capture and apply in a distributed information sharing system | |
US9424140B1 (en) | Providing data volume recovery access in a distributed data store to multiple recovery agents | |
US9251003B1 (en) | Database cache survivability across database failures | |
EP2797014B1 (en) | Database update execution according to power management schemes | |
CN103885895A (zh) | 容错集群存储系统中的写入性能 | |
EP2541423B1 (en) | Replacement policy for resource container | |
US20060206538A1 (en) | System for performing log writes in a database management system | |
US10303564B1 (en) | Reduced transaction I/O for log-structured storage systems | |
US20090254594A1 (en) | Techniques to enhance database performance | |
CN110389942B (zh) | 一种无垃圾回收的键值分离存储方法和系统 | |
US9870386B1 (en) | Reducing I/O operations for on-demand demand data page generation | |
US20120290595A1 (en) | Super-records | |
US10885023B1 (en) | Asynchronous processing for synchronous requests in a database | |
CN110019469A (zh) | 分布式数据库数据处理方法、装置、存储介质及电子装置 | |
US7895247B2 (en) | Tracking space usage in a database | |
CN107888687B (zh) | 一种基于分布式存储系统的代理客户端存储加速方法及系统 | |
CN110175206A (zh) | 用于多数据库分离的智能分析业务方法、系统及介质 | |
CN110413689B (zh) | 一种内存数据库的多节点数据同步方法与装置 | |
WO2023159976A1 (zh) | 数据分段写入方法、数据读取方法及装置 | |
CN115469810A (zh) | 一种数据获取方法、装置、设备及存储介质 | |
CN115794819A (zh) | 一种数据写入方法及电子设备 | |
CN114896215A (zh) | 元数据的存储方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |