Method and apparatus for determining remote index node, device, and medium

By introducing a heat-aware range index cache solution in a distributed storage environment, the range index of storage nodes is cached, which solves the problem of low data access performance under the distributed architecture, and achieves more efficient index access and data retrieval.

WO2025002005A1PCT designated stage expired Publication Date: 2025-01-02ZTE CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/100702
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-06-29
Filing Date
2024-06-21
Publication Date
2025-01-02

AI Technical Summary

Technical Problem

In a distributed storage environment, computing nodes need to frequently access the index structure of storage nodes, resulting in a degradation of data access performance, mainly due to the need for a large number of network transmission operations.

Method used

Adopting a range index cache scheme with heat-awareness, by introducing index cache modules, heat statistics modules and heat management modules into the computing nodes, the range index in the storage node is cached, and the number of index accesses to remote storage nodes is reduced, and data access performance is improved. .

Benefits of technology

It effectively reduces the number of index accesses in the process of computing node querying remote storage nodes, improves data access performance, and meets the needs of hot spot tracking, range searching and data consistency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024100702_02012025_PF_FP_ABST
    Figure CN2024100702_02012025_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of distributed storage, and discloses a method and apparatus for determining a remote index node, a device, and a medium. A range index cache is constructed for a computing node under a distributed architecture, and a cache index node is constructed in the range index cache. A target cache node covering a range of a determination request of a remote index node is, by means of searching, determined to be present, and a remote index node in a storage node is determined according to the target cache node.
Need to check novelty before this filing date? Find Prior Art

Description

Method, device, equipment and medium for determining remote index nodes

[0001] Related applications

[0002] This application claims priority to Chinese patent application No. 202310785150.7 filed on June 29, 2023, the entire contents of which are incorporated by reference into this application. Technical Field

[0003] The present application relates to the field of distributed storage, and in particular to a method for determining a remote index node, an apparatus for determining a remote index node, a device for determining a remote index node, and a computer-readable storage medium. Background Art

[0004] With the rise of cloud services, more and more database and storage systems are being deployed in distributed environments to achieve performance expansion. In this architecture, some servers are compute nodes, primarily responsible for performing computational tasks during system operation; others are storage nodes, primarily responsible for storing data and its corresponding range index structure. When a compute node needs to read target data, it uses a high-performance network to recursively access each level of the index structure within the storage node until the target data is retrieved. This requires a significant amount of network transmission, which can easily lead to decreased data access performance.

[0005] Summary of the Invention

[0006] The present application provides a method for determining a remote index node, which is applied to a computing node. The method includes: in response to a determination request of a remote index node, searching in a cache index node whether there is a target cache node that covers the range of the determination request; and after determining that there is a target cache node that covers the range of the determination request, determining a remote index node in a storage node according to the target cache node, wherein the remote index node is an index node in an index node layer of the storage node located above a leaf node layer.

[0007] The present application also provides a device for determining a remote index node, which is applied to a computing node and includes: a retrieval module, configured to respond to a determination request of a remote index node and search in a cache index node whether there is a target cache node covering the range of the determination request; and a determination module, configured to determine the remote index node in the storage node according to the target cache node after determining that there is a target cache node covering the range of the determination request, wherein the remote index node is an index node in the index node layer of the storage node located above the leaf node layer.

[0008] The present application also provides a device for determining a remote index node, which includes: a memory, a processor, and a computer program stored on the memory and executable on the processor. When the computer program is executed by the processor, the steps of the method for determining a remote index node as described above are implemented.

[0009] The present application also provides a computer-readable storage medium having a computer program stored thereon. When the computer program is executed by a processor, the steps of the method for determining a remote index node as described above are implemented. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] FIG1 is a schematic diagram of the structure of the operating equipment of the hardware operating environment involved in the embodiment of the present application;

[0011] Figure 2 is a schematic diagram of a typical range index;

[0012] FIG3 is a schematic diagram of an application environment of an embodiment of a system for determining a remote index node according to an embodiment of the present application;

[0013] FIG4 is a schematic diagram of an organizational block diagram of an embodiment of a system for determining a remote index node according to an embodiment of the present application;

