CN115543179A - 表项存储系统、方法、资源管理单元及存储介质 - Google Patents
表项存储系统、方法、资源管理单元及存储介质 Download PDFInfo
- Publication number
- CN115543179A CN115543179A CN202110736280.2A CN202110736280A CN115543179A CN 115543179 A CN115543179 A CN 115543179A CN 202110736280 A CN202110736280 A CN 202110736280A CN 115543179 A CN115543179 A CN 115543179A
- Authority
- CN
- China
- Prior art keywords
- entry
- stored
- table entry
- storage
- storage unit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012217 deletion Methods 0.000 claims description 14
- 230000037430 deletion Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 6
- 239000000126 substance Substances 0.000 claims 1
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- 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
-
- 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/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及存储领域,特别涉及一种表项存储系统、方法、资源管理单元及存储介质。本申请中的表项存储系统包括:第一存储单元,资源管理单元;每个第一存储单元包括多个固定数据位、多个可变数据位;固定数据位对应具有第一固定宽度,可变数据位具有第二固定宽度,第一固定宽度为所有待存储表项中宽度最小的表项的宽度;固定数据位用于存储宽度等于第一固定宽度的表项;至少两个可变数据位用于组合存储一个表项;固定数据位还用于与至少一个可变数据位组合存储宽度大于第一固定宽度的表项;资源管理单元连接第一存储单元。通过存储单元的固定数据位与可变数据位之间的不同组合,从而使得存储单元可以存储尽可能多的表项,提高存储单元的利用率。
Description
技术领域
本申请实施例涉及存储领域,特别涉及一种表项存储系统、方法、资源管理单元及存储介质。
背景技术
目前,5G时代,虚拟现实技术(VR,Virtual Reality)、远程医疗等等应用的出现,提高了对路由器、交换机、网络处理器等网络核心设备的性能的要求,其中,存储资源利用率的高低对性能有着重要的影响。现有的技术方案中,网络处理器等设备的表项存储格式均设置为固定的宽度,为了能够存储各种宽度的表项,表项存储宽度设置需要与最长表项的宽度保持一致。
然而,在实际上使用过程中,表项存储宽度并不相同,会出现较小宽度的表项占用较大的存储宽度,造成存储资源的浪费。
发明内容
本申请实施例的主要目的在于提出一种表项存储系统、方法、资源管理单元及存储介质,提高存储单元的利用率。
为实现上述目的,本申请实施例提供了一种表项存储系统,包括:第一存储单元,资源管理单元;每个所述第一存储单元包括多个固定数据位、多个可变数据位;所述固定数据位对应具有第一固定宽度,所述可变数据位具有第二固定宽度,所述第一固定宽度为所有待存储表项中宽度最小的表项的宽度;所述固定数据位用于存储宽度等于所述第一固定宽度的表项;至少两个所述可变数据位用于组合存储一个表项;所述固定数据位还用于与至少一个所述可变数据位组合存储宽度大于所述第一固定宽度的表项;所述资源管理单元连接所述第一存储单元,所述资源管理单元用于接收操作指令,并根据所述操作指令分配所述第一存储单元的存储资源。
本申请实施例提供了一种表项存储方法,应用于上述的表项存储系统的资源管理单元,所述方法包括:接收存储操作指令,所述存储操作指令携带有待存储表项、所述待存储表项的关键词;在所述查询表中查找所述待存储表项的关键词;在所述查询表中未查找到所述待存储表项的关键词的情况下,向所述待存储表项分配存储资源,将所述待存储表项存储在一个所述第一存储单元中。
本申请实施例提供了一种表项删除方法,应用于上述的表项存储系统的资源管理单元,所述方法包括:接收删除操作指令,所述删除操作指令携带有待删除表项的关键词;根据所述待删除表项的关键词在所述查询表中查找到所述待删除表项的存储位置;根据所述存储位置查找到所述待删除表项,将所述待删除表项删除。
为实现上述目的,本申请实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述的表项存储方法、或者执行上述的表项删除方法。
为实现上述目的,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的表项存储方法、或者实现上述的表项删除方法。
本申请提出的表项存储系统,通过存储单元的固定数据位与可变数据位之间的不同组合,从而使得存储单元可以存储尽可能多的表项,提高存储单元的利用率。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本申请一实施例的表项存储系统的结构示意图;
图2是根据本申请一实施例的第一存储单元的结构示意图;
图3是根据本申请一实施例的资源管理单元的结构示意图;
图4是根据本申请一实施例的表项存储方法的具体流程示意图;
图5是根据本申请一实施例的表项存储方法的具体流程示意图;
图6是根据本申请一实施例的表项存储方法的具体流程示意图;
图7是根据本申请一实施例的表项存储方法的具体流程示意图;
图8是根据本申请一实施例的表项删除方法的具体流程示意图;
图9是根据本申请一实施例的表项删除方法的具体流程示意图;
图10是根据本申请一实施例的资源管理单元的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本申请的一实施例涉及一种表项存储系统,本实施例中的表项存储系统的结构示意图如图1所示,具体包括:第一存储单元101,资源管理单元102;第一存储单元101包括多个固定数据位、多个可变数据位;固定数据位具有第一固定宽度,可变数据位具有第二固定宽度,第一固定宽度为所有待存储表项中最小表项的宽度;如此,存储在固定数据位的表项一定会充分占用整个数据位的位置。
例如,需要存储的两个表项的宽度分别为4个长字节(lw,long word)和3个长字节,1lw等于32位(bit),那么,可以将固定数据位的宽度设置为3lw,可变数据位的宽度设置为1lw,3lw的表项可以完全占用一个3lw的固定数据位,4lw的表项可以占用一个3lw的固定数据位和一个1lw的可变数据位,充分利用存储单元的资源。
具体地说,固定数据位用于存储宽度等于第一固定宽度的表项;至少两个可变数据位用于组合存储一个表项;固定数据位还用于与至少一个可变数据位组合存储宽度大于第一固定宽度的表项;资源管理单元102连接第一存储单元101,资源管理单元102用于接收操作指令,并根据操作指令分配第一存储单元101的存储资源。
本实施例中,当待存储表项的宽度与第一固定宽度相同时,一个固定数据位可以单独存储一个待存储表项;当待存储表项的宽度大于第一固定宽度相同时,固定数据位可以与至少一个可变数据位组合在一起存储待存储表项;当然,待存储表项可以不存储在固定数据位中,当固定数据位已存满时,至少两个可变数据位可以组合在一起存储待存储表项。
本实施例的表项存储系统可以存储尽可能多的表项,提高存储单元的利用率。
需要说明的是,第一存储单元101的数量可以为一个或者多个,本实施例不作具体限定,可以根据实际存储需求设置多个第一存储单元101。
在一个实施例中,表项存储系统还包括第二存储单元,第二存储单元用于存储一个查询表;查询表记录有表项的关键词与存储位置的对应关系,存储位置包括表项所在的第一存储单元101的地址以及表项在第一存储单元101中的位置;通过设置查询表,便于用户通过查询表查找存储的表项,提高工作的效率。
具体地说,第二存储单元中存储的查询表记录有表项的关键字(key)与句柄(handle)的对应关系;句柄由第一存储单元101的索引值(index)和表项在该存储单元的偏移值(offset)组成,其中,索引值表示第一存储单元101的地址,偏移值表示该表项在该第一存储单元101的位置。
具体的说,第一存储单元101除包括固定数据位、可变数据位之外,还包括地址位,如图2所示,为本实施例的一个第一存储单元的结构示意图,A表示固定存储位,B表示可变存储位,C表示地址位。当该第一存储单元存满了表项时,该地址位C用于存储第二存储单元的索引值(index),即第二存储单元的地址,从而在该第一存储单元的存储的表项的位置出现变换时,根据地址位C存储的第二存储单元的地址,查找并更改第二存储单元中的查询表;当该第一存储单元未存满表项即存在空闲位置时,该地址位C用于存储资源管理单元102中链表节点的地址,当第一存储单元的状态发生变化时,通过地址位C存储的资源管理单元102中链表节点的地址,修改该地址位对应链表节点的状态。
举例而言,如资源管理单元102管理三种存储资源,对应的链表分别记为NL、PL、EL,如图3所示,存储有N表项的第一存储单元的链表记为NL,仅存储P表项的第一存储单元的链表记为PL,空存储单元的链表记为EL;其中,NL中的N(n)表示含有N表项的第一存储单元,n为该第一存储单元存储的表项数量,PL中的P(n)表示含有P表项的第一存储单元,n为该第一存储单元存储的表项数量。当存储一个表项时,向资源管理单元102中申请存储资源,若待存储的是N表项,资源管理单元102优先分配NL链表中的第一存储单元,将NL中的一个第一存储单元分配出去,具体地,是把NL链表中第一个第一存储单元分配出去,资源管理单元102提供该第一存储单元对应的链表节点,根据该链表节点即可指向对应的第一存储单元,该表项即可存储到该第一存储单元中。若待存储的是P表项,PL的过程类似,在此不再赘述。
需要说明的是,若待存储的是N表项,向NL申请资源时,NL可以根据实际需要分配标记为N(n)第一存储单元的存储资源,例如,分配多个第一存储单元N(n)中n值最小的第一存储单元N(n),即存储的表项最少的第一存储单元N(n),或者分配多个第一存储单元N(n)中n值最大的第一存储单元N(n),即存储的表项最多的第一存储单元N(n),本实施例不作具体限定。
本申请的一实施例涉及一种表项存储方法,应用于上述的表项存储系统的资源管理单元,本实施例中的表项存储方法的流程示意图如图4所示,具体包括如下步骤:
步骤201,接收存储操作指令,存储操作指令携带有待存储表项、待存储表项的关键词。
具体地说,资源管理单元连接第一存储单元,资源管理单元需要接收存储操作指令,并根据存储操作指令给待存储表项分配第一存储单元的存储资源。
具体地说,若要存储待存储表项,需要从资源管理单元中申请存储资源,若资源管理单元分配了存储资源,资源管理单元需要提供对应的第一存储单元的链表节点,根据该链表节点即可指向对应的第一存储单元,该表项即可存储到该第一存储单元中。
步骤202,在查询表中查找待存储表项的关键词。
具体地说,待存储表项的关键词、待存储表项组成key-value,资源管理单元在接收到存储操作指令之后,需要判断待存储表项的关键词key是否记录在查询表中,若待存储表项的关键词key存在,则需要将待存储表项value更新,若待存储表项的关键词key不存在,则直接向资源管理器申请存储资源,资源管理器分配第一存储单元,将待存储表项value存入第一存储单元。
步骤203,在查询表中未查找到待存储表项的关键词的情况下,向待存储表项分配存储资源,将待存储表项存储在一个第一存储单元中。
具体地说,若待存储表项的关键词key不存在查询表中,表示第一存储单元未记录过与该关键词key对应的表项value,可以直接向资源管理器申请存储资源,资源管理器分配第一存储单元的链表节点,根据该链表节点即可指向对应的第一存储单元,将待存储表项value存入第一存储单元。
步骤204,更新第一存储单元的资源状态,将待存储表项的关键词与待存储表项的存储位置的对应关系记录在查询表中。
具体地说,在第一存储单元存储了新的表项之后,该第一存储单元的存储资源发生了变换,即存储表项的数量发生变化,因此,需要在资源管理单元中更新第一存储单元的资源状态,例如待存储表项为N表项时,在NL链表中将对应的第一存储单元N(n)中的n值变更,资源管理单元中更新该第一存储单元的资源状态,便于资源管理单元分配资源。同时,在第一存储单元存储了新的表项之后,也需要在查询表中对应记录该表项的关键词与表项存储位置的对应关系,更新查询表的记录,便于查找第一存储单元存储的表项,提高工作的效率。
本实施例通过此种方式将待存储表项存储在上述的表项存储系统的第一存储单元中,提高存储单元的利用率。
不难发现,本实施例是与上一实施例中从表项存储系统相对应的方法实施例,相同或类似的部分在此不再赘述,相应的,本实施例提到的相关技术细节也可应用到上一实施例中。
在一个实施例中,将待存储表项存储在一个第一存储单元中的规则为:同类存储单元的优先级大于空白存储单元的优先级,空白存储单元的优先级大于异类存储单元的优先级;同类存储单元是指,仅存储有与待存储表项的宽度相同的表项的第一存储单元,空白存储单元是指,未存储表项的第一存储单元;异类存储单元是指,存储有与待存储表项的宽度不同的表项的第一存储单元。本实施例通过限定待存储表项存储的优先级,使得存储的过程可以有序地进行,在尽可能满足宽度相同的表项存储在一个存储单元的情况下提高存储单元的利用率。
具体地说,资源管理单元在获取到待存储表项之后,先判断待存储表项是否能够存储在同类存储单元;若待存储表项能够存储在同类存储单元中,则将待存储表项存储在同类存储单元;若待存储表项不能存储在同类存储单元中,则查找是否存在空白存储单元,若存在空白存储单元,则将表项存储在空白存储单元中,若不存在空白存储单元,则将表项存储在异类存储单元。
例如,继续参考图3,资源管理单元将待存储表项按照宽度将表项分为两种类型,即N表项和P表项,资源管理单元将存储有N表项的第一存储单元的链表记为NL,仅存储P表项的第一存储单元的链表记为PL,空存储单元的链表记为EL,也即资源管理单元管理三种存储资源。其中,当一个待存储表项插入时,若表项类型为N,资源申请优先级为NL>EL>PL,若表项类型为P,资源申请优先级为PL>EL>NL,在表项插入、删除的同时,更新资源管理单元对应该第一存储单元的存储状态。本实施例实现动态分配存储资源,当存储资源充足时,N和P表项分别存储,当存储资源不足时,实现N表项和P表项的混存。
需要说明的是,存储单元在资源管理单元的状态是可以转换的,例如,N(n)存储单元中的N表项全部被删除之后,若是空白的,则转换为空白存储单元,由EL链表管理,若N(n)存储单元仍存储有P表项,则转换为P(n),由PL链表管理。相应的,P(n)存储单元的转换过程类似,此处不再赘述。
在一个实施例中,在查询表中查找待存储表项的关键词之后,还包括:在查询表中查找到待存储表项的关键词的情况下,根据关键词在查询表中查找到原表项的存储位置,根据原表项的存储位置查找并删除原表项,将待存储表项存储在原存储有原表项的位置中。本实施例的表项存储方法的流程示意图如图5所示,具体包括如下步骤:
步骤301,接收存储操作指令,存储操作指令携带有待存储表项、待存储表项的关键词。
步骤302,在查询表中查找待存储表项的关键词。步骤302之后分别进入步骤303、步骤305。
步骤303,在查询表中未查找到待存储表项的关键词的情况下,向待存储表项分配存储资源,将待存储表项存储在一个第一存储单元中。
步骤304,更新第一存储单元的资源状态,将待存储表项的关键词与待存储表项的存储位置的对应关系记录在查询表中。
本实施例的步骤301至步骤304与上一实施例的步骤201至步骤204相同,为避免重复,在此不再赘述。
步骤305,在查询表中查找到待存储表项的关键词的情况下,根据关键词在查询表中查找到原表项的存储位置,根据原表项的存储位置查找并删除原表项。
步骤306,将待存储表项存储在原存储有原表项的位置中。
具体地说,若待存储表项的关键词key存在,则需要将待存储表项value更新,即,将关键词对应的原表项删除,并将待存储表项存储在原存储有原表项的位置中。需要说明的是,此种情况仅适合待存储表项的宽度小于或等于原表项的宽度,如此,待存储表项才可以直接存储至原存储有原表项的位置中。
在一个实施例中,将待存储表项存储在原存储有原表项的位置之前,还包括:判断原存储有原表项的位置能否存储待存储表项。
本实施例的表项存储方法的流程示意图如图6所示,具体包括如下步骤:
步骤401,接收存储操作指令,存储操作指令携带有待存储表项、待存储表项的关键词。
步骤402,在查询表中查找待存储表项的关键词。步骤402之后分别进入步骤403、步骤405。
步骤403,在查询表中未查找到待存储表项的关键词的情况下,向待存储表项分配存储资源,将待存储表项存储在一个第一存储单元中。
步骤404,更新第一存储单元的资源状态,将待存储表项的关键词与待存储表项的存储位置的对应关系记录在查询表中。
步骤405,在查询表中查找到待存储表项的关键词的情况下,根据关键词在查询表中查找到原表项的存储位置,根据原表项的存储位置查找并删除原表项。
步骤406,判断原存储有原表项的位置能否存储待存储表项。若能,进入步骤407,若否,进入步骤408。
步骤407,将待存储表项存储在原存储有原表项的位置中。
本实施例的步骤401至步骤405、步骤407与上一实施例的步骤301至步骤306相同,为避免重复,在此不再赘述。
步骤408,将待存储表项存储在原存储有原表项的第一存储单元中,并在查询表中更新待存储表项的关键词与待存储表项的存储位置的对应关系。
具体地说,当待存储表项的宽度大于原表项的宽度时,第一存储单元中原存储原表项的位置无法存储待存储表项,原存储有原表项的位置可以借助第一存储单元中的可变数据位来组合存储待存储表项,在可变数据位足够的情况下,将待存储表项存储在原存储原表项的第一存储单元中,或者,可以将待存储表项存储在第一存储单元的其他位置中。此时,待存储表项的存储位置在同一第一存储单元中发生了变化,因此,需要在查询表中更新待存储表项的关键词与待存储表项的存储位置的对应关系,即修改句柄中的偏移值,便于查找表项,提高工作效率。
在一个实施例中,将待存储表项存储在原存储有原表项的第一存储单元中之前,还包括:判断原存储原表项的第一存储单元是否能够存储待存储表项。
本实施例的表项存储方法的流程示意图如图7所示,具体包括如下步骤:
步骤501,接收存储操作指令,存储操作指令携带有待存储表项、待存储表项的关键词。
步骤502,在查询表中查找待存储表项的关键词。步骤502之后分别进入步骤503、步骤505。
步骤503,在查询表中未查找到待存储表项的关键词的情况下,向待存储表项分配存储资源,将待存储表项存储在一个第一存储单元中。
步骤504,更新第一存储单元的资源状态,将待存储表项的关键词与待存储表项的存储位置的对应关系记录在查询表中。
步骤505,在查询表中查找到待存储表项的关键词的情况下,根据关键词在查询表中查找到原表项的存储位置,根据原表项的存储位置查找并删除原表项。
步骤506,判断原存储有原表项的位置能否存储待存储表项。若能,进入步骤507,若否,进入步骤508。
步骤507,将待存储表项存储在原存储有原表项的位置中。
步骤508,判断原存储原表项的第一存储单元是否能够存储待存储表项。若能,进入步骤509,若否,进入步骤510。
步骤509,将待存储表项存储在原存储有原表项的第一存储单元中,并在查询表中更新待存储表项的关键词与待存储表项的存储位置的对应关系。
步骤510,向待存储表项分配存储资源,将待存储表项存储在其他第一存储单元中;更新原存储有原表项的第一存储单元的资源状态、其他第一存储单元的资源状态,并在查询表中更新待存储表项的关键词与待存储表项的存储位置的对应关系。
具体地说,当待存储表项的宽度大于原表项的宽度时,且原存储原表项的位置无法存储待存储表项时,将待存储表项按照普通的存储方法进行存储,即向资源存储单元申请存储资源,资源存储单元将其他第一存储单元的存储资源分配给待存储表项,将待存储表项存储在其他第一存储单元中。
需要说明的是,将待存储表项存储在其他第一存储单元中,也需要遵循同类存储单元的优先级大于空白存储单元的优先级,所述空白存储单元的优先级大于异类存储单元的优先级的规则。从而实现动态分配存储资源,当存储资源充足时,不同类型的表项分别存储,当存储资源不足时,实现不同类型表项的混存。
需要说明的是,原表项可能是单独占用了第一存储单元的一个固定数据位,也可以是占用了固定数据位与可变数据位,还可以是仅占用了可变数据位,本实施例不作具体限定。
本申请的一实施例涉及一种表项删除方法,应用于上述的表项存储系统的资源管理单元,本实施例中的表项删除方法的流程示意图如图8所示,具体包括如下步骤:
步骤601,接收删除操作指令,删除操作指令携带有待删除表项的关键词。
具体地说,资源管理单元连接第一存储单元,资源管理单元还可以接收删除操作指令,并根据删除操作指令管理第一存储单元的存储工作。
步骤602,根据待删除表项的关键词在查询表中查找到待删除表项的存储位置。
具体地说,查询表记录有表项的关键词与存储位置的对应关系,根据待删除表项的关键词可以获取对应的存储位置信息,并在对应的第一存储单元中查找到待删除表项。
步骤603,根据存储位置信息查找到待删除表项,将待删除表项删除。
需要说明的是,当待删除表项被删除之后,会在查询表中将对应的待删除表项的信息删除。
具体地说,将待删除表项删除之后,该第一存储单元的位置空出,即该第一存储单元存在空闲位置,此时需要获取该第一存储单元中的地址位,更新到资源管理单元中的链表节点,便于资源管理单元分配存储资源。
在一个实施例中,在根据待删除表项的关键词在查询表中查找到待删除表项的存储位置信息之后,还包括:判断待删除表项是否占用了待删除表项所在的第一存储单元的固定数据位,以及存储待删除表项的第一存储单元的至少两个可变数据位是否组合存储一个表项;本实施例的具体流程示意图如图9所示,包括以下步骤:
步骤701,接收删除操作指令,删除操作指令携带有待删除表项的关键词。
步骤702,根据待删除表项的关键词在查询表中查找到待删除表项的存储位置信息。
具体地说,待删除表项可能存在查询表中,也可能不存在查询表中,因此,在查询表中未查找到待删除表项时,可以确定第一存储表项中不存在待删除表项,停止表项删除的步骤;查询表中能够查找到待删除表项时,可以确定第一存储表项中存在待删除表项,在查询到待删除表项的位置信息之后,将待删除表项删除。
步骤703,根据存储位置信息查找到待删除表项,将待删除表项删除。
步骤704,判断待删除表项是否占用了待删除表项所在的第一存储单元的固定数据位,以及存储待删除表项的第一存储单元的至少两个可变数据位是否组合存储一个表项。若均是,则进入步骤705,若否,则结束。
需要说明的是,待删除表项单独占用了一个固定数据位,或者固定数据位与可变数据位组合存储了待删除表项均属于待删除表项是否占用了待删除表项所在的第一存储单元的固定数据位的情况。
上述步骤703可以在步骤704之前,也可以在步骤704之后,也可以同时进行,本实施例不作具体限定,图9也仅是为了描述方便,并不对步骤703、步骤704的先后顺序进行限定。
步骤705,在删除待删除表项之后,将可变数据位存储的表项转移至原存储有待删除表项的固定数据位上。
本实施例的步骤701至步骤703与上一实施例的步骤701至步骤703相同,为避免重复,在此不再赘述。
本实施例通过此种方式,可以在删除了固定数据位存在的表项时,将仅存储在可变数据位的表项转移至该固定数据位中,从而将可变数据位的位置空出来,以便可变数据位可以变换存储其他的表项,从而提高存储空间的利用率。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明一实施例涉及一种资源管理单元,如图10所示,包括至少一个处理器801;以及,与至少一个处理器801通信连接的存储器802;其中,存储器802存储有可被至少一个处理器801执行的指令,指令被至少一个处理器801执行,以使至少一个处理器801能够执行如上述的通讯控制方法。
其中,存储器802和处理器801采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器801和存储器802的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器801处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器801。
处理器801负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器802可以被用于存储处理器801在执行操作时所使用的数据。
本发明一实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (11)
1.一种表项存储系统,其特征在于,包括:第一存储单元,资源管理单元;
所述第一存储单元包括多个固定数据位、多个可变数据位;
所述固定数据位具有第一固定宽度,所述可变数据位具有第二固定宽度,所述第一固定宽度为所有待存储表项中宽度最小的表项的宽度;
所述固定数据位用于存储宽度等于所述第一固定宽度的表项;
至少两个所述可变数据位用于组合存储一个表项;
所述固定数据位还用于与至少一个所述可变数据位组合存储宽度大于所述第一固定宽度的表项;
所述资源管理单元连接所述第一存储单元,所述资源管理单元用于接收操作指令,并根据所述操作指令分配所述第一存储单元的存储资源。
2.根据权利要求1所述的表项存储系统,其特征在于,所述表项存储系统还包括第二存储单元,所述第二存储单元用于存储一个查询表;
所述查询表记录有表项的关键词与存储位置的对应关系,所述存储位置包括所述表项所在的第一存储单元的地址以及所述表项在所述第一存储单元中的位置。
3.一种表项存储方法,其特征在于,应用于权利要求2所述的表项存储系统的资源管理单元,所述方法包括:
接收存储操作指令,所述存储操作指令携带有待存储表项、所述待存储表项的关键词;
在所述查询表中查找所述待存储表项的关键词;
在所述查询表中未查找到所述待存储表项的关键词的情况下,向所述待存储表项分配存储资源,将所述待存储表项存储在一个所述第一存储单元中;
更新所述第一存储单元的资源状态,将所述待存储表项的关键词与所述待存储表项的存储位置的对应关系记录在所述查询表中。
4.根据权利要求3所述的表项存储方法,其特征在于,所述将所述待存储表项存储在一个所述第一存储单元中的规则为:同类存储单元的优先级大于空白存储单元的优先级,所述空白存储单元的优先级大于异类存储单元的优先级;所述同类存储单元是指,仅存储有与所述待存储表项的宽度相同的表项的第一存储单元,所述空白存储单元是指,未存储表项的第一存储单元;所述异类存储单元是指,存储有与所述待存储表项的宽度不同的表项的第一存储单元。
5.根据权利要求3或4所述的表项存储方法,其特征在于,所述在所述查询表中查找所述待存储表项的关键词之后,还包括:
在所述查询表中查找到所述待存储表项的关键词的情况下,根据所述关键词在所述查询表中查找到所述原表项的存储位置,根据所述原表项的存储位置查找并删除所述原表项,将所述待存储表项存储在原存储有所述原表项的位置中。
6.根据权利要求5所述的表项存储方法,其特征在于,所述将所述待存储表项存储在原存储有所述原表项的位置之前,还包括:
判断原存储有所述原表项的位置能否存储所述待存储表项;
若能,则执行所述将所述待存储表项存储在原存储有所述原表项的位置中的步骤;
若否,则将所述待存储表项存储在原存储有所述原表项的第一存储单元中,并在所述查询表中更新所述待存储表项的关键词与所述待存储表项的存储位置的对应关系。
7.根据权利要求6所述的表项存储方法,其特征在于,所述将所述待存储表项存储在原存储有所述原表项的第一存储单元中之前,还包括:
判断原存储所述原表项的第一存储单元是否能够存储所述待存储表项;
若能,则执行所述将所述待存储表项存储在原存储有所述原表项的第一存储单元中的步骤;
若否,则向所述待存储表项分配存储资源,将所述待存储表项存储在其他所述第一存储单元中;更新原存储有所述原表项的第一存储单元的资源状态、其他所述第一存储单元的资源状态,并在所述查询表中更新所述待存储表项的关键词与所述待存储表项的存储位置的对应关系。
8.一种表项删除方法,其特征在于,应用于权利要求2所述的表项存储系统的资源管理单元,所述方法包括:
接收删除操作指令,所述删除操作指令携带有待删除表项的关键词;
根据所述待删除表项的关键词在所述查询表中查找到所述待删除表项的存储位置;
根据所述存储位置查找到所述待删除表项,将所述待删除表项删除;
更新存储所述待删除表项的第一存储资源的资源状态,并在所述记录表中删除所述待删除表项的关键词与所述待删除表项的存储位置的对应关系。
9.根据权利要求8所述的表项删除方法,其特征在于,在所述根据所述待删除表项的关键词在所述查询表中查找到所述待删除表项的存储位置之后,还包括:
判断所述待删除表项是否占用了所述待删除表项所在的第一存储单元的所述固定数据位,以及存储所述待删除表项的第一存储单元的至少两个所述可变数据位是否组合存储一个表项;
若均是,则在删除所述待删除表项之后,将所述可变数据位存储的表项转移至原存储有所述待删除表项的固定数据位上;并在所述查询表中更新所述一个表项的关键词与所述一个表项的存储位置的对应关系。
10.一种资源管理单元,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求3至7中任一所述的表项存储方法,或者执行如权利要求8或9所述的表项删除方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求3至7中任一所述的表项存储方法,或者实现权利要求8或9所述的表项删除方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110736280.2A CN115543179A (zh) | 2021-06-30 | 2021-06-30 | 表项存储系统、方法、资源管理单元及存储介质 |
PCT/CN2022/098422 WO2023273858A1 (zh) | 2021-06-30 | 2022-06-13 | 表项存储系统、方法、资源管理单元及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110736280.2A CN115543179A (zh) | 2021-06-30 | 2021-06-30 | 表项存储系统、方法、资源管理单元及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543179A true CN115543179A (zh) | 2022-12-30 |
Family
ID=84690011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110736280.2A Pending CN115543179A (zh) | 2021-06-30 | 2021-06-30 | 表项存储系统、方法、资源管理单元及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115543179A (zh) |
WO (1) | WO2023273858A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7761683B2 (en) * | 2002-03-05 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Variable width memory system and method |
CN101478447B (zh) * | 2009-01-08 | 2011-01-05 | 中国人民解放军信息工程大学 | 一种深度报文检测方法和装置 |
CN101840433B (zh) * | 2010-05-07 | 2014-02-05 | 中兴通讯股份有限公司 | 无线资源的管理方法和用于无线资源的数据库装置 |
US8555026B2 (en) * | 2010-09-06 | 2013-10-08 | Lsi Corporation | Methods and systems for storing variable width stack elements in a single memory stack |
CN102622434B (zh) * | 2011-12-31 | 2014-06-25 | 华为数字技术(成都)有限公司 | 数据存储方法、查找方法及装置 |
CN102904812B (zh) * | 2012-09-29 | 2015-07-29 | 华为技术有限公司 | 路由表项的存储方法、查找方法、装置及系统 |
CN110134335B (zh) * | 2019-05-10 | 2022-08-12 | 天津大学深圳研究院 | 一种基于键值对的rdf数据管理方法、装置及存储介质 |
-
2021
- 2021-06-30 CN CN202110736280.2A patent/CN115543179A/zh active Pending
-
2022
- 2022-06-13 WO PCT/CN2022/098422 patent/WO2023273858A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023273858A1 (zh) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3905054B1 (en) | File management method, distributed storage system, and management node | |
US11003625B2 (en) | Method and apparatus for operating on file | |
US9576012B2 (en) | Hierarchical tablespace space management | |
EP3637280B1 (en) | Data storage method and device, and storage medium | |
CN106294190B (zh) | 一种存储空间管理方法及装置 | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
CN112765262B (zh) | 一种数据重分布方法、电子设备及存储介质 | |
CN105637491A (zh) | 一种文件迁移方法、装置和存储设备 | |
CN112632069B (zh) | 哈希表数据存储管理方法、装置、介质和电子设备 | |
CN103942205A (zh) | 存储、读取目录索引的方法、装置及系统 | |
CN110795029A (zh) | 一种云硬盘管理方法、装置、服务器及介质 | |
CN110618883B (zh) | 一种用于共享内存链表的方法、装置、设备及存储介质 | |
CN113805816B (zh) | 一种磁盘空间管理方法、装置、设备及存储介质 | |
CN117271531B (zh) | 一种数据存储方法、系统、设备及介质 | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN116155828B (zh) | 一种多个虚拟队列的报文保序方法及其装置、存储介质、电子设备 | |
CN112711564B (zh) | 合并处理方法以及相关设备 | |
CN108804571B (zh) | 一种数据存储方法、装置以及设备 | |
CN115543179A (zh) | 表项存储系统、方法、资源管理单元及存储介质 | |
CN113778688A (zh) | 内存管理系统、内存管理方法、内存管理装置 | |
CN114443598A (zh) | 写数据方法、装置、计算机设备及存储介质 | |
JPH06348666A (ja) | 計算機システムにおけるプログラム実行負荷分散方法 | |
NL2026408B1 (en) | A method of operating a storage device of an access point, a method of locating a device context of an end node device stored in a storage device of an access point, and an access point. | |
CN102339317A (zh) | 大容量数据库卡及其数据通信方法 | |
CN112667637A (zh) | 数据管理方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |