CN115328922A - 用于单向链表的数据管理方法、装置及系统 - Google Patents

用于单向链表的数据管理方法、装置及系统 Download PDF

Info

Publication number
CN115328922A
CN115328922A CN202211232752.1A CN202211232752A CN115328922A CN 115328922 A CN115328922 A CN 115328922A CN 202211232752 A CN202211232752 A CN 202211232752A CN 115328922 A CN115328922 A CN 115328922A
Authority
CN
China
Prior art keywords
data
area
sector
index table
index
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
Application number
CN202211232752.1A
Other languages
English (en)
Other versions
CN115328922B (zh
Inventor
黄钧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ziguang Tongxin Microelectronics Co Ltd
Original Assignee
Beijing Ziguang Xinneng Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Ziguang Xinneng Technology Co Ltd filed Critical Beijing Ziguang Xinneng Technology Co Ltd
Priority to CN202211232752.1A priority Critical patent/CN115328922B/zh
Publication of CN115328922A publication Critical patent/CN115328922A/zh
Application granted granted Critical
Publication of CN115328922B publication Critical patent/CN115328922B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及数据管理技术领域,公开一种用于单向链表的数据管理方法,包括:将单向链表的存储空间划分为数据D区和索引表T区;在第一数据D1区的剩余存储空间不足的情况下,将第一数据D1区中数据的有效地址索引记录到第二索引表T2区;删除第一索引表T1区的数据;按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区。在Flash空间的单向链表的数据整理过程中,第一索引表T1区或第二索引表T2区指向数据块的有效地址,能够实现数据块的快速定位。本申请还公开一种用于单向链表的数据管理装置及系统。

Description

用于单向链表的数据管理方法、装置及系统
技术领域
本申请涉及数据管理技术领域,例如涉及一种用于单向链表的数据管理方法、装置及系统。
背景技术
FEE(Flash EEPROM Emulation,闪存EEPROM仿真)模块是AUTOSAR(AutomotiveOpen System Architecture,汽车开放系统架构)规范规定的基于Flash介质的存储管理模块。FEE模块用于管理持久性数据,例如记录汽车使用过程中的各种日志信息以及其他模块的关键数据等。FEE模块使用Flash介质。由于Flash的写入/擦除时间长,在进行大量数据搬移的时候,用户需要等待很久才能进行数据的更新,而且Flash的读取速度也比较慢,当Flash数据量较大时,每个数据块的定位时间也比较长。
相关技术中,为了保证用户能最快地更新数据,且充分利用Flash空间,一般采用追加的方式使用Flash介质,即在旧数据后面追加新数据,这样只需要完成数据写操作,避免了擦除操作。当Flash空间写完后,需要进行数据整理。一般的做法是将Flash空间分成两个区域,先写满一个区域,再把最新的数据都拷贝到另一个区域,然后清空之前写满数据的区域。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:在Flash空间的单向链表的数据整理过程中,无法实现数据块的快速定位。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于单向链表的数据管理方法、装置及系统,在Flash空间的单向链表的数据整理过程中,第一索引表T1区或第二索引表T2区指向数据块的有效地址,能够实现数据块的快速定位。
在一些实施例中,用于单向链表的数据管理方法包括:将单向链表的存储空间划分为数据D区和索引表T区;其中,数据D区包括第一数据D1区,索引表T区包括第一索引表T1区和第二索引表T2区;在第一数据D1区的剩余存储空间不足的情况下,将第一数据D1区中数据的有效地址索引记录到第二索引表T2区;删除第一索引表T1区的数据;按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区。
在一些实施例中,用于单向链表的数据管理装置包括处理器和存储有程序指令的存储器,处理器被配置为在执行程序指令时,执行前述用于单向链表的数据管理方法。
在一些实施例中,用于单向链表的数据管理系统包括前述用于单向链表的数据管理装置。
本公开实施例提供的用于单向链表的数据管理方法、装置及系统,可以实现以下技术效果:
本公开技术方案中,将单向链表的存储空间划分为数据D区和索引表T区,在第一数据D1区的剩余存储空间不足的情况下,首先将第一数据D1区中数据的有效地址索引记录到第二索引表T2区,然后删除第一索引表T1区的数据,再按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区。如此,在Flash空间的单向链表的整个数据整理过程中,第一索引表T1区或第二索引表T2区指向数据块的有效地址,或者指向可以索引到有效地址的单向链表表头,能够实现数据块的快速定位,数据查找更加方便、快捷。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于单向链表的数据管理方法的流程示意图;
图2是本公开实施例提供的另一个用于单向链表的数据管理方法的流程示意图;
图3是本公开实施例提供的另一个用于单向链表的数据管理方法的流程示意图;
图4是本公开实施例提供的另一个用于单向链表的数据管理方法的流程示意图;
图5是本公开实施例提供的另一个用于单向链表的数据管理方法的流程示意图;
图6a、图6b、图6c、图6d、图6e、6f、图6g、图6h、图6i、图6j和图6k是根据本公开实施例示出的用于单向链表的数据管理方法的图示;
图7是本公开实施例提供的一个用于单向链表的数据装置的结构示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
由于Flash的擦除最小单位比较大(几K字节),而且擦除的时间比较长(毫秒),而用户的数据一般比较小(一般几十或者几百字节),所以为了保证用户能最快的更新数据,且充分利用Flash空间,一般采用追加的方式使用Flash介质,即在旧数据后面追加新数据,这样就只要完成数据写就行了,避免了擦除操作。但是当Flash空间写完的时候,需要进行一次数据整理,只保留最新的数据,擦除旧数据,从而为后续的数据更新腾出空间。
本公开实施例中,结合图6a所示,将Flash单向链表的存储空间划分为两种功能区,一种是数据(功能)D区,一种是索引表(功能)T区。
数据D区分成第一数据D1区和第二数据D2区,其中,第一数据D1区用于存储用户数据,第二数据D2用于在数据整理的过程中存储用户数据,第一数据D1区的大小大于第二数据D2区的大小。第二数据D2区的大小至少大于最小删除单元Sector的大小,且比所有用户数据块大,用来做数据中转。
索引表T区分成第一索引表T1区和第二索引表T2区,其中,第一索引表T1区用于存储用户数据块的地址索引,第二索引表T2区用于在数据整理的过程中存储用户数据块的地址索引,第一索引表T1区的大小等于第二索引表T2区的大小。第一索引表T1区能放下所有用户数据块的定位信息。
本公开实施例的Flash单向链表,采用追加的方式更新用户数据,即当用户更新已经写入的数据(块)Bn时,不在原数据位置更新,而是采用追加的方式。用户数据块Bn写入第一数据D1区:如果是第一次写入Bn,则在写完Bn后,将Bn的地址记录索引到第一索引表T1中;如果第一数据D1区已经存在Bn,将新数据写入第一数据D1区后,再将本次的新地址索引记录到上一个数据块Bn的末尾,也就是形成一个单向链表。
结合图1所示,本公开实施例提供一种用于单向链表的数据管理方法,包括以下步骤:
S101,将单向链表的存储空间划分为数据D区和索引表T区;其中,数据D区包括第一数据D1区,索引表T区包括第一索引表T1区和第二索引表T2区。
S102,在第一数据D1区的剩余存储空间不足的情况下,将第一数据D1区中数据的有效地址索引记录到第二索引表T2区。
这里的有效地址索引,是指用户多次更新的同一个数据块Bn中,最后一次写入的数据块的地址索引。
S103,删除第一索引表T1区的数据。
结合图6b所示,当第一数据D1区有足够的存储空间时,数据直接写入。如果是第一次写入数据,将地址索引记录在第一索引表T1中。
结合图6c所示,用户数据之间留一段空间,用来记录下一次更新的同一个数据块的地址,即next指针。
结合图6d所示,当第一数据D1区没有足够的存储空间时,无法写入新数据,进入数据整理阶段。先将所有数据块Bn的有效地址索引记录到第二索引表T2区,当所有数据块的地址都记录到第二索引表T2区后,删除第一索引表T1区的数据。此时第二索引表T2区存储的是所有用户数据块的有效地址索引,而第一索引表T1区的数据为空。
S104,按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区。
采用本公开实施例提供的用于单向链表的数据管理方法,将单向链表的存储空间划分为数据D区和索引表T区,在第一数据D1区的剩余存储空间不足的情况下,首先将第一数据D1区中数据的有效地址索引记录到第二索引表T2区,然后删除第一索引表T1区的数据,再按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区。如此,在Flash空间的单向链表的整个数据整理过程中,第一索引表T1区或第二索引表T2区指向数据块的有效地址,或者指向可以索引到有效地址的单向链表表头,能够实现数据块的快速定位,数据查找更加方便、快捷。
结合图2所示,本公开实施例提供一种用于单向链表的数据管理方法,其按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区,包括以下步骤:
S201,在第一数据D1区的第一个Sector中存在有效数据的情况下,将第一个Sector中的有效数据拷贝到第二数据D2区,并将第一个Sector中的有效数据的新地址索引记录到第一索引表T1区。
这里的有效数据,是指用户多次更新的同一个数据块Bn中,最后一次写入的数据块。
S202,删除第一个Sector中的数据。
结合图6e所示,删除第一数据D1区的第一个最小删除单元Sector,如果第一个Sector中存在有效数据,将第一个Sector中的有效数据拷贝到第二数据D2区,并将第一个Sector中的有效数据的新地址索引记录到第一索引表T1区后,删除第一个Sector中的数据。
S203,在第一数据D1区的第二个Sector中存在有效数据的情况下,将第二个Sector中的有效数据拷贝到第一个Sector中,并将第二个Sector中的有效数据的新地址索引记录到第一索引表T1区。
S204,删除第二个Sector中的数据。
结合图6g所示,删除第一个Sector中的数据后,继续删除第二个Sector。由于第一个Sector已经空了,所以第一数据D1的空间基本可以应对第二个Sector中存在有效数据的情况。如果第二个Sector中存在有效数据,将第二个Sector中的有效数据拷贝到第一个Sector中,并将第二个Sector中的有效数据的新地址索引记录到第一索引表T1区,再删除第二个Sector中的数据。
按照最小删除单元Sector整理第一数据D1区的数据,并将第一个Sector和第二个Sector中的有效数据的新地址索引记录到第一索引表T1区,第一索引表T1区指向数据块的有效地址,或者指向可以索引到有效地址的单向链表表头,能够实现数据块的快速定位,数据查找更加方便、快捷。
结合图3所示,本公开实施例提供一种用于单向链表的数据管理方法,其按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区,包括以下步骤:
S301,在第一数据D1区的第一个Sector中存在有效数据的情况下,将第一个Sector中的有效数据拷贝到第二数据D2区,并将第一个Sector中的有效数据的新地址索引记录到第一索引表T1区。
S302,删除第一个Sector中的数据。
S303,在第一数据D1区的第二个Sector中存在有效数据的情况下,将第二个Sector中的有效数据拷贝到第一个Sector中,并将第二个Sector中的有效数据的新地址索引记录到第一索引表T1区。
S304,删除第二个Sector中的数据。
S305,将第一数据D1区的数据整理完后,在第二数据D2区中存在有效数据的情况下,将第二数据D2区中的有效数据拷贝到第一数据D1区,并将第二数据D2区中的有效数据的新地址索引记录到第一索引表T1区。
S306,删除第二数据D2区中的数据。
S307,删除第二索引表T2区的数据。
结合图6i所示,将第一数据D1区的数据整理完后,如果第二数据D2区存在有效数据,将第二数据D2区中的有效数据拷贝到第一数据D1区,并将第二数据D2区中的有效数据的新地址索引记录到第一索引表T1区,然后删除第二数据D2区中的数据以及第二索引表T2区的数据,数据整理完成。
将第一数据D1区的数据整理完后,在第二数据D2区中存在有效数据的情况下,将第二数据D2区中的有效数据拷贝到第一数据D1区,并将第二数据D2区中的有效数据的新地址索引记录到第一索引表T1区。这样,保证Flash单向链表的数据整理过程中的数据准确性和完整性。
结合图4所示,本公开实施例提供一种用于单向链表的数据管理方法,其按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区,包括以下步骤:
S401,在第一数据D1区的第一个Sector中不存在有效数据的情况下,删除第一个Sector中的数据。
结合图6f所示,删除第一数据D1区的第一个最小删除单元Sector,如果第一个Sector中不存在有效数据,直接删除第一个Sector中的数据。
S402,在第一数据D1区的第二个Sector中存在有效数据的情况下,将第二个Sector中的有效数据拷贝到第一个Sector中,并将第二个Sector中的有效数据的新地址索引记录到第一索引表T1区。
S403,删除第二个Sector中的数据。
按照最小删除单元Sector整理第一数据D1区的数据,并将第二个Sector中的有效数据的新地址索引记录到第一索引表T1区,第一索引表T1区指向数据块的有效地址,或者指向可以索引到有效地址的单向链表表头,能够实现数据块的快速定位,数据查找更加方便、快捷。
在一些实施例中,按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区,还包括:在第一数据D1区包括N个Sector,且第一数据D1区的第N个Sector中存在有效数据的情况下,删除第二个Sector中的数据后,将第N个Sector中的有效数据拷贝到位于第N个Sector前的存在剩余存储空间的Sector中,并将第N个Sector中的有效数据的新地址索引记录到第一索引表T1区;其中,N为大于2的整数;删除第N个Sector中的数据。
例如,在第一数据D1区包括三个Sector,且第一数据D1区的第三个Sector中存在有效数据的情况下,删除第二个Sector中的数据后:如果第一个Sector中存在剩余存储空间,将第三个Sector中的有效数据拷贝到第一个Sector中;如果第一个Sector中不存在剩余存储空间,第二个Sector中不存在剩余存储空间,将第三个Sector中的有效数据拷贝到第二个Sector中。接着,删除第三个Sector中的数据。
用户的有效数据块可能存在跨Sector的情况,在此情况下拷贝数据,把跨Sector的数据都拷贝到位于第N个Sector前的存在剩余存储空间的Sector中,才算完整拷贝。在位于第N个Sector前的存在剩余存储空间的Sector的存储空间不足的情况下,将有效数据块拷贝到第二数据D2区。
例如,用户的有效数据块存在跨Sector一部分第二个Sector和一部分第三个Sector的情况,此时拷贝的数据,应该把跨Sector的数据,即一部分第二个Sector和一部分第三个Sector上存储的数据,都拷贝到第一个Sector,才算完整拷贝。结合图6h所示,在第一个Sector存在存储空间不足的情况下,将有效数据块拷贝到第二数据D2区。
删除第二个Sector中的数据后,顺次将第N个Sector中的有效数据拷贝到位于第N个Sector前的存在剩余存储空间的Sector中,并将第N个Sector中的有效数据的新地址索引记录到第一索引表T1区,处理第一数据D1区的所有Sector,第一索引表T1区指向数据块的有效地址,或者指向可以索引到有效地址的单向链表表头,能够实现数据块的快速定位。同时,在用户的有效数据块存在跨Sector的情况下,把跨Sector的数据都拷贝到位于第N个Sector前的存在剩余存储空间的Sector中,实现数据的完整拷贝,保证Flash单向链表的数据整理过程中的数据准确性和完整性。
结合图5所示,本公开实施例提供一种用于单向链表的数据管理方法,包括以下步骤:
S501,将单向链表的存储空间划分为数据D区和索引表T;其中,数据D区包括第一数据D1区,索引表T区包括第一索引表T1区和第二索引表T2区。
S502,在第一数据D1区的剩余存储空间不足的情况下,将第一数据D1区中数据的有效地址索引记录到第二索引表T2区。
S503,删除第一索引表T1区的数据。
S504,按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区。
S505,按照最小删除单元Sector整理第一数据D1区的数据的过程中,判断第一数据D1区的存储空间是否足够。
判断第一数据D1区的存储空间是否足够,包括:判断第一数据D1区的当前存储空间是否足够新数据的写入,以及在第一数据D1区写入这个数据后,下一个Sector的有效数据是否还能搬到空Sector。在第一数据D1区的当前存储空间足够新数据的写入,且在第一数据D1区写入这个数据后,下一个Sector的有效数据还能搬到空Sector的情况下,判定第一数据D1区的存储空间足够;在第一数据D1区的当前存储空间不够新数据的写入,和/或在第一数据D1区写入这个数据后,下一个Sector的有效数据不能搬到空Sector的情况下,判定第一数据D1区的存储空间不够。
S506,在第一数据D1区的存储空间足够的情况下,在第一数据D1区中写入新数据。
为了保证数据不会因断电而丢失,一般的做法是将Flash空间分成2个区域,先写满一个区域,再把最新的数据都拷贝到另一个区域,然后清空之前写满数据的区域。在搬运数据的过程中,用户很难更新数据块,这是因为:(1)旧区没多少空间剩余,也很难预测留多少空间给用户更新数据;(2)若是将用户新数据更新到了新区,那么如果这个过程断电再上电,此时旧区存在有效数据,且已满,新区存在部分有效数据,也不能删,只能继续从旧区往新区搬数据,而且已经搬过的数据不能再搬了(否则可能导致新区空间不足)。这会导致上电期间需要遍历整个Flash,要解析所有数据,处理逻辑复杂,且非常耗时。本公开实施例中,使用单向数据链表来管理数据块,支持数据整理期间的用户数据更新,用户体验更佳。
在一些实施例中,用于单向链表的数据管理方法还包括:在第一数据D1区中写入新数据后:在第一索引表T1区不存在新数据的地址索引的情况下,在第一索引表T1区记录新数据的新地址索引;在第一索引表T1区存在新数据的地址索引的情况下,在新数据后记录新数据的地址索引,形成链表。
结合图6j所示,在空间足够的情况下,如果第一索引表T1区不存在新数据的地址索引,也就是说,这个数据块目前在第一数据D1区上的有效数据还没开始搬,例如用户想要更新用户数据1的第N+1次,那么写入用户新数据,并将新数据的新地址索引记录到第一索引表T1区,此时用户数据1的第N次不再是有效数据,后续无需再搬。
结合图6k所示,在空间足够的情况下,如果第一索引表T1区存在新数据的地址索引,也就是说,这个数据块目前在第一数据D1区上的有效数据已经搬了,那么将新数据的新地址索引记录到上一个数据块的next指针处,形成链表,例如更新用户数据x的第Y+1次。
在Flash空间的单向链表的整个数据整理和更新的过程中,第一索引表T1区或第二索引表T2区指向数据块的有效地址,或者指向可以索引到有效地址的单向链表表头,能够在上电期间实现数据块的快速定位,数据查找更加方便、快捷。
在一些实施例中,用于单向链表的数据管理方法还包括:在第一数据D1区的存储空间不够的情况下,暂缓写入新数据。
在第一数据D1区的存储空间不够的情况下,暂缓写入新数据的请求,直到第一数据D1区的存储空间足够写入时再启动,避免新数据写入而影响单向链表的数据管理工作,有利于单向链表的数据管理工作的顺利进行。
结合图7所示本公开实施例提供一种用于单向链表的数据管理装置,包括处理器(processor)70和存储器(memory)71,还可以包括通信接口(Communication Interface)72和总线73。其中,处理器70、通信接口72、存储器71可以通过总线73完成相互间的通信。通信接口72可以用于信息传输。处理器70可以调用存储器71中的逻辑指令,以执行上述实施例的用于单向链表的数据管理方法。
此外,上述的存储器71中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器70通过运行存储在存储器71中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的用于单向链表的数据管理方法。
存储器71可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器。
采用本公开实施例提供的用于单向链表的数据管理装置,将单向链表的存储空间划分为数据D区和索引表T区,在第一数据D1区的剩余存储空间不足的情况下,首先将第一数据D1区中数据的有效地址索引记录到第二索引表T2区,然后删除第一索引表T1区的数据,再按照最小删除单元Sector整理第一数据D1区的数据,并将第一数据D1区中数据的新地址索引记录到第一索引表T1区。如此,在Flash空间的单向链表的整个数据整理过程中,第一索引表T1区或第二索引表T2区指向数据块的有效地址,或者指向可以索引到有效地址的单向链表表头,能够实现数据块的快速定位,数据查找更加方便、快捷。
本公开实施例提供了一种用于单向链表的数据管理系统,包含上述的用于单向链表的数据管理装置。
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于单向链表的数据管理方法。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于单向链表的数据管理方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。本公开实施例的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。当用于本申请中时,虽然术语“第一”、“第二”等可能会在本申请中使用以描述各元件,但这些元件不应受到这些术语的限制。这些术语仅用于将一个元件与另一个元件区别开。例如,在不改变描述的含义的情况下,第一元件可以叫做第二元件,并且同样第,第二元件可以叫做第一元件,只要所有出现的“第一元件”一致重命名并且所有出现的“第二元件”一致重命名即可。第一元件和第二元件都是元件,但可以不是相同的元件。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (10)

1.一种用于单向链表的数据管理方法,其特征在于,包括:
将单向链表的存储空间划分为数据D区和索引表T区;其中,所述数据D区包括第一数据D1区,所述索引表T区包括第一索引表T1区和第二索引表T2区;
在所述第一数据D1区的剩余存储空间不足的情况下,将所述第一数据D1区中数据的有效地址索引记录到所述第二索引表T2区;
删除所述第一索引表T1区的数据;
按照最小删除单元Sector整理所述第一数据D1区的数据,并将所述第一数据D1区中数据的新地址索引记录到所述第一索引表T1区。
2.根据权利要求1所述的数据管理方法,其特征在于,所述数据D区还包括第二数据D2区;所述按照最小删除单元Sector整理所述第一数据D1区的数据,并将所述第一数据D1区中数据的新地址索引记录到所述第一索引表T1区,包括:
在所述第一数据D1区的第一个Sector中存在有效数据的情况下,将所述第一个Sector中的有效数据拷贝到所述第二数据D2区,并将所述第一个Sector中的有效数据的新地址索引记录到所述第一索引表T1区;
删除所述第一个Sector中的数据;
在所述第一数据D1区的第二个Sector中存在有效数据的情况下,将所述第二个Sector中的有效数据拷贝到所述第一个Sector中,并将所述第二个Sector中的有效数据的新地址索引记录到所述第一索引表T1区;
删除所述第二个Sector中的数据。
3.根据权利要求2所述的数据管理方法,其特征在于,所述按照最小删除单元Sector整理所述第一数据D1区的数据,并将所述第一数据D1区中数据的新地址索引记录到所述第一索引表T1区,还包括:
将所述第一数据D1区的数据整理完后,在所述第二数据D2区中存在有效数据的情况下,将所述第二数据D2区中的有效数据拷贝到所述第一数据D1区,并将所述第二数据D2区中的有效数据的新地址索引记录到所述第一索引表T1区;
删除所述第二数据D2区中的数据;
删除所述第二索引表T2区的数据。
4.根据权利要求1所述的数据管理方法,其特征在于,所述按照最小删除单元Sector整理所述第一数据D1区的数据,并将所述第一数据D1区中数据的新地址索引记录到所述第一索引表T1区,包括:
在所述第一数据D1区的第一个Sector中不存在有效数据的情况下,删除所述第一个Sector中的数据;
在所述第一数据D1区的第二个Sector中存在有效数据的情况下,将所述第二个Sector中的有效数据拷贝到所述第一个Sector中,并将所述第二个Sector中的有效数据的新地址索引记录到所述第一索引表T1区;
删除所述第二个Sector中的数据。
5.根据权利要求2至4任一项所述的数据管理方法,其特征在于,所述按照最小删除单元Sector整理所述第一数据D1区的数据,并将所述第一数据D1区中数据的新地址索引记录到所述第一索引表T1区,还包括:
在所述第一数据D1区包括N个Sector,且所述第一数据D1区的第N个Sector中存在有效数据的情况下,删除所述第二个Sector中的数据后,将所述第N个Sector中的有效数据拷贝到位于所述第N个Sector前的存在剩余存储空间的Sector中,并将所述第N个Sector中的有效数据的新地址索引记录到所述第一索引表T1区;其中,N为大于2的整数;
删除所述第N个Sector中的数据。
6.根据权利要求1至4任一项所述的数据管理方法,其特征在于,还包括:
按照所述最小删除单元Sector整理所述第一数据D1区的数据的过程中,判断所述第一数据D1区的存储空间是否足够;
在所述第一数据D1区的存储空间足够的情况下,在所述第一数据D1区中写入新数据。
7.根据权利要求6所述的数据管理方法,其特征在于,在所述第一数据D1区中写入新数据后,还包括:
在所述第一索引表T1区不存在所述新数据的地址索引的情况下,在所述第一索引表T1区记录所述新数据的新地址索引;
在所述第一索引表T1区存在所述新数据的地址索引的情况下,在所述新数据后记录所述新数据的地址索引,形成链表。
8.根据权利要求6所述的数据管理方法,其特征在于,还包括:
在所述第一数据D1区的存储空间不够的情况下,暂缓写入所述新数据。
9.一种用于单向链表的数据管理装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在执行所述程序指令时,执行如权利要求1至8任一项所述的用于单向链表的数据管理方法。
10.一种用于单向链表的数据管理系统,其特征在于,包括如权利要求9所述的用于单向链表的数据管理装置。
CN202211232752.1A 2022-10-10 2022-10-10 用于单向链表的数据管理方法、装置及系统 Active CN115328922B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211232752.1A CN115328922B (zh) 2022-10-10 2022-10-10 用于单向链表的数据管理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211232752.1A CN115328922B (zh) 2022-10-10 2022-10-10 用于单向链表的数据管理方法、装置及系统

Publications (2)

Publication Number Publication Date
CN115328922A true CN115328922A (zh) 2022-11-11
CN115328922B CN115328922B (zh) 2022-12-30

Family

ID=83914754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211232752.1A Active CN115328922B (zh) 2022-10-10 2022-10-10 用于单向链表的数据管理方法、装置及系统

Country Status (1)

Country Link
CN (1) CN115328922B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517906A (zh) * 2003-01-14 2004-08-04 联想(北京)有限公司 文件系统及文件管理方法
CN1822230A (zh) * 2006-03-02 2006-08-23 浙江大学 基于NAND Flash存储器文件系统的实现方法
US9110785B1 (en) * 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
CN108710578A (zh) * 2018-04-20 2018-10-26 深圳市战音科技有限公司 基于闪存的数据存储方法和装置
CN111177021A (zh) * 2019-12-04 2020-05-19 东信和平科技股份有限公司 Java卡碎片管理方法及其存储装置
CN111259014A (zh) * 2020-02-04 2020-06-09 苏州浪潮智能科技有限公司 一种fpga的单向链表数据存储方法及系统
CN113190182A (zh) * 2021-05-31 2021-07-30 和芯星通科技(北京)有限公司 一种Flash中数据存储的管理方法
CN113886281A (zh) * 2021-09-18 2022-01-04 中大检测(湖南)股份有限公司 一种嵌入式nor flash芯片的数据存储管理方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517906A (zh) * 2003-01-14 2004-08-04 联想(北京)有限公司 文件系统及文件管理方法
CN1822230A (zh) * 2006-03-02 2006-08-23 浙江大学 基于NAND Flash存储器文件系统的实现方法
US9110785B1 (en) * 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
CN108710578A (zh) * 2018-04-20 2018-10-26 深圳市战音科技有限公司 基于闪存的数据存储方法和装置
CN111177021A (zh) * 2019-12-04 2020-05-19 东信和平科技股份有限公司 Java卡碎片管理方法及其存储装置
CN111259014A (zh) * 2020-02-04 2020-06-09 苏州浪潮智能科技有限公司 一种fpga的单向链表数据存储方法及系统
CN113190182A (zh) * 2021-05-31 2021-07-30 和芯星通科技(北京)有限公司 一种Flash中数据存储的管理方法
CN113886281A (zh) * 2021-09-18 2022-01-04 中大检测(湖南)股份有限公司 一种嵌入式nor flash芯片的数据存储管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
廖贵成等: "高性能Flash/FRAM混合结构数据存储系统的设计及应用", 《微电子学与计算机》 *

Also Published As

Publication number Publication date
CN115328922B (zh) 2022-12-30

Similar Documents

Publication Publication Date Title
US8505010B2 (en) Storage of application specific profiles correlating to document versions
EP1769343B1 (en) Method and system for in-place updating content stored in a storage device
CN101743546B (zh) 用于提供快照的文件系统的分层存储管理
CN1517885B (zh) 关于利用原子性更新的中央高速缓冲存储器的方法和系统
CN110018989B (zh) 一种快照比对的方法和装置
CN107729558B (zh) 文件系统碎片整理的方法、系统、装置及计算机存储介质
CN102567136A (zh) 一种计算机系统的备份、还原方法、装置及计算机系统
CN102012852A (zh) 一种增量写快照的实现方法
JP2008243138A (ja) ストレージシステム及びデータ復元方法
CN112000426B (zh) 一种数据处理方法及装置
JP6156517B2 (ja) 書き込み情報記憶装置、方法、及び、プログラム
CN109298873B (zh) 一种系统升级方法及装置
US9009114B1 (en) Version mapped incremental backups
US10423580B2 (en) Storage and compression of an aggregation file
CN111382011B (zh) 一种文件数据存取方法、装置和计算机可读存储介质
CN110780814B (zh) 一种存储数据整理方法与装置
EP2669806B1 (en) Storage system
US10146466B1 (en) Merging mapping metadata to promote reference counting efficiency
EP2996025B1 (en) Data migration tool with intermediate incremental copies
CN115328922B (zh) 用于单向链表的数据管理方法、装置及系统
US9003129B1 (en) Techniques for inter-storage-processor cache communication using tokens
CN106649756A (zh) 日志同步方法及装置
JPH01204163A (ja) ファイル管理装置
CN113127376A (zh) 固态驱动器的控制方法、装置及设备
CN111158858B (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
TR01 Transfer of patent right

Effective date of registration: 20240605

Address after: 100000 106A, Floor 1, B-1, Zhongguancun Dongsheng Science Park, 66 Xixiaokou Road, Haidian District, Northern Territory, Beijing

Patentee after: ZIGUANG TONGXIN MICROELECTRONICS CO.,LTD.

Country or region after: China

Address before: No. 1511-06, 15 / F, block D, Tsinghua Tongfang science and technology building, No. 1 courtyard, Wangzhuang Road, Haidian District, Beijing 100083

Patentee before: Beijing Ziguang Xinneng Technology Co.,Ltd.

Country or region before: China