[0014] FIG5 is a flow chart of an embodiment of a system for determining a remote index node according to an embodiment of the present application;

[0015] FIG6 is a schematic diagram of a range search of an embodiment of a system for determining a remote index node according to an embodiment of the present application;

[0016] FIG7 is a schematic diagram of heat management of an embodiment of a system for determining a remote index node according to an embodiment of the present application;

[0017] FIG8 is an example diagram of range search and heat update of an embodiment of a system for determining remote index nodes according to an embodiment of the present application;

[0018] FIG9 is a schematic diagram of a device for determining a remote index node according to an embodiment of the present application.

[0019] The realization of the objectives, functional features and advantages of this application will be further explained in conjunction with embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION

[0020] It should be understood that the specific embodiments described herein are only used to explain the present application and are not intended to limit the present application.

[0021] Refer to Figure 1, which is a schematic diagram of the operating equipment structure of the hardware operating environment involved in the embodiment of the present application.

[0022] As shown in Figure 1, the operating device may include: a processor 1001, such as a central processing unit (CPU), a communication bus 1002, a user interface 1003, a network interface 1004, and a memory 1005. Among them, the communication bus 1002 is used to realize the connection and communication between these components. The user interface 1003 may include a display screen (Display), an input unit such as a keyboard (Keyboard), and the user interface 1003 may also include a standard wired interface and a wireless interface. The network interface 1004 may include a standard wired interface and a wireless interface (such as a wireless fidelity (WIreless-FIdelity, WI-FI) interface). The memory 1005 may be a high-speed random access memory (Random Access Memory, RAM) memory, or a stable non-volatile memory (Non-Volatile Memory, NVM), such as a disk storage. The memory 1005 may also be a storage device independent of the aforementioned processor 1001.

[0023] Those skilled in the art will understand that the structure shown in FIG1 does not constitute a limitation on the operating device, and may include more or fewer components than shown, or a combination of certain components, or a different arrangement of components.

[0024] As shown in FIG. 1 , the memory 1005 as a storage medium may include an operating system, a data storage module, a network communication module, a user interface module, and a computer program.

[0025] In the running device shown in Figure 1, the network interface 1004 is mainly used for data communication with other devices; the user interface 1003 is mainly used for data interaction with the user; the processor 1001 and the memory 1005 in the running device of this application can be set in the running device, and the running device calls the computer program stored in the memory 1005 through the processor 1001, and performs the following operations: in response to the determination request of the remote index node, retrieve whether there is a target cache node covering the range of the determination request in the cache index node; and after determining that there is a target cache node covering the range of the determination request, determine the remote index node in the storage node according to the target cache node, wherein the remote index node is an index node in the index node layer of the storage node located above the leaf node layer.

[0026] In one embodiment, the processor 1001 can call a computer program stored in the memory 1005 and perform the following operations: based on the node starting value in the range index cache structure, search in the cache index node whether there is a target cache node covering the range of the determined request, wherein the range index cache structure is organized based on the node starting value of the cache index node.

[0027] In one embodiment, the processor 1001 can call a computer program stored in the memory 1005 and also perform the following operations: after determining that the node starting value of the target cache node is different from the node starting value of the remote index node, update the node starting value of the target cache node to the node starting value of the remote index node.

[0028] In one embodiment, the processor 1001 can call a computer program stored in the memory 1005 and also perform the following operations: after determining that the node starting value of the target cache node is the same as the node starting value of the remote index node, access and read the storage data corresponding to the actual storage address of the remote index node from the leaf node layer of the storage node.

[0029] In one embodiment, the processor 1001 may call a computer program stored in the memory 1005 and further perform the following operations: counting the access frequency of the remote index node; and determining the remote index node whose access frequency is greater than a preset frequency threshold as a new cache index node.

[0030] In one embodiment, the processor 1001 may call a computer program stored in the memory 1005 and further perform the following operations:

[0031] After determining the new cache index node, the new cache index node is sorted in the existing hot node list based on the access frequency to obtain a new hot node list, and a new range index cache structure is obtained based on the node starting value of the cache index node in the new hot node list.

[0032] In one embodiment, the processor 1001 may call a computer program stored in the memory 1005 and further perform the following operations:

