WO2023273858A1 - 表项存储系统、方法、资源管理单元及存储介质 - Google Patents

表项存储系统、方法、资源管理单元及存储介质 Download PDF

Info

Publication number
WO2023273858A1
WO2023273858A1 PCT/CN2022/098422 CN2022098422W WO2023273858A1 WO 2023273858 A1 WO2023273858 A1 WO 2023273858A1 CN 2022098422 W CN2022098422 W CN 2022098422W WO 2023273858 A1 WO2023273858 A1 WO 2023273858A1
Authority
WO
WIPO (PCT)
Prior art keywords
entry
stored
storage
storage unit
keyword
Prior art date
Application number
PCT/CN2022/098422
Other languages
English (en)
French (fr)
Inventor
祖逸钧
徐云川
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2023273858A1 publication Critical patent/WO2023273858A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems

Definitions

  • the embodiments of the present application relate to the storage field, and in particular to an entry storage system, method, resource management unit, and storage medium.
  • the emergence of virtual reality technology (VR, Virtual Reality), telemedicine and other applications has increased the performance requirements for core network equipment such as routers, switches, and network processors.
  • the utilization rate of storage resources have a significant impact on performance.
  • the entry storage format of devices such as network processors is often set to a fixed width. In order to store entries of various widths, the entry storage width setting needs to be consistent with the width of the longest entry.
  • table items are not the same, and table items with smaller widths may occupy a larger storage width, resulting in waste of storage resources.
  • An embodiment of the present application provides an entry storage system, including: a first storage unit, a resource management unit; each of the first storage units includes a plurality of fixed data bits and a plurality of variable data bits; the fixed data Bit correspondence has a first fixed width, the variable data bit has a second fixed width, and the first fixed width is the width of the entry with the smallest width among all entries to be stored; the fixed data bit is used to store width An entry equal to the first fixed width; at least two of the variable data bits are used to store an entry in combination; the fixed data bit is also used to combine with at least one of the variable data bits to store a width greater than the The first fixed-width entry; the resource management unit is connected to the first storage unit, and the resource management unit is configured to receive an operation instruction and allocate storage resources of the first storage unit according to the operation instruction.
  • An embodiment of the present application provides an entry storage method, which is applied to the resource management unit of the above-mentioned entry storage system.
  • the method includes: receiving a storage operation instruction, the storage operation instruction carrying the entry to be stored, the storing the keyword of the table item; looking up the keyword of the table item to be stored in the query table; in the case of not finding the keyword of the table item to be stored in the query table, sending the query to the table to be stored
  • the storage entry allocates storage resources, and stores the entry to be stored in one of the first storage units.
  • An embodiment of the present application provides a method for deleting an entry, which is applied to the resource management unit of the above-mentioned entry storage system.
  • the method includes: receiving a deletion operation instruction, the deletion operation instruction carrying a keyword of the entry to be deleted; Find the storage location of the entry to be deleted in the lookup table according to the keyword of the entry to be deleted; find the entry to be deleted according to the storage location, and delete the entry to be deleted .
  • the embodiment of the present application also provides an electronic device, including: at least one processor; and a memory connected in communication with the at least one processor; wherein, the memory stores information that can be executed by the at least one processor.
  • An instruction the instruction is executed by the at least one processor, so that the at least one processor can execute the above-mentioned method for storing an entry, or execute the above-mentioned method for deleting an entry.
  • the embodiment of the present application also provides a computer-readable storage medium, which stores a computer program, and when the computer program is executed by a processor, implements the above-mentioned entry storage method, or implements the above-mentioned entry deletion method.
  • FIG. 1 is a schematic structural diagram of an entry storage system provided according to an embodiment of the present application.
  • Fig. 2 is a schematic structural diagram of a first storage unit provided according to an embodiment of the present application.
  • FIG. 3 is a schematic structural diagram of a resource management unit provided according to an embodiment of the present application.
  • FIG. 4 is a schematic flowchart of a method for storing entries provided according to an embodiment of the present application
  • FIG. 5 is a schematic flowchart of a method for storing entries according to an embodiment of the present application
  • FIG. 6 is a schematic flowchart of a method for storing entries according to an embodiment of the present application.
  • FIG. 7 is a schematic flowchart of a method for storing entries according to an embodiment of the present application.
  • FIG. 8 is a schematic flowchart of a method for deleting an entry provided according to an embodiment of the present application.
  • FIG. 9 is a schematic flowchart of a method for deleting an entry provided according to an embodiment of the present application.
  • Fig. 10 is a schematic structural diagram of a resource management unit provided according to an embodiment of the present application.
  • the entry storage system proposed in the present application enables the storage unit to store as many entries as possible through different combinations of fixed data bits and variable data bits of the storage unit, thereby improving the utilization rate of the storage unit.
  • FIG. 1 An embodiment of the present application relates to an entry storage system.
  • the structure diagram of the entry storage system in this embodiment is shown in FIG. 1 , which specifically includes: a first storage unit 101, a resource management unit 102; a first storage unit 101 includes a plurality of fixed data bits and a plurality of variable data bits; the fixed data bits have a first fixed width, the variable data bits have a second fixed width, and the first fixed width is the width of the smallest entry among all entries to be stored ; In this way, the table items stored in fixed data bits must fully occupy the position of the entire data bit.
  • the widths of the two table entries that need to be stored are 4 long bytes (lw, long word) and 3 long bytes respectively, and 1lw is equal to 32 bits (bit), then, the width of the fixed data bit can be set as 3lw, the width of the variable data bit is set to 1lw, a 3lw entry can completely occupy a 3lw fixed data bit, and a 4lw entry can occupy a 3lw fixed data bit and a 1lw variable data bit, making full use of storage unit's resources.
  • the fixed data bit is used to store an entry whose width is equal to the first fixed width; at least two variable data bits are used to store an entry in combination; the fixed data bit is also used to combine with at least one variable data bit An entry with a width greater than the first fixed width is stored; the resource management unit 102 is connected to the first storage unit 101, and the resource management unit 102 is configured to receive an operation instruction and allocate storage resources of the first storage unit 101 according to the operation instruction.
  • one fixed data bit when the width of the entry to be stored is the same as the first fixed width, one fixed data bit can separately store one entry to be stored; when the width of the entry to be stored is greater than the same as the first fixed width, the fixed data bit The bit can be combined with at least one variable data bit to store the table item to be stored; of course, the table item to be stored may not be stored in the fixed data bit, and when the fixed data bit is full, at least two variable data bits can be stored. Combined to store the table items to be stored.
  • the table item storage system in this embodiment can store as many table items as possible to improve the utilization rate of the storage unit.
  • first storage units 101 may be one or more, which is not specifically limited in this embodiment, and multiple first storage units 101 may be set according to actual storage requirements.
  • the entry storage system further includes a second storage unit, the second storage unit is used to store a lookup table; the lookup table records the corresponding relationship between the keyword of the entry and the storage location, and the storage location includes the location where the entry is located.
  • the lookup table stored in the second storage unit records the correspondence between the keyword (key) and the handle (handle) of the entry; the handle consists of the index value (index) of the first storage unit 101 and the entry
  • the storage unit is composed of an offset value (offset), wherein the index value represents the address of the first storage unit 101 , and the offset value represents the position of the entry in the first storage unit 101 .
  • the first storage unit 101 includes not only fixed data bits and variable data bits, but also address bits, as shown in FIG. 2 , which is a schematic structural diagram of a first storage unit in this embodiment, and A represents Fixed storage bit, B means variable storage bit, C means address bit.
  • the address bit C is used to store the index value (index) of the second storage unit, that is, the address of the second storage unit, so that the stored table in the first storage unit When the position of the item changes, look up and change the look-up table in the second storage unit according to the address of the second storage unit stored in the address bit C;
  • the address bit C is used to store the address of the linked list node in the resource management unit 102.
  • the address of the linked list node in the resource management unit 102 stored by the address bit C is used to modify the corresponding linked list node of the address bit status.
  • the resource management unit 102 manages three kinds of storage resources
  • the corresponding linked lists are respectively marked as NL, PL, and EL.
  • the linked list of the first storage unit storing N entries is marked as NL
  • only The linked list of the first storage unit storing the P entry is marked as PL
  • the linked list of the empty storage unit is marked as EL;
  • N(n) in NL represents the first storage unit containing N entries
  • n is the first storage unit.
  • the number of entries stored in the unit, P(n) in PL indicates the first storage unit containing P entries
  • n is the number of entries stored in the first storage unit.
  • the resource management unit 102 When storing an entry, apply for a storage resource in the resource management unit 102, if what is to be stored is an N entry, the resource management unit 102 preferentially allocates the first storage unit in the NL linked list, and assigns a first storage unit in the NL To allocate, specifically, to allocate the first first storage unit in the NL linked list, the resource management unit 102 provides the linked list node corresponding to the first storage unit, and according to the linked list node, it can point to the corresponding first storage unit, The entry can be stored in the first storage unit. If the item to be stored is a P entry, the process of PL is similar and will not be repeated here.
  • N entries are to be stored
  • NL can allocate storage resources marked as N(n) first storage units according to actual needs, for example, allocate multiple first storage units N (n) the first storage unit N(n) with the smallest n value, that is, the first storage unit N(n) with the fewest stored entries, or the one with the largest n value among multiple first storage units N(n) allocated
  • the first storage unit N(n), that is, the first storage unit N(n) that stores the most entries is not specifically limited in this embodiment.
  • An embodiment of the present application relates to an entry storage method, which is applied to the resource management unit of the above-mentioned entry storage system.
  • the flowchart of the entry storage method in this embodiment is shown in FIG. 4 , and specifically includes the following steps:
  • Step 201 receiving a storage operation instruction, the storage operation instruction carries an entry to be stored and a keyword of the entry to be stored.
  • the resource management unit is connected to the first storage unit, and the resource management unit needs to receive a storage operation instruction, and allocate storage resources of the first storage unit to entries to be stored according to the storage operation instruction.
  • the resource management unit needs to provide the linked list node of the corresponding first storage unit. According to the linked list The node can point to the corresponding first storage unit, and the entry can be stored in the first storage unit.
  • Step 202 look up keywords of entries to be stored in the lookup table.
  • the keyword of the table item to be stored and the table item to be stored form a key-value.
  • the resource management unit needs to determine whether the keyword key of the table item to be stored is recorded in the lookup table. If the keyword key of the entry to be stored exists, the value of the entry to be stored needs to be updated. If the keyword key of the entry to be stored does not exist, the storage resource is directly applied to the resource manager, and the resource manager allocates the first storage unit, storing the entry value to be stored in the first storage unit.
  • Step 203 if the keyword of the entry to be stored is not found in the lookup table, allocate storage resources to the entry to be stored, and store the entry to be stored in a first storage unit.
  • the keyword key of the table item to be stored does not exist in the lookup table, it means that the first storage unit has not recorded the table item value corresponding to the keyword key, and can directly apply for storage resources to the resource manager.
  • the manager allocates the linked list node of the first storage unit, and according to the linked list node, it can point to the corresponding first storage unit, and store the entry value to be stored in the first storage unit.
  • Step 204 update the resource status of the first storage unit, and record the corresponding relationship between the keyword of the entry to be stored and the storage location of the entry to be stored in the lookup table.
  • the storage resource of the first storage unit changes, that is, the number of storage entries changes. Therefore, it is necessary to update the first entry in the resource management unit.
  • the resource state of the storage unit for example, when the entry to be stored is an N entry, the n value in the corresponding first storage unit N(n) is changed in the NL linked list, and the resource of the first storage unit is updated in the resource management unit Status, which is convenient for the resource management unit to allocate resources.
  • the entry to be stored is stored in the first storage unit of the above-mentioned entry storage system in this manner, thereby improving the utilization rate of the storage unit.
  • this embodiment is a method embodiment corresponding to the secondary entry storage system in the previous embodiment, and the same or similar parts will not be repeated here.
  • the relevant technical details mentioned in this embodiment are also It can be applied to the previous embodiment.
  • the rule for storing entries to be stored in a first storage unit is: the priority of the same kind of storage unit is greater than the priority of the blank storage unit, and the priority of the blank storage unit is greater than the priority of the heterogeneous storage unit ;
  • the same kind of storage unit refers to the first storage unit that only stores the entry with the same width as the entry to be stored, and the blank storage unit refers to the first storage unit that does not store the entry;
  • the heterogeneous storage unit refers to the storage A first storage unit having an entry having a width different from that of the entry to be stored.
  • the resource management unit first judges whether the entry to be stored can be stored in the same type of storage unit; Store in the same type of storage unit; if the entry to be stored cannot be stored in the same type of storage unit, then check whether there is a blank storage unit, if there is a blank storage unit, then store the entry in the blank storage unit, if there is no blank storage unit , then store the entry in the heterogeneous storage unit.
  • the resource management unit divides the entries to be stored into two types according to the width, namely N entries and P entries, and the resource management unit stores the first storage unit with N entries.
  • the linked list is denoted as NL
  • the linked list of the first storage unit that only stores P entries is denoted as PL
  • the linked list of empty storage units is denoted as EL, that is, the resource management unit manages three storage resources.
  • the resource application priority is NL>EL>PL
  • the resource application priority is PL>EL>NL
  • the storage state of the resource management unit corresponding to the first storage unit is updated.
  • This embodiment implements dynamic allocation of storage resources. When storage resources are sufficient, N and P entries are stored separately. When storage resources are insufficient, mixed storage of N entries and P entries is implemented.
  • the state of the storage unit in the resource management unit can be converted. For example, after all N entries in the N(n) storage unit are deleted, if it is blank, it will be converted into a blank storage unit.
  • the EL linked list Management if the N(n) storage unit still stores P entries, it will be converted to P(n) and managed by the PL linked list.
  • the conversion process of the P(n) storage unit is similar and will not be repeated here.
  • the lookup table after searching the keyword of the table item to be stored in the lookup table, it also includes: in the case of finding the keyword of the table item to be stored in the lookup table, finding the original key word in the lookup table according to the keyword
  • the storage location of the entry is to search and delete the original entry according to the storage location of the original entry, and store the entry to be stored in the location where the original entry was originally stored.
  • the flow diagram of the method for storing entries in this embodiment is shown in Figure 5, which specifically includes the following steps:
  • Step 301 receiving a storage operation instruction, the storage operation instruction carries an entry to be stored and a keyword of the entry to be stored.
  • Step 302 look up keywords of entries to be stored in the lookup table. After step 302, go to step 303 and step 305 respectively.
  • Step 303 if the keyword of the entry to be stored is not found in the lookup table, allocate storage resources to the entry to be stored, and store the entry to be stored in a first storage unit.
  • Step 304 update the resource status of the first storage unit, and record the corresponding relationship between the keyword of the entry to be stored and the storage location of the entry to be stored in the lookup table.
  • Steps 301 to 304 in this embodiment are the same as steps 201 to 204 in the previous embodiment, and will not be repeated here to avoid repetition.
  • Step 305 if the keyword of the entry to be stored is found in the lookup table, the storage location of the original entry is found in the lookup table according to the keyword, and the original entry is searched and deleted according to the storage location of the original entry.
  • Step 306 storing the entry to be stored in the location where the original entry was originally stored.
  • the value of the entry to be stored needs to be updated, that is, the original entry corresponding to the keyword is deleted, and the entry to be stored is stored in the original table item position. It should be noted that this situation is only applicable if the width of the entry to be stored is smaller than or equal to the width of the original entry. In this way, the entry to be stored can be directly stored in the location where the original entry was originally stored.
  • storing the entry to be stored before the location where the original entry is stored further includes: judging whether the location where the original entry is originally stored can store the entry to be stored.
  • Step 401 receiving a storage operation instruction, the storage operation instruction carries an entry to be stored and a keyword of the entry to be stored.
  • Step 402 look up keywords of entries to be stored in the lookup table. After step 402, enter step 403 and step 405 respectively.
  • Step 403 if the keyword of the entry to be stored is not found in the lookup table, allocate storage resources to the entry to be stored, and store the entry to be stored in a first storage unit.
  • Step 404 update the resource status of the first storage unit, and record the corresponding relationship between the keyword of the entry to be stored and the storage location of the entry to be stored in the lookup table.
  • Step 405 if the keyword of the entry to be stored is found in the lookup table, the storage location of the original entry is found in the lookup table according to the keyword, and the original entry is searched and deleted according to the storage location of the original entry.
  • Step 406 judging whether the location where the original entry is originally stored can store the entry to be stored. If yes, go to step 407, if not, go to step 408.
  • Step 407 storing the entry to be stored in the location where the original entry was originally stored.
  • Step 401 to step 405 and step 407 of this embodiment are the same as step 301 to step 306 of the previous embodiment, and are not repeated here to avoid repetition.
  • Step 408 Store the entry to be stored in the first storage unit where the original entry is originally stored, and update the corresponding relationship between the keyword of the entry to be stored and the storage location of the entry to be stored in the lookup table.
  • the location of the original entry in the first storage unit cannot store the entry to be stored, and the location that originally stored the original entry can use the first
  • the variable data bits in the storage unit are combined to store the entry to be stored.
  • the entry to be stored is stored in the first storage unit that originally stored the original entry, or the to-be-stored entry can be stored
  • the entries are stored in other locations of the first storage unit. At this time, the storage location of the entry to be stored has changed in the same first storage unit. Therefore, it is necessary to update the corresponding relationship between the keyword of the entry to be stored and the storage location of the entry to be stored in the lookup table, that is, modify
  • the offset value in the handle is convenient for looking up table entries and improving work efficiency.
  • FIG. 7 The flowchart of the method for storing entries in this embodiment is shown in FIG. 7 , which specifically includes the following steps:
  • Step 501 receiving a storage operation instruction, the storage operation instruction carries an entry to be stored and a keyword of the entry to be stored.
  • Step 502 look up keywords of entries to be stored in the lookup table. After step 502, enter step 503 and step 505 respectively.
  • Step 503 if the keyword of the entry to be stored is not found in the lookup table, allocate storage resources to the entry to be stored, and store the entry to be stored in a first storage unit.
  • Step 504 update the resource state of the first storage unit, and record the corresponding relationship between the keyword of the entry to be stored and the storage location of the entry to be stored in the lookup table.
  • Step 505 in the case where the keyword of the entry to be stored is found in the lookup table, the storage location of the original entry is found in the lookup table according to the keyword, and the original entry is searched and deleted according to the storage location of the original entry.
  • Step 506 judging whether the location where the original entry is originally stored can store the entry to be stored. If yes, go to step 507, if not, go to step 508.
  • Step 507 storing the entry to be stored in the location where the original entry was originally stored.
  • Step 508 judging whether the first storage unit that originally stored the original entry can store the entry to be stored. If yes, go to step 509, if not, go to step 510.
  • Step 509 Store the entry to be stored in the first storage unit where the original entry is originally stored, and update the corresponding relationship between the keyword of the entry to be stored and the storage location of the entry to be stored in the lookup table.
  • Step 510 allocate storage resources to the entry to be stored, and store the entry to be stored in other first storage units; update the resource status of the first storage unit that originally stored the original entry, and the resource status of other first storage units , and update the corresponding relationship between the keyword of the entry to be stored and the storage location of the entry to be stored in the query table.
  • the entry to be stored is stored according to a common storage method, namely Applying for storage resources to the resource storage unit, the resource storage unit allocates the storage resources of other first storage units to the entry to be stored, and stores the entry to be stored in the other first storage unit.
  • storing the entries to be stored in other first storage units also needs to follow that the priority of the same type of storage unit is greater than the priority of the blank storage unit, and the priority of the blank storage unit is greater than that of the heterogeneous storage unit. level rules. In this way, storage resources are allocated dynamically. When the storage resources are sufficient, different types of entries are stored separately. When the storage resources are insufficient, mixed storage of different types of entries is realized.
  • the original entry may occupy a fixed data bit of the first storage unit alone, or may occupy a fixed data bit and a variable data bit, or may only occupy a variable data bit. Examples are not specifically limited.
  • An embodiment of the present application relates to a method for deleting an entry, which is applied to the resource management unit of the above-mentioned entry storage system.
  • the flowchart of the method for deleting an entry in this embodiment is shown in FIG. 8 , and specifically includes the following steps:
  • Step 601 receiving a delete operation instruction, the delete operation instruction carries a keyword of the entry to be deleted.
  • the resource management unit is connected to the first storage unit, and the resource management unit may also receive a delete operation instruction, and manage the storage work of the first storage unit according to the delete operation instruction.
  • Step 602 Find the storage location of the entry to be deleted in the lookup table according to the keyword of the entry to be deleted.
  • the query table records the corresponding relationship between the keyword of the entry and the storage location, and the corresponding storage location information can be obtained according to the keyword of the entry to be deleted, and the corresponding storage location is found in the corresponding first storage unit. entry.
  • Step 603 find the entry to be deleted according to the storage location information, and delete the entry to be deleted.
  • the position of the first storage unit is vacant, that is, there is a free position in the first storage unit. At this time, it is necessary to obtain the address bits in the first storage unit and update to the resource
  • the linked list nodes in the management unit are convenient for the resource management unit to allocate storage resources.
  • the searching the storage location information of the entry to be deleted in the query table according to the keyword of the entry to be deleted it further includes: judging whether the entry to be deleted occupies the first location where the entry to be deleted is located. Whether the fixed data bits of the storage unit and at least two variable data bits of the first storage unit storing the entry to be deleted are combined to store an entry; the specific flow diagram of this embodiment is shown in Figure 9, including the following steps:
  • step 701 a delete operation instruction is received, and the delete operation instruction carries a keyword of an entry to be deleted.
  • Step 702 Find the storage location information of the entry to be deleted in the lookup table according to the keyword of the entry to be deleted.
  • the entry to be deleted may or may not exist in the lookup table. Therefore, when the entry to be deleted is not found in the lookup table, it can be determined that there is no entry to be deleted in the first storage entry. entry, stop the step of deleting the entry; when the entry to be deleted can be found in the query table, it can be determined that there is an entry to be deleted in the first storage entry, and after querying the location information of the entry to be deleted, the Delete entry delete.
  • Step 703 find the entry to be deleted according to the storage location information, and delete the entry to be deleted.
  • Step 704 judging whether the entry to be deleted occupies a fixed data bit of the first storage unit where the entry to be deleted is located, and whether at least two variable data bits of the first storage unit storing the entry to be deleted are combined to store a table item. If both are yes, then go to step 705, if not, then end.
  • the item to be deleted occupies a fixed data bit alone, or the combination of fixed data bit and variable data bit stores the item to be deleted, which belongs to whether the item to be deleted occupies the first place where the item to be deleted is located.
  • step 703 can be performed before step 704, after step 704, or at the same time, which is not specifically limited in this embodiment, and FIG. 9 is only for the convenience of description, and does not limit the sequence of steps 703 and 704.
  • Step 705 after deleting the entry to be deleted, transfer the entry stored in the variable data bit to the fixed data bit originally storing the entry to be deleted.
  • Steps 701 to 703 in this embodiment are the same as steps 701 to 703 in the previous embodiment, and will not be repeated here to avoid repetition.
  • the table item stored only in the variable data bit can be transferred to the fixed data bit, thereby vacating the position of the variable data bit , so that the variable data bits can be converted to store other entries, thereby improving the utilization rate of the storage space.
  • step division of the above various methods is only for the sake of clarity of description. During implementation, it can be combined into one step or some steps can be split and decomposed into multiple steps. As long as they include the same logical relationship, they are all within the scope of protection of this patent. ; Adding insignificant modifications or introducing insignificant designs to the algorithm or process, but not changing the core design of the algorithm and process are all within the scope of protection of this patent.
  • An embodiment of the present application relates to a resource management unit, as shown in FIG. 10 , including at least one processor 801; and a memory 802 communicatively connected to at least one processor 801; wherein, the memory 802 stores information that can be processed by at least one
  • the instructions executed by the processor 801 are executed by at least one processor 801, so that the at least one processor 801 can execute the communication control method as described above.
  • the memory 802 and the processor 801 are connected by a bus, and the bus may include any number of interconnected buses and bridges, and the bus connects one or more processors 801 and various circuits of the memory 802 together.
  • the bus may also connect together various other circuits such as peripherals, voltage regulators, and power management circuits, all of which are well known in the art and therefore will not be further described herein.
  • the bus interface provides an interface between the bus and the transceivers.
  • a transceiver may be a single element or multiple elements, such as multiple receivers and transmitters, providing means for communicating with various other devices over a transmission medium.
  • the data processed by the processor 801 is transmitted on the wireless medium through the antenna, and further, the antenna also receives the data and transmits the data to the processor 801 .
  • the processor 801 is responsible for managing the bus and general processing, and may also provide various functions including timing, peripheral interface, voltage regulation, power management and other control functions. And the memory 802 may be used to store data used by the processor 801 when performing operations.
  • An embodiment of the present application relates to a computer-readable storage medium storing a computer program.
  • the above method embodiments are implemented when the computer program is executed by the processor.
  • the program is stored in a storage medium, and includes several instructions to make a device ( It may be a single-chip microcomputer, a chip, etc.) or a processor (processor) to execute all or part of the steps of the methods in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or optical disc, etc., which can store program codes. .

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

