本发明涉及物联网,尤其涉及一种持久化数据管理方法、装置、设备、介质及程序产品。
背景技术:
1、物联网嵌入式设备的数据有两种常用存储方案,一种是存储在非易失性存储设备(例如flash)上,非易失性存储设备具有以下特性:区块擦除特性:允许单一字节的方式读或写入,但是擦除一定是整页擦除;记忆损耗特性:擦写循环次数限制;非易失性存储器的页大小各个芯片之间差异很大等。二是存储在易失性存储设备(例如ram)上,易失性存储设备具有以下特性:数据掉电丢失特性,重新上电后数据丢失,设备复位;可以按照bit修改数据,无需事先对硬件进行擦除操作;容量通常较小,处于kb级别。对于上述第一种存储方案,通常是将存储信息组织打包组织为结构体,然后在flash上分出两页,将该结构体数据依次写入两页中,后一个页起到备份的功能,防止在擦写时因意外掉电造成的信息丢失。在修改信息时,读取flash信息到ram,然后对数据进行修改,修改后擦除主存储页数据,写入原位置,再使用同样的方法修改备份页数据。对于上述第二种存储方案,通常是通过文件系统实现(例如存储结构上采用fat文件系统)。
2、现有物联网嵌入式设备数据存储方案中,针对存储于flash或其他非易失性存储器上的数据,对页内数据进行小部分修改时,存在着单点反复擦写损耗和修改时间长的问题。
技术实现思路
1、针对现有技术存在的问题,本发明实施例提供一种持久化数据管理方法、装置、设备、介质及程序产品,可以解决非易失性存储器中对页内数据进行小部分修改时,存在着单点反复擦写损耗和修改时间长的问题。
2、第一方面,本发明实施例提供了一种持久化数据管理方法,应用于嵌入式场景中的非易失性存储器,包括:
3、对存储分区中头部进行数据读取;其中,所述存储分区存储有至少一条数据链,所述数据链的存储结构包括头部和至少一个存储单元;
4、根据读取到的数据,确定所述存储分区中的有效数据链;
5、根据所述有效数据链,在易失性存储器构建存储单元链表。
6、作为上述方案的改进,所述对存储分区中头部进行数据读取,包括:
7、从所述存储分区的起始位置开始对头部进行数据读取,获得当前头部的头部结构标识信息。
8、作为上述方案的改进,所述根据读取到的数据,确定所述存储分区中的有效数据链,包括:
9、根据所述头部结构标识信息,对当前头部进行合法性校验;
10、当通过合法性校验时,根据当前头部中的后向地址信息,确定所述存储分区中的有效数据链。
11、作为上述方案的改进,所述根据当前头部中的后向地址信息,确定所述存储分区中的有效数据链,包括:
12、读取所述后向地址信息指示的第一数据;
13、判断所述第一数据是否与预设的初始数据值一致;
14、若否,根据所述后向地址信息,对下一个头部进行数据读取;
15、若是,对当前头部所在的数据链进行有效性校验,并在有效性校验通过时,确定当前头部所在的数据链为有效数据链。
16、作为上述方案的改进,所述对当前头部所在的数据链进行有效性校验,包括:
17、读取当前头部中的第一校验信息;
18、读取当前头部所在的数据链中各个所述存储单元中的第二校验信息;
19、对所述第一校验信息和所述第二校验信息进行一致性校验;
20、当任意一个所述存储单元未通过一致性校验时,确定当前头部所在的数据链未通过有效性校验;
21、当所有所述存储单元通过一致性校验时,确定当前头部所在的数据链通过有效性校验。
22、作为上述方案的改进,所述方法还包括:
23、当前头部未通过合法性校验时或者当前头部所在的数据链未通过有效性校验时,判断当前读取位置是否为起始地址;
24、若否,根据当前头部的前向地址信息,对上一个头部进行数据读取;
25、若是,从备份分区中重新读取头部,并根据重新读取的头部中的头部结构标识信息,对重新读取的头部进行合法性校验;
26、当通过合法性校验时,对重新读取的头部所在数据链进行有效性校验,并在有效性校验通过时,确定重新读取的头部所在的数据链为有效数据链。
27、作为上述方案的改进,所述方法还包括:
28、当重新读取的头部未通过合法性校验时,进行分区格式化处理。
29、相对于现有技术,本发明实施例的一种持久化数据管理方法的有益效果在于:
30、通过上述数据管理的初始化过程,找到唯一有效数据链后,在易失性存储器中构建存储单元链表,每个存储单元链表的节点存储一个节点标识entry_tag及其地址;本发明实施例通过构建存储单元链表,建立起了非易失性存储器中有效存储单元entry与易失性存储器中存储单元链表节点的映射关系,当需要对某个存储单元entry进行操作的时候,只需轮询存储单元链表节点中的entry即可,存储单元链表中所有节点均为有效entry,通过比较存储单元链表节点中entry_tag以确定是否是查找的entry,通过节点中的地址,可快速定位到易失性存储器中相应entry的位置,即可进行后续操作,易失性存储器的资源占用较少,有效避免存储空间浪费,提高存储空间的利率效率,同时能够极大地提高整体的检索速度,保持了嵌入式设备的实时性,避免现有非易失性存储器的数据管理方法存在着单点反复擦写损耗和修改时间长的问题。
31、第二方面,本发明实施例提供了一种持久化数据管理方法,应用于嵌入式场景中的非易失性存储器,包括:
32、在接收到数据更新操作时,在存储分区中的有效数据链的尾部新建一个头部,并设置所述有效数据链的头部和新建头部的地址指向关系;其中,所述有效数据链的存储结构包括头部和至少一个存储单元;
33、根据所述数据更新操作指示的存储单元和所述有效数据链中的存储单元,确定待复制的存储单元;
34、将待复制的存储单元写入新建头部的末尾位置,并同步更新所述有效数据链对应的存储单元链表。
35、作为上述方案的改进,当所述数据更新操作为新增节点操作时,待复制的存储单元包括所述新增节点操作指示新增的存储单元和所述有效数据链中的存储单元。
36、作为上述方案的改进,所述将待复制的存储单元写入新建头部的末尾位置,包括:
37、将所述有效数据链中的存储单元复制到新建头部的末尾位置,得到新数据链;
38、将新增的存储单元写入新数据链的末尾位置,并同步更新所述有效数据链对应的存储单元链表。
39、作为上述方案的改进,将新增的存储单元写入新数据链的末尾位置,包括:
40、判断新增的存储单元的数据大小是否超过所述存储分区的单页;
41、如否,将新增的存储单元写入新数据链的末尾位置;
42、若是,将新增的存储单元拆分为至少两个存储单元,并将拆分出的至少两个存储单元按照链式结构写入新数据链的末尾位置。
43、作为上述方案的改进,在存储分区中的有效数据链的尾部新建一个头部之前,还包括:
44、判断所述有效数据链的长度是否超过所述存储分区的单页;
45、当超过所述存储分区的单页,将备份分区扩展为至少两个备份页,并在所述存储分区中写入指示所述备份分区的页数的备份标识信息。
46、作为上述方案的改进,当所述数据更新操作为删除节点操作时,待复制的存储单元包括所述有效数据链中除所述新增节点操作指示删除的存储单元之外的存储单元。
47、作为上述方案的改进,所述将待复制的存储单元写入新建头部的末尾位置,包括:
48、将待复制的存储单元复制新建头部的末尾位置,并同步更新所述有效数据链对应的存储单元链表。
49、作为上述方案的改进,所述设置所述有效数据链的头部和新建头部的地址指向关系,包括:
50、将所述有效数据链的头部的后向地址信息更新为新建头部的地址;
51、将新建头部的前向地址信息更新为所述有效数据链的头部的地址。
52、作为上述方案的改进,所述方法还包括:
53、在接收到修改节点操作,在所述有效数据链的末尾位置新增一个存储单元;其中,新增的存储单元中的节点标识与所述修改节点操作指示修改的存储单元中的节点标识相同;
54、将修改后的数据写入新增的存储单元;其中,修改后的数据为响应于所述修改节点操作对所述有效数据链中相应存储单元进行数据修改后得到。
55、相对于现有技术,本发明实施例的一种持久化数据管理方法的有益效果在于:
56、通过构建存储单元链表,建立起了非易失性存储器中有效存储单元entry与易失性存储器中存储单元链表节点的映射关系,当需要对某个存储单元entry进行操作的时候,只需轮询存储单元链表节点中的entry即可,通过存储单元链表查找对应的节点标识entry_tag,找到其对应的地址,可快速定位到易失性存储器中相应entry的位置,即可读取新增、删除、修改后的数据链,易失性存储器的资源占用较少,有效避免存储空间浪费,提高存储空间的利率效率,同时能够极大地提高整体的检索速度,保持了嵌入式设备的实时性,避免现有非易失性存储器的数据管理方法存在着单点反复擦写损耗和修改时间长的问题。
57、第三方面,本发明实施例提供了一种持久化数据管理方法,应用于嵌入式场景中的非易失性存储器,包括:
58、在接收到数据整理操作时,获取备份分区的备份页数;
59、根据所述备份页数,确定存储分区中的有效数据链的备份策略;其中,所述有效数据链的存储结构包括头部和至少一个存储单元;
60、采用所述备份分区按照所述备份策略对所述有效数据链的头部和存储单元进行数据备份整理,并同步更新所述有效数据链对应的存储单元链表。
61、作为上述方案的改进,所述获取备份分区的备份页数,包括:
62、读取备份标识信息;
63、根据所述备份标识信息,确定所述备份分区的备份页数。
64、作为上述方案的改进,所述根据所述备份页数,确定存储分区中的有效数据链的备份策略,包括:
65、当所述备份页数为一页时,确定所述备份策略为完整数据链备份;
66、当所述备份页数超过一页时,确定所述备份策略为数据链拆分备份。
67、作为上述方案的改进,所述采用所述备份分区按照所述备份策略对所述有效数据链的头部和存储单元进行数据备份整理,包括:
68、当所述备份策略为完整数据链备份时,将所述有效数据链的头部和至少一个存储单元依次复制到所述备份分区进行数据整理,并对所述存储分区进行数据擦除;
69、将整理后的有效数据链复制到擦除数据后的存储分区。
70、作为上述方案的改进,所述采用所述备份分区按照所述备份策略对所述有效数据链的头部和存储单元进行数据备份整理,包括:
71、当所述备份策略为数据链拆分时,根据所述备份分区的单页大小,对所述有效数据链进行拆分,得到至少两个数据段;其中,每个所述数据段的数据大小不大于所述备份分区的单页大小;
72、采用至少两页所述备份页对各个数据段进行数据备份整理,并将整理后的数据段依次复制到擦除数据后的存储分区。
73、作为上述方案的改进,所述采用至少两页所述备份页对各个数据段进行数据备份整理,并将整理后的数据段依次复制到擦除数据后的存储分区,包括:
74、选取与所述备份页数相同数量的所述数据段复制到至少两页所述备份页中依次进行数据整理;其中,每页所述备份页存储一个所述数据段;首个所述数据段包括所述头部和至少一个所述存储单元,非首个所述数据段包括至少一个所述存储单元;
75、当首页所述备份页中的数据段整理完成后,将整理后的数据段复制已擦除数据的所述存储分区的首页数据页,并从未复制到所述备份页中的所述数据段中选取下一个数据段复制到已擦除数据的首页所述备份页中;
76、当下一页所述备份页中的数据段整理完成后,将整理后的数据段写入到首页数据页内数据段的末尾位置,并从未复制到所述备份页中的所述数据段中选取下一个数据段复制到已擦除数据的下一页所述备份页中,直至遍历所述有效数据链的所有数据链。
77、作为上述方案的改进,在获取备份分区的备份页数之前,所述方法还包括:
78、获取所述有效数据链的数据长度;
79、当所述有效数据链的数据长度超过所述备份分区的单页大小,对所述备份分区进行备份页扩展;其中,扩展后的备份分区的备份页数超过一页。
80、相对于现有技术,本发明实施例的一种持久化数据管理方法的有益效果在于:
81、通过构建存储单元链表,建立起了非易失性存储器中有效存储单元entry与易失性存储器中存储单元链表节点的映射关系,当需要进行数据整理的时候,只需轮询存储单元链表节点中的entry即可,存储单元链表中所有节点均为有效entry,通过比较存储单元链表节点中entry_tag以确定是否是查找的entry,通过节点中的地址,可快速定位到易失性存储器中相应entry的位置,实现快速的节点定位和数据检索,后续即可进行后续数据整理操作;同时易失性存储器的资源占用较少,有效避免存储空间浪费,提高存储空间的利率效率,同时能够极大地提高整体的检索速度,保持了嵌入式设备的实时性,避免现有非易失性存储器的数据管理方法存在着单点反复擦写损耗和修改时间长的问题,适用于嵌入式场景的快速响应。
82、第四方面,本发明实施例提供了一种持久化数据管理装置,应用于嵌入式场景中的非易失性存储器,包括:
83、数据读取模块,用于对存储分区中头部进行数据读取;其中,所述存储分区存储有至少一条数据链,所述数据链的存储结构包括头部和至少一个存储单元;
84、有效数据链确定模块,用于根据读取到的数据,确定所述存储分区中的有效数据链;
85、数据链表构建模块,用于根据所述有效数据链,在易失性存储器构建存储单元链表。
86、第五方面,本发明实施例提供了一种持久化数据管理装置,应用于嵌入式场景中的非易失性存储器,包括:
87、头部新建模块,用于在接收到数据更新操作时,在存储分区中的有效数据链的尾部新建一个头部,并设置所述有效数据链的头部和新建头部的地址指向关系;其中,所述有效数据链的存储结构包括头部和至少一个存储单元;
88、存储单元确定模块,用于根据所述数据更新操作指示的存储单元和所述有效数据链中的存储单元,确定待复制的存储单元;
89、存储单元写入模块,用于将待复制的存储单元写入新建头部的末尾位置,并同步更新所述有效数据链对应的存储单元链表。
90、第六方面,本发明实施例提供了一种持久化数据管理装置,应用于嵌入式场景中的非易失性存储器,包括:
91、备份页数确定模块,用于在接收到数据整理操作时,获取备份分区的备份页数;
92、备份策略确定模块,用于根据所述备份页数,确定存储分区中的有效数据链的备份策略;其中,所述有效数据链的存储结构包括头部和至少一个存储单元;
93、数据备份整理模块,用于采用所述备份分区按照所述备份策略对所述有效数据链的头部和存储单元进行数据备份整理,并同步更新所述有效数据链对应的存储单元链表。
94、第七方面,本发明实施例提供了一种持久化数据管理设备,包括:处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面中任意一项所述的持久化数据管理方法、第二方面中任意一项所述的持久化数据管理方法、或者第三方面中任意一项所述的持久化数据管理方法。
95、第八方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如第一方面中任意一项所述的持久化数据管理方法、第二方面中任意一项所述的持久化数据管理方法、或者第三方面中任意一项所述的持久化数据管理方法。
96、第九方面,本发明实施例提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面中任意一项所述的持久化数据管理方法、第二方面中任意一项所述的持久化数据管理方法、或者第三方面中任意一项所述的持久化数据管理方法。
97、其中,本发明实施例的一种持久化数据管理装置、设备、介质及程序产品的有益效果可参见上述第一方面/第二方面/第三方面所述的持久化数据管理方法所达到的有益效果,在此不在赘述。
1.一种持久化数据管理方法,其特征在于,应用于嵌入式场景中的非易失性存储器,包括:
2.如权利要求1所述的持久化数据管理方法,其特征在于,所述对存储分区中头部进行数据读取,包括:
3.如权利要求2所述的持久化数据管理方法,其特征在于,所述根据读取到的数据,确定所述存储分区中的有效数据链,包括:
4.如权利要求3所述的持久化数据管理方法,其特征在于,所述根据当前头部中的后向地址信息,确定所述存储分区中的有效数据链,包括:
5.如权利要求4所述的持久化数据管理方法,其特征在于,所述对当前头部所在的数据链进行有效性校验,包括:
6.如权利要求4所述的持久化数据管理方法,其特征在于,所述方法还包括:
7.如权利要求6所述的持久化数据管理方法,其特征在于,所述方法还包括:
8.一种持久化数据管理方法,其特征在于,应用于嵌入式场景中的非易失性存储器,包括:
9.如权利要求8所述的持久化数据管理方法,其特征在于,当所述数据更新操作为新增节点操作时,待复制的存储单元包括所述新增节点操作指示新增的存储单元和所述有效数据链中的存储单元。
10.如权利要求9所述的持久化数据管理方法,其特征在于,所述将待复制的存储单元写入新建头部的末尾位置,包括:
11.如权利要求9所述的持久化数据管理方法,其特征在于,将新增的存储单元写入新数据链的末尾位置,包括:
12.如权利要求9所述的持久化数据管理方法,其特征在于,在存储分区中的有效数据链的尾部新建一个头部之前,还包括:
13.如权利要求8所述的持久化数据管理方法,其特征在于,当所述数据更新操作为删除节点操作时,待复制的存储单元包括所述有效数据链中除所述新增节点操作指示删除的存储单元之外的存储单元。
14.如权利要求13所述的持久化数据管理方法,其特征在于,所述将待复制的存储单元写入新建头部的末尾位置,包括:
15.如权利要求8所述的持久化数据管理方法,其特征在于,所述设置所述有效数据链的头部和新建头部的地址指向关系,包括:
16.如权利要求8所述的持久化数据管理方法,其特征在于,所述方法还包括:
17.一种持久化数据管理方法,其特征在于,应用于嵌入式场景中的非易失性存储器,包括:
18.如权利要求17所述的持久化数据管理方法,其特征在于,所述获取备份分区的备份页数,包括:
19.如权利要求17所述的持久化数据管理方法,其特征在于,所述根据所述备份页数,确定存储分区中的有效数据链的备份策略,包括:
20.如权利要求19所述的持久化数据管理方法,其特征在于,所述采用所述备份分区按照所述备份策略对所述有效数据链的头部和存储单元进行数据备份整理,包括:
21.如权利要求19所述的持久化数据管理方法,其特征在于,所述采用所述备份分区按照所述备份策略对所述有效数据链的头部和存储单元进行数据备份整理,包括:
22.如权利要求21所述的持久化数据管理方法,其特征在于,所述采用至少两页所述备份页对各个数据段进行数据备份整理,并将整理后的数据段依次复制到擦除数据后的存储分区,包括:
23.如权利要求17所述的持久化数据管理方法,其特征在于,在获取备份分区的备份页数之前,所述方法还包括:
24.一种持久化数据管理装置,其特征在于,应用于嵌入式场景中的非易失性存储器,包括:
25.一种持久化数据管理装置,其特征在于,应用于嵌入式场景中的非易失性存储器,包括:
26.一种持久化数据管理装置,其特征在于,应用于嵌入式场景中的非易失性存储器,包括:
27.一种持久化数据管理设备,其特征在于,包括:处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的持久化数据管理方法、权利要求8至16中任意一项所述的持久化数据管理方法、或者权利要求17至23中任意一项所述的持久化数据管理方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7中任意一项所述的持久化数据管理方法、权利要求8至16中任意一项所述的持久化数据管理方法、或者权利要求17至23中任意一项所述的持久化数据管理方法。
29.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现如权利要求1至7中任意一项所述的持久化数据管理方法、权利要求8至16中任意一项所述的持久化数据管理方法、或者权利要求17至23中任意一项所述的持久化数据管理方法。