[0033] After determining that the storage space of the range index cache structure of the cache index node is greater than a preset space threshold, the cache index node at the tail of the linked list of the hot node linked list is deleted until the storage space is less than or equal to the preset space threshold.

[0034] Referring to Figure 2, an index is an essential structure in data management systems (e.g., database systems and storage systems) and is the most common means of supporting high-performance queries. Common index structures can be divided into key-value indexes (e.g., HashTable) and range indexes, such as the B-Tree and SkipList in Figure 2. In a key-value index, the corresponding target value can be quickly found based on the input key value. In a range index, a pair of input range key values ​​[Key1, Key2] can be quickly found to store a set of target values ​​that meet the conditions. As shown in Figure 2, the range index structure can be divided into two parts: the index node layer and the leaf node layer. Essentially, the index node layer of the range index can be viewed as a regression tree model, ensuring that the input key value range is mapped to one or more leaf nodes with limited error, and then the corresponding target value is read from the storage using the address information in the leaf node.

[0035] 3 , the range index caching solution based on heat perception of the present application is deployed in a typical distributed environment. The servers in the distributed environment can be divided into two categories, which can be computing nodes and storage nodes respectively, and the two are connected to each other through high-performance networks, such as RDMA (Remote Direct Memory Access) and CXL (Compute Express Link, high-speed serial protocol). Each computing node provides a system interface (for example, Put, Get and Scan) to help applications obtain data in remote storage nodes. The storage node is mainly responsible for storing various data blocks and building range indexes based on these data blocks (for example, B-Tree or SkipList in Figure 2), so as to help the computing node quickly find the location of the target data. Therefore, when the client of the computing node needs to access a specific data block in the storage node, it needs to access the index structure in the storage node from top to bottom multiple times (the minimum number of times is the index structure layer height) until the target data block is returned. Taking Figure 3 as an example, when facing a storage node based on a B-Tree index, for data <1> The search needs to first access the remote L2 layer root node <30> Then visit the root node at L1 layer <30> The left child node <8,25>, and finally find the left child node database <1,3,7> of the L0 layer, and find the corresponding data <1> Similarly, when faced with a storage node based on the SkipList index, the compute node also needs to access multiple layers of index nodes. The specific process is not detailed here. As can be seen, in the existing distributed environment, accessing target data requires multiple remote communications, resulting in high overall access latency.

[0036] To address the performance issues of accessing range indexes in storage nodes under a distributed architecture, this application proposes a heat-aware range index caching solution. Referring to Figure 4 , an index caching module, a heat statistics module, and a heat management module are used to cache range indexes in remote storage nodes, simultaneously meeting the requirements of hotspot tracking, range lookup, and data consistency. This effectively reduces the number of index accesses when computing nodes query remote storage nodes, thereby improving data access performance.

[0037] First, the index cache module is set to be introduced into the computing node to temporarily store the frequently accessed hot nodes in the L1 layer (the bottom layer of the index node layer) of the range index in the storage node (for example, the L1 layer nodes <20,30,35>, <40,50>, <60,65>, <80,90> in Figure 4). It is worth noting that the index nodes in the cache only need to record the starting value and the actual storage address of the node (for example, the index cache in Figure 4 <20> , <40> , <60> , <80> ). For any access to a cache node, it is still necessary to read the actual remote data according to the actual storage address. If the starting value of the remote index node read does not match the starting value in the cache, it proves that the cache node is invalid (i.e., a split or update has occurred) and needs to be updated immediately. Then, in the next retrieval after the update, the remote index node is read again based on the cache index node with the updated starting value. In addition, the module will also organize the cache index nodes according to their starting values ​​to form a specific range index structure (for example, SkipList or B-Tree), thereby reducing remote access while meeting the range search requirements. In this way, it is only necessary to directly access the hotspot node of the L1 layer of the storage node from the index cache of the computing node according to the starting value of the cache index node, without the need to traverse from L3 to L2 to L1. In addition, the subsequent heat statistics module and heat management module both serve the index cache module and serve its swap-in and swap-out operations.