表项存储系统、方法、资源管理单元及存储介质
相关申请的交叉引用
本申请基于申请号为“202110736280.2”、申请日为2021年06月30日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此以引入方式并入本申请。
技术领域
本申请实施例涉及存储领域,特别涉及一种表项存储系统、方法、资源管理单元及存储介质。
背景技术
目前,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-Only Memory)、随机存取存储器(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所述的表项删除方法。
PCT/CN2022/098422 2021-06-30 2022-06-13 表项存储系统、方法、资源管理单元及存储介质 WO2023273858A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110736280.2 2021-06-30
CN202110736280.2A CN115543179A (zh) 2021-06-30 2021-06-30 表项存储系统、方法、资源管理单元及存储介质

Publications (1)

Publication Number Publication Date
WO2023273858A1 true WO2023273858A1 (zh) 2023-01-05

Family

ID=84690011

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/098422 WO2023273858A1 (zh) 2021-06-30 2022-06-13 表项存储系统、方法、资源管理单元及存储介质

Country Status (2)

Country Link
CN (1) CN115543179A (zh)
WO (1) WO2023273858A1 (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172243A1 (en) * 2002-03-05 2003-09-11 Ripley Brian N. Variable width memory system and method
CN101478447A (zh) * 2009-01-08 2009-07-08 中国人民解放军信息工程大学 一种深度报文检测方法和装置
CN101840433A (zh) * 2010-05-07 2010-09-22 中兴通讯股份有限公司 无线资源的管理方法和用于无线资源的数据库装置
US20120059999A1 (en) * 2010-09-06 2012-03-08 Avinash Kant Raikwar Methods and systems for storing variable width stack elements in a single memory stack
CN102622434A (zh) * 2011-12-31 2012-08-01 成都市华为赛门铁克科技有限公司 数据存储方法、查找方法及装置
CN102904812A (zh) * 2012-09-29 2013-01-30 华为技术有限公司 路由表项的存储方法、查找方法、装置及系统
CN110134335A (zh) * 2019-05-10 2019-08-16 天津大学深圳研究院 一种基于键值对的rdf数据管理方法、装置及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172243A1 (en) * 2002-03-05 2003-09-11 Ripley Brian N. Variable width memory system and method
CN101478447A (zh) * 2009-01-08 2009-07-08 中国人民解放军信息工程大学 一种深度报文检测方法和装置
CN101840433A (zh) * 2010-05-07 2010-09-22 中兴通讯股份有限公司 无线资源的管理方法和用于无线资源的数据库装置
US20120059999A1 (en) * 2010-09-06 2012-03-08 Avinash Kant Raikwar Methods and systems for storing variable width stack elements in a single memory stack
CN102622434A (zh) * 2011-12-31 2012-08-01 成都市华为赛门铁克科技有限公司 数据存储方法、查找方法及装置
CN102904812A (zh) * 2012-09-29 2013-01-30 华为技术有限公司 路由表项的存储方法、查找方法、装置及系统
CN110134335A (zh) * 2019-05-10 2019-08-16 天津大学深圳研究院 一种基于键值对的rdf数据管理方法、装置及存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
US11467975B2 (en) Data processing method and NVMe storage device
EP3905054B1 (en) File management method, distributed storage system, and management node
US7249152B2 (en) Dynamic disk space management by multiple database server instances in a cluster configuration
CN106294190B (zh) 一种存储空间管理方法及装置
CN109726206B (zh) 区块链节点的数据处理方法、装置、设备和存储介质
US9495398B2 (en) Index for hybrid database
CN109213699B (zh) 一种元数据管理方法、系统、设备及计算机可读存储介质
US11314689B2 (en) Method, apparatus, and computer program product for indexing a file
JP3866466B2 (ja) データ構造管理装置、データ構造管理システム、データ構造管理方法およびデータ構造管理プログラムを格納する記録媒体
US20180276262A1 (en) Data Storage Method and Apparatus
CN114253908A (zh) 键值存储系统的数据管理方法及其装置
US11683316B2 (en) Method and device for communication between microservices
CN113805816B (zh) 一种磁盘空间管理方法、装置、设备及存储介质
CN117271531B (zh) 一种数据存储方法、系统、设备及介质
WO2022057481A1 (zh) 一种存储器资源分配方法和网络设备
WO2023273858A1 (zh) 表项存储系统、方法、资源管理单元及存储介质
CN116192937B (zh) 一种Kubernetes集群系统中Service实现方法、系统、介质及设备
CN112711564B (zh) 合并处理方法以及相关设备
CN113051244B (zh) 数据访问方法和装置、数据获取方法和装置
CN114024844A (zh) 数据调度方法、数据调度装置及电子设备
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.
US11829398B2 (en) Three-dimensional probabilistic data structure
CN101989280A (zh) 配置资源管理的方法及系统
CN117632796A (zh) 内存数据库的访问方法及装置
CN115858551A (zh) 基于ldap的内存管理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22831678

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22831678

Country of ref document: EP

Kind code of ref document: A1