Tree indexing method for partition namespace solid state disk
By adopting a tree indexing method on the partition namespace solid-state drive, supernodes and partition management are used to optimize garbage collection, the write amplification problem is solved, and the performance and service life of the hard disk is improved.
Patent Information
- Application Number
- CN202510458872.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-11
- Publication Date
- 2025-08-08
AI Technical Summary
The prior art is difficult to reduce write amplification while maintaining sequential writes on partitioned namespace solid-state drives, resulting in shortening of hard disk service life and degradation of search performance.
The tree indexing method is adopted, including node structure design, insertion, deletion, search operations and partition management. Cascade updates are realized through super leaf nodes, super internal nodes and path nodes, and the partition namespace solid-state drive is divided into internal node areas, hot leaf node areas and cold leaf node areas to optimize garbage collection.
It significantly reduces the number of rewrite pages during the garbage collection process, improves the run time and reduces the number of reads and writes, and improves overall performance.
Smart Images

Figure CN120448592A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of database technology, and in particular to a tree indexing method for a partitioned namespace solid-state hard disk. Background Art
[0002] In recent years, many researchers have proposed various tree-based index designs optimized for flash memory. These works can be roughly divided into three categories: indexes based on buffer updates, indexes based on sequential writes, and indexes based on overflow pages.
[0003] (1) Index based on buffer updates
[0004] This method uses a buffer to cache index updates, and its main representatives include log-based tree indexes and dynamic adaptive tree indexes. Log-based tree indexes contain a reserved buffer and a node mapping table. When the upper-layer application inserts, deletes, or modifies a node, the newly generated operation record is saved in the reserved buffer. When the reserved buffer is full, it is merged with the old index on the solid-state drive, and the new index page generated after the merge is flushed to the solid-state drive through the flash translation layer. Because page writes can be amortized over multiple updates, the update cost of log-based tree indexes becomes smaller. However, since many pages need to be read to rebuild a node, reading a node is very time-consuming. At the same time, in order to maintain the reserved buffer and node mapping table, it also increases the memory space overhead.
[0005] (2) Sequential write-based index
[0006] This approach converts random index writes into sequential writes. Representative examples include sequential-write-based tree indexes and cache node tree indexes. A sequential-write-based tree index is a multi-layered tree index, with a two-layer tree index at the top, called the upper tree. Each subsequent layer consists of a sorted sequence. Updates to a sequential-write-based tree index are initially performed on the upper tree and then gradually migrated to the sorted sequences at lower levels. The key to a sequential-write-based tree index is that each sorted sequence is organized into consecutive pages and stored contiguously on the SSD. Therefore, when index updates are flushed to the SSD, a sequential-write-based tree index only generates sequential writes. Because sequential writes on SSDs are more efficient than random writes, a sequential-write-based tree index can improve overall performance. However, because the merge of two sequences in a sequential-write-based tree index triggers the reconstruction of all layers above, this generates numerous write operations to the flash memory. Although these write operations are continuous, excessive writes to the SSD can reduce its lifespan. Furthermore, compared to traditional tree indexes, sequential write-based tree indexes increase the tree height, resulting in poorer search performance. Since each partition in a partitioned namespace SSD only supports sequential writes, this index design approach offers some insights for adapting to partitioned namespace SSDs. However, maintaining sequential write performance while minimizing write amplification is a key consideration in this project.
[0007] (3) Index based on overflow nodes
[0008] This method uses overflow nodes to store updates to leaf nodes in the index. The main representatives are overflow node tree index and head node tree index.
[0009] Overflow node tree indexes allow leaf nodes to have up to two overflow nodes. After an overflow node has been read k times (ratio of read overhead to write overhead), it becomes a normal node. Assuming writes are five times slower than reads, simulations show that overflow node tree indexes outperform traditional tree indexes, with various versions of overflow node tree indexes performing roughly equivalently. Overflow node tree indexes reduce write overhead compared to traditional tree indexes; however, read and write costs vary across devices, and they do not exploit the parallelism within modern solid-state drives (SSDs). Head node tree indexes allow each leaf node to have more than two overflow nodes. Head node tree indexes introduce an index page for each leaf node to maintain the order of key values within the leaf node. When a leaf node has many overflow pages, index pages can significantly reduce read overhead. However, they also introduce additional read and write overhead. For example, if a leaf node does not contain an overflow page, at least two page reads are required (one for the index page and another for the leaf node), resulting in lower performance than traditional tree indexes. Furthermore, each update to a leaf node requires an update to the index page, requiring at least two SSD writes to update the leaf node. Therefore, a head-node tree index is efficient when there are many overflow pages per leaf node. However, this is not often the case in real applications. In addition, allocating an index page for each leaf node incurs additional storage cost for the index. Summary of the Invention
[0010] The present invention provides a tree indexing method for a partitioned namespace solid-state hard disk, in order to solve the above-mentioned problems in the prior art.
[0011] In order to solve the above technical problems, the present invention adopts the following technical solutions:
[0012] The present invention provides a tree indexing method for a partitioned namespace solid-state hard disk, comprising:
[0013] Step 1: Node structure design;
[0014] Step 2: Node insertion, deletion, and search operations;
[0015] Step 3: Partition namespace SSD partition management;
[0016] Step 4: Garbage collection implementation.
[0017] On this basis, the present invention can also be improved as follows: Step 1 specifically includes:
[0018] The node structure design of the index includes leaf nodes, internal nodes and path nodes. The ordinary leaf nodes of the index are set to k keys and k values, and the ordinary internal nodes contain k keys and the addresses of k+1 leaf nodes.
[0019] The nodes also include super leaf nodes and super internal nodes. The super leaf nodes contain k+1 keys and k+1 values, and the super internal nodes contain k+1 keys and k+2 addresses.
[0020] The node also includes a path node, which records the position of the nodes in this layer and the next layer in this layer. When the leaf node of the index is updated, the parent node of the leaf node can be obtained through the path node, thereby updating the value and address of the parent node to achieve cascading update of the index.
[0021] On this basis, the present invention can also be improved as follows: the node insertion operation specifically includes:
[0022] First, search from the internal nodes all the way to the leaf node to be inserted, and then insert the corresponding key value into the leaf node. Next, the cascade update operation of the index will be triggered, and the values and addresses of the nodes on the search path will be updated in sequence until the root node is updated.
[0023] Specifically, it will first determine whether the index is empty. If the index is empty, a new leaf node will be created and inserted. If the index is not empty, it will determine how many layers the index has. If the index has only one layer, it will determine whether the internal node is full. If the internal node is full, it will be split into two nodes and the corresponding node will be inserted according to the key value. If it is not full, it will be directly inserted into the internal node. If the index has multiple layers, the corresponding leaf node will be searched from the internal node, and then it will be determined whether the leaf node is full. If the leaf node is full, it will be split into two nodes and the corresponding node will be inserted. If the leaf node is not full, it will be directly inserted into the leaf node.
[0024] On this basis, the present invention can also be improved as follows: the node deletion operation specifically includes:
[0025] First, search from the internal nodes all the way to the leaf node to be deleted, and then find the corresponding key value in the leaf node for deletion. If the corresponding key value is not found in the leaf node, the deletion fails.
[0026] Specifically, first determine whether the index is empty. If the index is empty, the deletion fails. If the index is not empty, determine how many layers the tree has. If the index has only one layer, search the corresponding key value directly from the internal node. If the corresponding key value is found, delete it from the internal node. If there is no corresponding key value, the deletion fails. If the index has multiple layers, search the corresponding leaf node from the internal node. If the leaf node has the corresponding key value, delete it from the leaf node, otherwise return deletion failure. After deleting the corresponding key value in the leaf node, if the number of key values of the leaf node is zero, continue to delete the corresponding key value of the node on the search path. If the number of key values of the leaf node is less than half of the node capacity after deleting the corresponding key value in the leaf node, borrow a key value from the adjacent node. If the number of key values of the adjacent node is also less than half of the node capacity, the merge operation of the adjacent nodes is triggered.
[0027] On this basis, the present invention can also be improved as follows: the node insertion search specifically includes:
[0028] Start from the internal node, search all the way to the corresponding leaf node, and find the corresponding key value in the leaf node;
[0029] Specifically, first determine whether the index is empty. If the index is empty, return a search failure. If the index is not empty, determine how many layers the index has. If the index has only one layer, search for the corresponding key value in the internal node. If the index has multiple layers, start from the internal node and search all the way to the corresponding leaf node and search for the corresponding key value in the leaf node.
[0030] On this basis, the present invention can also be improved as follows: Step 3 specifically includes:
[0031] During the index insertion and deletion process, partition management is performed on the partition namespace SSD to reduce write amplification during garbage collection of the partition namespace SSD;
[0032] The partitioned namespace solid-state drive is divided into an internal node area, a hot leaf node area, and a cold leaf node area. The internal node area stores the internal nodes of the index, the hot leaf node area stores the leaf nodes with a high number of updates in the index, and the cold leaf node area stores the leaf nodes with a low number of updates in the index. When the number of updates to a leaf node is higher than half of the number of key values that the node can accommodate, the node will be stored in the hot leaf node partition, and when the number of updates to a leaf node is lower than half of the number of key values that the node can accommodate, the node will be stored in the cold leaf node partition. The addresses of the corresponding partitions of the solid-state drive are recorded in sequence. When the index needs to be written to the solid-state drive, the address of the corresponding partition will be taken out of the queue and the node will be stored in the corresponding partition.
[0033] On this basis, the present invention can also be improved as follows: Step 4 specifically includes:
[0034] When the partition namespace SSD capacity is insufficient, garbage collection will be performed on the partition namespace SSD. This means resetting the partition with the highest garbage rate, writing the valid data in the partition to another partition, and then resetting the partition.
[0035] A garbage collection queue is designed to store full partitions. When the number of partitions in the garbage collection queue exceeds a certain level, the partition with the highest garbage rate will be selected for garbage disposal. During the garbage disposal process, the valid data in the partition will be rewritten to other partitions and then the partition will be reset. For the case where the valid data is a leaf node, after the leaf node is rewritten to other partitions, the internal node will be updated in cascade until the root node. Because the address of the leaf node will change after it is written to other partitions, the address in the internal node needs to be updated, which will trigger a cascade update until the root node; for the case where the valid data is an internal node, the upper internal node will be updated in cascade until the root node; in the process of cascading updates, a value in the node to be updated is first read, and then the value is searched from the internal node. During the search process, the path node will be used to record the search path, including the position of the current layer node and the next layer node in the current layer during the search process; during the garbage collection process, the number of recovered pages will be recorded to facilitate future experimental comparisons.
[0036] The beneficial effects provided by the present invention are:
[0037] This index achieves significant performance improvements over traditional sequential indexes. It reduces the number of pages rewritten during garbage collection by 97%. It also reduces runtime by 1-2 seconds. It also reduces read times by nearly 0.7% and write times by nearly 0.6%.
[0038] Advantages of additional aspects of the present invention will be given in part in the following description and in part will become obvious from the following description or will be learned through practice of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0039] Figure 1 Schematic diagram of the overall structure of the index according to an embodiment of the present invention.
[0040] Figure 2 Schematic diagram of the structure design of the index according to the embodiment of the present invention.
[0041] Figure 3 4 is a schematic diagram of the index insertion process according to an embodiment of the present invention.
[0042] Figure 4 4 is a schematic diagram of the index deletion process according to an embodiment of the present invention.
[0043] Figure 5 Schematic diagram of the search process of the index in the embodiment of the present invention DETAILED DESCRIPTION
[0044] The following is a clear and complete description of the technical solutions in the embodiments of the present invention, in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. All other embodiments obtained by ordinary technicians in this field based on the embodiments of the present invention without making any creative efforts are within the scope of protection of the present invention.
[0045] like Figure 1 As shown in FIG, it is a schematic diagram of the overall structure of the index according to an embodiment of the present invention. Figure 2 The technical solution of the present invention mainly includes the node structure design of the index, the node insertion, deletion and search operations, the partition management of the partition namespace solid state drive and the implementation of garbage collection.
[0046] The first is the design of the index node structure. Index nodes include leaf nodes, internal nodes, and path nodes. Ordinary leaf nodes of the index are set to k keys and k values, and ordinary internal nodes contain k keys and the addresses of k+1 leaf nodes. In addition, to facilitate the classification and merging of index nodes, the solution also designs super leaf nodes and super internal nodes. Super leaf nodes contain k+1 keys and k+1 values, and super internal nodes contain k+1 keys and k+2 addresses. Finally, in order to perform cascading updates of the index, the solution also designs path nodes. Path nodes record the positions of the nodes of this layer and the next layer in this layer. When a leaf node of the index is updated, the parent node of the leaf node can be obtained through the path node, thereby updating the value and address of the parent node to achieve cascading updates of the index.
[0047] After the node is designed, index insertion, deletion, and search operations will be performed.
[0048] like Figure 3 The figure shows the flow chart of index insertion in an embodiment of the present invention. The index insertion operation will first search from the internal nodes all the way to the leaf node to be inserted, and then insert the corresponding key value into the leaf node. Next, the cascade update operation of the index will be triggered, and the values and addresses of the nodes on the search path will be updated in sequence until the root node is updated. The specific process is as follows: Figure 3 As shown, the first step is to determine whether the index is empty. If the index is empty, a new leaf node is created and inserted. If the index is not empty, the number of layers of the index is determined. If the index has only one layer, the internal nodes are determined to be full. If the internal node is full, the key is split into two nodes and the corresponding node is inserted according to the key value. If the internal node is not full, the key is directly inserted into the internal node. If the index has multiple layers, the corresponding leaf node is searched from the internal node. Then, the leaf node is determined to be full. If the leaf node is full, the key is split into two nodes and the corresponding node is inserted. If the leaf node is not full, the key is directly inserted into the leaf node.
[0049] like Figure 4 The following is a schematic diagram of the index deletion process of an embodiment of the present invention. The index deletion operation will first search from the internal nodes all the way to the leaf node to be deleted, and then find the corresponding key value in the leaf node for deletion. If the corresponding key value is not found in the leaf node, the deletion failure is returned. For the specific process, please refer to Figure 4 First, it will determine whether the index is empty. If the index is empty, the deletion fails. If the index is not empty, it will determine how many layers the tree has. If the index has only one layer, it will directly search for the corresponding key value from the internal node. If the corresponding key value is found, it will be deleted from the internal node. If there is no corresponding key value, the deletion fails. If the index has multiple layers, the corresponding leaf node will be searched from the internal node. If the leaf node has the corresponding key value, it will be deleted from the leaf node, otherwise the deletion failure will be returned. After deleting the corresponding key value in the leaf node, if the number of key values of the leaf node is zero, the corresponding key value of the node on the search path will continue to be deleted. If the number of key values of the leaf node is less than half of the node capacity after deleting the corresponding key value in the leaf node, a key value will be borrowed from the adjacent node. If the number of key values of the adjacent node is also less than half of the node capacity, the merge operation of the adjacent nodes will be triggered.
[0050] like Figure 5 The following is a flow chart of the index search process according to an embodiment of the present invention. The index search operation starts from the internal node, searches all the way to the corresponding leaf node, and searches for the corresponding key value in the leaf node. Figure 5 As shown, it first determines whether the index is empty. If the index is empty, it returns a search failure. If the index is not empty, it determines how many layers the index has. If the index has only one layer, it searches for the corresponding key value in the internal node. If the index has multiple layers, it starts from the internal node and searches all the way to the corresponding leaf node and searches for the corresponding key value in the leaf node.
[0051] During the index insertion and deletion process, the partition namespace SSD will be partitioned to reduce write amplification during garbage collection of the partition namespace SSD. This solution divides the partition namespace SSD into an internal node area, a hot leaf node area, and a cold leaf node area. The internal node area stores the internal nodes of the index, the hot leaf node area stores the leaf nodes with high update counts in the index, and the cold leaf node area stores the leaf nodes with low update counts in the index. When the update count of a leaf node is higher than half of the number of key values that the node can accommodate, the node will be stored in the hot leaf node partition, and when the update count of a leaf node is lower than half of the number of key values that the node can accommodate, the node will be stored in the cold leaf node partition. The specific implementation method is to set up three partition queues, record the addresses of the corresponding partitions of the SSD in sequence, and when the index needs to be written to the SSD, the address of the corresponding partition will be taken from the queue and the node will be stored in the corresponding partition.
[0052] When the partition namespace SSD runs low on capacity, garbage collection is performed on the partition namespace SSD. This involves resetting partitions with high garbage rates, writing valid data to other partitions, and then resetting the partitions. This solution uses a garbage collection queue to store full partitions. When the number of partitions in the garbage collection queue exceeds a certain threshold, the partition with the highest garbage rate is prioritized for garbage collection. During this process, valid data is rewritten to other partitions and then reset. For leaf nodes with valid data, after rewriting the leaf node to another partition, the solution cascades updates to internal nodes all the way to the root node. Because writing a leaf node to another partition changes its address, the internal node addresses need to be updated, triggering a cascade update to the root node. For internal nodes with valid data, the solution also cascades updates to upper-level internal nodes all the way to the root node. During this cascade update, the solution first reads a value from the node to be updated, then searches for that value from an internal node. Path nodes are used to record the search path, including the positions of the nodes in the current layer and the nodes in the next layer within the current layer. During the garbage collection process, the solution also records the number of recovered pages to facilitate future experimental comparisons.
[0053] The following are specific embodiments:
[0054] This index implementation utilizes a simulated partitioned namespace solid-state drive. The experimental server system is Ubuntu 22.04.2.LTS, Linux version 5.19.0-32-generic, and GCC version 9.4.0. The experiment utilizes the Western Digital simulator null_blk and the read / write library libzbd. Two loads were designed to test the index's read and write performance: an insert-based load and a mixed load. The insert-based load consists of insert sequences with 100% insert operations, and the data sizes are set to 90,000, 100,000, and 110,000, respectively. The mixed load consists of insert, delete, and search instructions, with the three instructions accounting for 80%, 10%, and 10%, respectively, and the data sizes are set to 90,000, 100,000, and 110,000, respectively. The simulated device used in the experiment contains 32 partitions, each 32MB in size, with a uniform block size of 4KB.
[0055] During the experiment, the number of rewritten pages, running time, and disk read and write times during the disk garbage collection process of this index and the traditional sequential write index under different loads were compared.
[0056] The solution provided by the present invention has the following effects:
[0057] This index achieves significant performance improvements over traditional sequential indexes. It reduces the number of pages rewritten during garbage collection by 97%. It also reduces runtime by 1-2 seconds. It also reduces read times by nearly 0.7% and write times by nearly 0.6%.
[0058] Optionally, in some possible implementations, all or part of the above implementations may be included.
[0059] It should be understood that in the description of this specification, reference to the terms "one embodiment", "some embodiments", "example", "specific example" or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present invention. In this description, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described can be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art can combine and combine different embodiments or examples described in this specification and some features of different embodiments or examples without contradiction.
[0060] Of course, without departing from the spirit and essence of the present invention, those skilled in the art may make various corresponding changes and modifications based on the present invention, but these changes and modifications should all fall within the scope of protection of the claims of the present invention.
Claims
1. A tree indexing method for partitioned namespace solid state drives, characterized in that: include: Step 1: Node structure design; Step 2: Node insertion, deletion, and search operations; Step 3: Partition namespace SSD partition management; Step 4: Garbage collection implementation.
2. The tree indexing method for partitioned namespace solid state drives according to claim 1, characterized in that: Step 1 specifically includes: The node structure design of the index includes leaf nodes, internal nodes and path nodes. The ordinary leaf nodes of the index are set to k keys and k values, and the ordinary internal nodes contain k keys and the addresses of k+1 leaf nodes. The nodes also include super leaf nodes and super internal nodes. The super leaf nodes contain k+1 keys and k+1 values, and the super internal nodes contain k+1 keys and k+2 addresses. The node also includes a path node, which records the position of the nodes in this layer and the next layer in this layer. When the leaf node of the index is updated, the parent node of the leaf node can be obtained through the path node, thereby updating the value and address of the parent node to achieve cascading update of the index.
3. The tree indexing method for partitioned namespace solid state drives according to claim 2, wherein: The node insertion operation specifically includes: First, search from the internal nodes all the way to the leaf node to be inserted, and then insert the corresponding key value into the leaf node. Next, the cascade update operation of the index will be triggered, and the values and addresses of the nodes on the search path will be updated in sequence until the root node is updated. Specifically, it will first determine whether the index is empty. If the index is empty, a new leaf node will be created and inserted. If the index is not empty, it will determine how many layers the index has. If the index has only one layer, it will determine whether the internal node is full. If the internal node is full, it will be split into two nodes and the corresponding node will be inserted according to the key value. If it is not full, it will be directly inserted into the internal node. If the index has multiple layers, the corresponding leaf node will be searched from the internal node, and then it will be determined whether the leaf node is full. If the leaf node is full, it will be split into two nodes and the corresponding node will be inserted. If the leaf node is not full, it will be directly inserted into the leaf node.
4. The tree indexing method for partitioned namespace solid state drives according to claim 3, characterized in that: The node deletion operations include: First, search from the internal nodes all the way to the leaf node to be deleted, and then find the corresponding key value in the leaf node for deletion. If the corresponding key value is not found in the leaf node, the deletion fails. Specifically, first determine whether the index is empty. If the index is empty, the deletion fails. If the index is not empty, determine how many layers the tree has. If the index has only one layer, search the corresponding key value directly from the internal node. If the corresponding key value is found, delete it from the internal node. If there is no corresponding key value, the deletion fails. If the index has multiple layers, search the corresponding leaf node from the internal node. If the leaf node has the corresponding key value, delete it from the leaf node, otherwise return deletion failure. After deleting the corresponding key value in the leaf node, if the number of key values of the leaf node is zero, continue to delete the corresponding key value of the node on the search path. If the number of key values of the leaf node is less than half of the node capacity after deleting the corresponding key value in the leaf node, borrow a key value from the adjacent node. If the number of key values of the adjacent node is also less than half of the node capacity, the merge operation of the adjacent nodes is triggered.
5. The tree indexing method for partitioned namespace solid state drives according to claim 4, characterized in that: Node insertion and search specifically include: Start from the internal node, search all the way to the corresponding leaf node, and find the corresponding key value in the leaf node; Specifically, first determine whether the index is empty. If the index is empty, return a search failure. If the index is not empty, determine how many layers the index has. If the index has only one layer, search for the corresponding key value in the internal node. If the index has multiple layers, start from the internal node and search all the way to the corresponding leaf node and search for the corresponding key value in the leaf node.
6. The tree indexing method for partitioned namespace solid state drives according to claim 5, characterized in that: Step three specifically includes: During the index insertion and deletion process, partition management is performed on the partition namespace SSD to reduce write amplification during garbage collection of the partition namespace SSD; The partitioned namespace solid-state drive is divided into an internal node area, a hot leaf node area, and a cold leaf node area. The internal node area stores the internal nodes of the index, the hot leaf node area stores the leaf nodes with a high number of updates in the index, and the cold leaf node area stores the leaf nodes with a low number of updates in the index. When the number of updates to a leaf node is higher than half of the number of key values that the node can accommodate, the node will be stored in the hot leaf node partition, and when the number of updates to a leaf node is lower than half of the number of key values that the node can accommodate, the node will be stored in the cold leaf node partition. The addresses of the corresponding partitions of the solid-state drive are recorded in sequence. When the index needs to be written to the solid-state drive, the address of the corresponding partition will be taken out of the queue and the node will be stored in the corresponding partition.
7. The tree indexing method for partitioned namespace solid state drives according to claim 6, characterized in that: Step 4 specifically includes: When the partition namespace SSD capacity is insufficient, garbage collection will be performed on the partition namespace SSD. This means resetting the partition with the highest garbage rate, writing the valid data in the partition to another partition, and then resetting the partition. A garbage collection queue is designed to store full partitions. When the number of partitions in the garbage collection queue exceeds a certain level, the partition with the highest garbage rate will be selected for garbage disposal. During the garbage disposal process, the valid data in the partition will be rewritten to other partitions and then the partition will be reset. For the case where the valid data is a leaf node, after the leaf node is rewritten to other partitions, the internal node will be updated in cascade until the root node. Because the address of the leaf node will change after it is written to other partitions, the address in the internal node needs to be updated, which will trigger a cascade update until the root node; for the case where the valid data is an internal node, the upper internal node will be updated in cascade until the root node; in the process of cascading updates, a value in the node to be updated is first read, and then the value is searched from the internal node. During the search process, the path node will be used to record the search path, including the position of the current layer node and the next layer node in the current layer during the search process; during the garbage collection process, the number of recovered pages will be recorded to facilitate future experimental comparisons.