[0038] The heat statistics module is set to use Count-Min Sketch inside the computing node to build a heat statistics module, so as to count the access frequency of L1 layer index nodes in real time. The access statistics include cache index nodes hits, cache index nodes misses, and accesses to L1 layer index nodes. When the access frequency (heat) of a certain index node reaches the set threshold, it will be considered a hot index node and should be reported to the index cache module for organization and management. For example, in Figure 4, L1 layer index nodes <20,30,35>, <40,50>, <60,65>, <80,90> are selected as hot index nodes and need to be cached in the computing node, while L1 index nodes <5,10,15> do not need to be cached.

[0039] Finally, a heat management module is introduced within the compute node to track the heat changes of cache index nodes. Essentially, the heat management module is a one-way linked list, with each node corresponding to a cache index node. The linked list represents heat levels from high to low. For example, the four cache index nodes in Figure 4 are sorted from left to right according to heat levels. When a sample reports a heat index node, the existing index node is moved to the head of the linked list, and the new node is inserted into the head before being inserted into the index module. When cache space is insufficient, the cache index node corresponding to the tail of the linked list is deleted. This caching solution, based on the coordination of the statistics module and the heat module, meets heat tracking requirements. Given the high cost of fully real-time sorting, an approximate sort can be employed, roughly sorting by heat level. This manages the cache nodes in the index cache module's index structure based on the heat levels of the nodes in the one-way linked list. This involves adding and removing cache nodes from the index structure through the swapping in and out process shown in Figure 2.

[0040] In the above, by constructing a range index cache for the computing nodes under the distributed architecture, the overhead of accessing the range index in the remote storage node is reduced, thereby improving the overall data access performance. In order to implement the range index cache, (1) Hot spot tracking: The computing node has limited memory space, so it can only cache some hot index nodes. In the face of constantly changing access loads, this application tracks the hot nodes in the range index in real time, caches the hot index data in time, and removes the cool index data. (2) Range search: In order to enable the cached index nodes to still support range search, this application organizes them according to specific range search data structures (for example, B-Tree and SkipList). (3) Consistency guarantee: The range index often changes as the data is updated. In order to timely perceive the changes in the range index in the storage node, this application adopts a cache address strategy to ensure that the cache in the computing node is consistent with the storage node, thereby avoiding reading erroneous data from the cache.

[0041] An embodiment of the present application provides a method for determining a remote index node. Referring to Figure 5, in one embodiment of the method for determining a remote index node, the method is applied to a computing node, and the method includes: step S10, in response to a determination request of a remote index node, searching in the cache index node whether there is a target cache node covering the range of the determination request.

[0042] The method for determining remote index nodes in this application is applicable to scenarios where computing and storage are separated and memory is decoupled under a distributed architecture, and is also applicable to scenarios where virtualization and easy access to cloud storage are required.

[0043] Referring to Figure 6 , to avoid frequent access to the index structure in the remote storage node, this embodiment introduces interaction with the index cache module within the existing range search process. Upon receiving a range search request, the compute node first searches the index cache module and searches the corresponding range index cache structure (SkipList or B-Tree) for a cached index node that covers the requested range of the remote index node.

[0044] Step S20, after determining that there is a target cache node covering the range of the determined request, determine the remote index node in the storage node based on the target cache node, wherein the remote index node is an index node in the index node layer of the storage node located above the leaf node layer.

[0045] If the index cache module provides cached index nodes that meet the range search criteria, the compute node will sequentially retrieve all L1 remote index nodes that meet the criteria from the storage node based on their corresponding locations. If no cached index nodes meet the range criteria, the compute node will choose to directly traverse the storage node's range index according to the existing process. In one embodiment, as shown in Figure 8, when the compute node receives a search request for the range [65, 80], it directly searches the Skiplist in the index cache module and obtains the cached index nodes 60 and 80.

[0046] In one embodiment, the step of searching in the cache index node whether there is a target cache node covering the range of the determined request includes: based on the node starting value in the range index cache structure, searching in the cache index node whether there is a target cache node covering the range of the determined request, wherein the range index cache structure is organized based on the node starting value of the cache index node.

[0047] In one embodiment, cache index nodes are organized according to their starting values ​​to form a specific range index structure (e.g., SkipList or B-Tree). Based on the starting values ​​of the nodes in the range index cache structure, the cache index nodes are searched to see whether there is a target cache node that covers the determined request range of the remote index node. This reduces remote access while meeting range search requirements. In this way, hot nodes in the L1 layer of the storage node can be directly accessed from the index cache of the computing node based on the starting value of the cache index node, eliminating the need to traverse from L3 to L2 to L1.

[0048] In one embodiment, the step of determining the remote index node in the storage node based on the target cache node includes: after determining that the node starting value of the target cache node and the node starting value of the remote index node are different, updating the node starting value of the target cache node to the node starting value of the remote index node.

[0049] Referring to Figure 6, if the read index node and the cached index node have different starting values, it means that the corresponding index node in the storage node has been split or merged, and the cached index node is invalid. It should be updated to the latest read value and the query process should be restarted. Otherwise, it is assumed that the correct L1 layer index node has been read, and the corresponding L0 layer data will be read further.

[0050] In one embodiment, the step of determining the remote index node in the storage node based on the target cache node includes: after determining that the node starting value of the target cache node is the same as the node starting value of the remote index node, accessing and reading the storage data corresponding to the actual storage address of the remote index node from the leaf node layer of the storage node.

[0051] After determining that the node start values ​​of the target cache node and the remote index node are the same, the storage data corresponding to the actual storage address of the remote index node can be read from the leaf node layer L0 of the storage node.

[0052] In this embodiment, the method is applied to a computing node, and in response to a determination request of a remote index node, it is retrieved in the cache index node whether there is a target cache node that covers the range of the determination request; after determining that there is a target cache node that covers the range of the determination request, the remote index node in the storage node is determined based on the target cache node, wherein the remote index node is an index node in the index node layer of the storage node located above the leaf node layer.

[0053] In this embodiment, a range index cache is constructed for computing nodes in a distributed architecture, and cache index nodes are constructed in the range index cache. A target cache node is determined to exist by searching for a target cache node that covers a range of a determined request for a remote index node, and a remote index node in a storage node is determined based on the target cache node. The remote index node is an index node in an index node layer of the storage node located above a leaf node layer, i.e., the remote index node is the lowest index node in the index node layer of the storage node.

[0054] As a result, there's no need to recursively access each level of the index structure in the storage node until the target data is retrieved. Instead, the target cache node covering the requested range of the remote index node can be found in the range index cache. The target cache node can then be used to directly determine the remote index node in the storage node and retrieve the target data. This reduces the overhead of accessing the range index in the remote storage node, thereby improving overall data access performance.

[0055] In another embodiment of the method for determining a remote index node of the present application, the method further includes: counting the access frequency of the remote index node; and determining the remote index node whose access frequency is greater than a preset frequency threshold as a new cache index node.

[0056] Compute nodes also use a Count-Min Sketch to build a heat statistics module, which counts the frequency of L1 index node accesses in real time. The counted accesses include cache index node hits, cache index node misses, and L1 index node accesses. When the access frequency (heat) of an index node reaches a set threshold, it is considered a cache index node (hot index node) and is reported to the index cache module for organization and management.

[0057] In one embodiment, the method further includes: after determining the new cache index node, sorting the new cache index node in the existing hot node list based on the access frequency to obtain a new hot node list, and organizing the new range index cache structure based on the node starting value of the cache index node in the new hot node list.

[0058] A heat management module is further introduced inside the computing node to record the heat changes of the cache index nodes. In essence, the heat management module is a one-way linked list, each of which corresponds to a cached index node, and the linked list represents the heat from high to low from the beginning to the end. For example, the four cached index nodes in Figure 4 are sorted from left to right according to the heat level. When faced with the heat index node reported by the sampling, the existing index node will be moved to the head of the linked list, and the new node will be inserted into the head of the linked list and then inserted into the index module. In this way, the new range index cache structure can be further organized according to the node starting value of the cache index node in the new hot node linked list.

[0059] In one embodiment, the method further includes: after determining that the storage space of the range index cache structure of the cache index node is greater than a preset space threshold, deleting the cache index node at the tail of the linked list queue of the hot node linked list until the storage space is less than or equal to the preset space threshold.

[0060] When the cache space is insufficient, the cache index node corresponding to the tail of the linked list will be deleted. Based on the cooperation of the statistics module and the popularity module, this cache solution meets the needs of heat tracking. In this way, based on the heat of the nodes in the one-way linked list, the cache nodes in the index structure of the index cache module are managed. That is, the addition and deletion of cache nodes in the index structure are achieved through the swapping in and out shown in Figure 2.

[0061] In this embodiment, a cache management method for range indexes in a distributed system is proposed, which requires that when caching all nodes, hot nodes in the range index can be cached in real time according to changes in index access popularity.

[0062] Referring to Figure 7 , in order to cache hot index nodes in real time, heat sampling and heat management are required after the range search process is completed. After successfully reading data from a storage node, its corresponding L1-layer index node is sampled for access. This module randomly selects a portion of index nodes and calculates their minimum value using multiple hash functions in the Count-Min Sketch (e.g., the four hash functions H1, H2, H3, and H4 in Figure 4 ), then fills the minimum value into the corresponding array index position in the Count-Min Sketch. When a certain index in all arrays in the Count-Min Sketch is filled, the index node corresponding to that index is considered a hot spot and should be reported to the heat management module and index cache module. If the node is not included in the heat management and index cache modules, it should be inserted. It is worth noting that the heat management module also needs to move the reported hot spot to the head of the linked list. For example, L1-layer index nodes 60 and 80 in Figure 8 are moved to the head of the linked list after being accessed. Finally, if the index cache module does not have enough space, the heat management module will continue to report the index node with the lowest current heat (i.e., the tail of the linked list) to the index cache module, allowing the index cache module to delete the node until the space threshold is met.

[0063] In this way, a cache mechanism is introduced into the method of determining remote index nodes under the existing distributed architecture, thereby reducing the number of remote accesses during the index search process and enabling the cache to be updated in real time according to changes in access load.

[0064] Referring to Figure 9, in addition, an embodiment of the present application also provides a device for determining a remote index node, and the device for determining a remote index node includes: a retrieval module M1, configured to respond to a determination request of a remote index node and search in the cache index node whether there is a target cache node covering the range of the determination request; and a determination module M2, configured to determine the remote index node in the storage node according to the target cache node after determining that there is a target cache node covering the range of the determination request, wherein the remote index node is an index node in the index node layer of the storage node located above the leaf node layer.

[0065] In one embodiment, the retrieval module is further configured to: based on the node starting value in the range index cache structure, search in the cache index node whether there is a target cache node covering the range of the determined request, wherein the range index cache structure is organized based on the node starting value of the cache index node.

[0066] In one embodiment, the determination module is further configured to: after determining that the node starting value of the target cache node is different from the node starting value of the remote index node, update the node starting value of the target cache node to the node starting value of the remote index node.

[0067] In one embodiment, the determination module is further configured to: after determining that the node starting value of the target cache node is the same as the node starting value of the remote index node, access and read the storage data corresponding to the actual storage address of the remote index node from the leaf node layer of the storage node.

[0068] In one embodiment, the remote index node determination device further includes a statistical module, which is configured to: count the access frequency of the remote index node; and determine the remote index node whose access frequency is greater than a preset frequency threshold as a new cache index node.

[0069] In one embodiment, the remote index node determination device also includes a sorting module, and the sorting module is configured to: after determining the new cache index node, sort the new cache index node in the existing hot node list based on the access frequency to obtain a new hot node list, and organize the node starting value of the cache index node in the new hot node list to obtain a new range index cache structure.

[0070] In one embodiment, the device for determining the remote index node also includes a deletion module, and the deletion module is configured to: after determining that the storage space of the range index cache structure of the cache index node is greater than a preset space threshold, delete the cache index node at the tail of the linked list of the hot node linked list until the storage space is less than or equal to the preset space threshold.

[0071] The apparatus for determining remote index nodes provided in this application utilizes the method for determining remote index nodes in the aforementioned embodiments to address the technical issue of poor performance in accessing range indexes of storage nodes in current distributed architectures. Compared to some situations, the beneficial effects of the apparatus for determining remote index nodes provided in the embodiments of this application are the same as those of the method for determining remote index nodes provided in the aforementioned embodiments. Other technical features of the apparatus for determining remote index nodes are the same as those disclosed in the aforementioned embodiments and are not further elaborated upon here.

[0072] In addition, an embodiment of the present application also provides a device for determining a remote index node, which includes: a memory, a processor, and a computer program stored on the memory and executable on the processor. When the computer program is executed by the processor, the steps of the method for determining a remote index node as described above are implemented.

[0073] In addition, an embodiment of the present application further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the method for determining a remote index node as described above are implemented.

[0074] It should be noted that, in this document, the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, article, or system comprising a series of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, article, or system. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article, or system comprising the element.

[0075] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus the necessary general hardware platform, and of course can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to some technologies can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) as described above, and includes a number of instructions for enabling a terminal device (which can be a mobile phone, computer, server, or network device, etc.) to execute the methods described in each embodiment of the present application.

[0076] The above are merely optional embodiments of the present application and do not limit the patent scope of the present application. Any equivalent structure or equivalent process transformation made using the contents of the present application specification and drawings, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present application.

Claims

1. A method for determining a remote index node, wherein: The method is applied to a computing node, and the method comprises: In response to a determination request of a remote index node, searching in cache index nodes whether there is a target cache node covering a range of the determination request; and After determining that there is a target cache node that covers the range of the determined request, a remote index node in the storage node is determined based on the target cache node, wherein the remote index node is an index node in the index node layer of the storage node located above the leaf node layer.

2. The method for determining a remote index node according to claim 1, wherein: The step of searching in the cache index node whether there is a target cache node covering the range of the determined request includes: Based on the node start value in the range index cache structure, it is searched in the cache index node whether there is a target cache node covering the range of the determined request, wherein the range index cache structure is organized based on the node start value of the cache index node.

3. The method for determining a remote index node according to claim 1, wherein: The step of determining a remote index node in a storage node according to the target cache node comprises: After determining that the node start value of the target cache node is different from the node start value of the remote index node, the node start value of the target cache node is updated to be the node start value of the remote index node.

4. The method for determining a remote index node according to claim 1, wherein: The step of determining a remote index node in a storage node according to the target cache node comprises: After determining that the node start value of the target cache node is the same as the node start value of the remote index node, the storage data corresponding to the actual storage address of the remote index node is accessed and read from the leaf node layer of the storage node.

5. The method for determining a remote index node according to claim 2, wherein: The method further comprises: Counting the access frequency of the remote index node; and The remote index node whose access frequency is greater than a preset frequency threshold is determined as a new cache index node.

6. The method for determining a remote index node according to claim 5, wherein: The method further comprises: After determining the new cache index node, the new cache index node is sorted in the existing hot node list based on the access frequency to obtain a new hot node list, and a new range index cache structure is obtained based on the node starting value of the cache index node in the new hot node list.

7. The method for determining a remote index node according to claim 6, wherein: The method further comprises: After determining that the storage space of the range index cache structure of the cache index node is greater than a preset space threshold, the cache index node at the tail of the linked list queue of the hot node linked list is deleted until the storage space is less than or equal to the preset space threshold.

8. A device for determining a remote index node, wherein: The device is applied to a computing node, and comprises: a retrieval module configured to, in response to a determination request of a remote index node, search in the cache index node whether there is a target cache node covering a range of the determination request; and A determination module is configured to determine a remote index node in a storage node based on the target cache node after determining that there is a target cache node covering the range of the determination request, wherein the remote index node is an index node in the index node layer of the storage node located above the leaf node layer.

9. A device for determining a remote index node, wherein: The remote index node determination device comprises: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program is configured to implement the steps of the remote index node determination method as described in any one of claims 1 to 7.

10. A computer-readable storage medium, wherein: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the method for determining a remote index node according to any one of claims 1 to 7 are implemented.

Citation Information

Patent Citations

  • Hybrid index structure with storage perception

    CN104899297A

  • Memory reading method

    CN105159845A

  • Index management method, device, storage medium and equipment used for log query

    CN107220287A

  • B + tree access method and device and computer readable storage medium

    CN111309258A

  • Multi-Level Cache System For Reduction Of Storage Costs

    US20230141964A1