Data query method and device, computer equipment, storage medium and program product
By determining the target SST in the data query method and finding the storage location of the highest version of data therein, the problem of low data query efficiency in the prior art is solved, and more efficient data query is achieved.
Patent Information
- Application Number
- CN202510373347.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-27
- Publication Date
- 2025-07-25
AI Technical Summary
The prior art needs to traverse all key-value pairs in each SST when looking for the highest version of snapshot data, resulting in low data query efficiency.
By receiving data query requests, the target SST is determined from each SST based on the Key and storage hierarchy identification, and the target value corresponding to the Key is determined in the target SST. The target Value represents the storage location of the highest version data in each version of the data, avoiding cross-SST query.
Improves the efficiency of data query, reduces the need to access multiple SSTs, and avoids the problem of long-term querying.
Smart Images

Figure CN120371861A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of data storage, and in particular, to a data query method, apparatus, computer device, computer-readable storage medium, and computer program product. Background Art
[0002] With the iterative update of data, the same data may correspond to multiple snapshot data of different versions, and these snapshot data may be stored in each SortedString Table (SST) in a Key Value Database (KVDB). Currently, when finding the snapshot data corresponding to the highest version, it is necessary to traverse all key-value pairs in each SST to find the snapshot data corresponding to the highest version.
[0003] However, the above data query method has the problem of low data query efficiency. Summary of the Invention
[0004] Based on this, it is necessary to provide a data query method, apparatus, computer device, computer-readable storage medium, and computer program product that can improve data query efficiency for the above technical problems.
[0005] In a first aspect, the present application provides a data query method. The method includes:
[0006] Receiving a data query request, where the data query request includes a key (Key) and a storage level identifier, and the storage level corresponding to the storage level identifier includes multiple SortedString Tables (SSTs);
[0007] Determining a target SST from each of the SSTs according to the Key and the storage level identifier, where the target SST stores the storage locations of each version of the data corresponding to the Key;
[0008] Determining a target value (Value) corresponding to the Key according to the Key and the target SST, where the target Value is used to represent the storage location of the highest version of the data among each version of the data.
[0009] In one embodiment, the Key includes a target Logical Block Address (LBA) and a target version identifier, the target SST includes an index block and multiple data blocks, and determining the target Value corresponding to the Key according to the Key and the target SST includes:
[0010] Determining a target data block corresponding to the target LBA from each of the data blocks according to the target LBA and the index block, where the index block includes the corresponding relationship between each data block and each LBA;
[0011] Determine the target Value according to the target version identifier and the target data block.
[0012] In one embodiment, the target data block includes the version identifiers of each version data and the Value corresponding to each version identifier. The determining the target Value according to the target version identifier and the target data block includes:
[0013] Determine the difference between the target version identifier and each version identifier.
[0014] Determine the Value corresponding to the version identifier with the largest difference as the target Value.
[0015] In one embodiment, the determining the target SST from each SST according to the Key and the storage level identifier includes:
[0016] Determine the level type of the storage level according to the storage level identifier.
[0017] Perform a check on the target LBA according to the check method corresponding to the level type to obtain a check result.
[0018] If the check result is a pass, determine the target SST from each SST according to the Key.
[0019] In one embodiment, the performing a check on the target LBA according to the check method corresponding to the level type to obtain a check result includes:
[0020] When the level type is the first type, determine the target check information corresponding to the target LBA.
[0021] Match the target check information with the standard check information respectively corresponding to each LBA in a preset Bloom filter. Each LBA corresponds to a plurality of SSTs included in the storage level of the first type.
[0022] If there is check information in the standard check information that is the same as the target check information, determine that the check result is a pass.
[0023] In one embodiment, the determining the target SST from each SST according to the Key includes:
[0024] When the level type is the second type, determine the target identifier corresponding to the Key and the first identifier range corresponding to the storage level of the second type.
[0025] Determine a target storage node from the storage hierarchy of the second type according to the target identifier and the first identifier range;
[0026] Determine the target SST from multiple SSTs included in the target storage node according to the target identifier and the second identifier range corresponding to the target storage node.
[0027] In a second aspect, the present application also provides a data query device. The device includes:
[0028] A receiving module, configured to receive a data query request, where the data query request includes a key Key and a storage hierarchy identifier, and the storage hierarchy corresponding to the storage hierarchy identifier includes multiple sorted string tables SSTs;
[0029] A first determination module, configured to determine a target SST from each of the SSTs according to the Key and the storage hierarchy identifier, where the target SST stores the storage locations of each version of data corresponding to the Key;
[0030] A second determination module, configured to determine a target value Value corresponding to the Key according to the Key and the target SST, where the target Value is used to represent the storage location of the highest version of data among each version of data.
[0031] In a third aspect, the present application also provides a computer device, including a memory and a processor, where the memory stores a computer program, and when the processor executes the computer program, the steps of the method described in the first aspect above are implemented.
[0032] In a fourth aspect, the present application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the method described in the first aspect above are implemented.
[0033] In a fifth aspect, the present application also provides a computer program product. The computer program product includes a computer program, and when the computer program is executed by a processor, the steps of the method described in the first aspect above are implemented.
[0034] In the above data query method, the server first receives a data query request, which includes a Key and a storage level identifier. Then, based on the Key and the storage level identifier, the target SST is determined from each SST. After that, based on the Key and the target SST, the target Value corresponding to the Key is determined. The target Value is used to represent the storage location of the highest version data among the version data. Since the storage locations of the version data corresponding to the Key are stored in the target SST, by comparing the Key with the KVs corresponding to the version data included in the target SST, the KV corresponding to the highest version data can be determined, and thus the target Value corresponding to the Key can be quickly determined. In the process of determining the target Value, it is not necessary to compare the Key with the KVs in multiple SSTs, so it is not necessary to access multiple SSTs, avoiding the problem of frequent access and long query time caused by cross-SST queries, and thus improving the data query efficiency. Description of the Drawings
[0035] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the following will briefly introduce the drawings required for use in the description of the embodiments or related technologies. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained based on these drawings.
[0036] Figure 1 It is an application environment diagram of the data query method in an embodiment;
[0037] Figure 2 It is a schematic flowchart of the data query method in an embodiment;
[0038] Figure 3 It is a schematic flowchart of step 203 in an embodiment;
[0039] Figure 4 It is a schematic flowchart of step 302 in an embodiment;
[0040] Figure 5 It is a schematic flowchart of step 202 in an embodiment;
[0041] Figure 6 It is a schematic flowchart of step 502 in an embodiment;
[0042] Figure 7 It is a schematic flowchart of step 503 in an embodiment;
[0043] Figure 8 It is a schematic flowchart of the data query method in another embodiment;
[0044] Figure 9It is a structural block diagram of a data query device in an embodiment;
[0045] Figure 10 It is an internal structure diagram of a computer device in an embodiment. Specific implementation manners
[0046] In order to make the objectives, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0047] Generally, in the field of data storage, a storage area can be divided into several logical volumes, each logical volume can be further divided into multiple logical blocks, and each logical block corresponds to a logical block address. By converting the logical block address, the corresponding physical address can be determined, so that data can be obtained from the physical storage space corresponding to the physical address. With the iterative update of data, the same data may correspond to multiple different versions of snapshot data. Therefore, the physical address for storing each version of the snapshot data can be determined according to the logical volume identifier, the logical block address, and the version identifier of the snapshot data, and then the snapshot data can be determined according to the physical address.
[0048] In the related art, the storage addresses of different versions of snapshot data can be stored in a key-value database (KVDB) in the form of key-value pairs. KVDB is a database that stores data in the form of key-value (KV). It uses a B+ tree as the storage structure. KVDB includes multiple storage levels: a memory table, an L0 layer, and a Btree layer (L1 layer, L2 layer, L3 layer). When a KV is inserted into KVDB, it is first stored in the memory table. When the amount of data in the memory table reaches a threshold, the KV will sink to the L0 layer and finally sink to the L3 layer of the Btree layer. Among them, the memory table is a storage level stored in the memory, and the L0 layer and the Btree layer are storage levels stored on the disk. The L0 layer and the Btree layer include multiple sorted string tables (SSTs), and the KV is actually stored in each SST. Generally, different versions of snapshot data of the same data are stored in a tiled manner in each SST according to the generation order. Therefore, when searching for the Value corresponding to the highest version of the snapshot data from KVDB through the Key, it is necessary to traverse all key-value pairs in each SST, and cross-SST searching may be required during the search, resulting in a relatively large search range and low query efficiency.
[0049] In view of this, the present application proposes a data query method. First, the server receives a data query request, which includes a Key and a storage level identifier. Then, according to the Key and the storage level identifier, the target SST is determined from each SST. After that, according to the Key and the target SST, the target Value corresponding to the Key is determined. The target Value is used to represent the storage location of the highest version data among the version data. Since the storage locations of the version data corresponding to the Key are stored in the target SST, by comparing the Key with the KVs corresponding to the version data included in the target SST, the KV corresponding to the highest version data can be determined, and thus the target Value corresponding to the Key can be quickly determined. In the process of determining the target Value, it is not necessary to compare the Key with the KVs in multiple SSTs, so it is not necessary to access multiple SSTs, avoiding the problem of frequent access and long query time caused by cross-SST queries, and thus improving the data query efficiency.
[0050] The data query method provided by the embodiments of the present application can be applied to an Figure 1 illustrated implementation environment. This implementation environment includes a server, which can be implemented by an independent server or a server cluster composed of multiple servers. The data storage system can store the data that the server needs to process. The data storage system can be integrated on the server, or placed in the cloud or other network servers. Among them, the server first receives a data query request, which includes a key Key and a storage level identifier. The storage level corresponding to the storage level identifier includes multiple sorted string tables SSTs. Then, according to the Key and the storage level identifier, the target SST is determined from each SST. The storage locations of the version data corresponding to the Key are stored in the target SST. After that, according to the Key and the target SST, the target value Value corresponding to the Key is determined. The target Value is used to represent the storage location of the highest version data among the version data.
[0051] In other possible implementation manners, the data query method provided by the embodiments of the present application can also be applied to a terminal, which can be, but is not limited to, various personal computers, laptop computers, smart phones, tablet computers, Internet of Things devices, and portable wearable devices. The Internet of Things devices can be smart speakers, smart TVs, smart air conditioners, smart in-vehicle devices, etc. The portable wearable devices can be smart watches, smart bracelets, head-mounted devices, etc.
[0052] In an exemplary embodiment, as Figure 2 shown, a data query method is provided. Taking the method applied to the Figure 1 server as an example for illustration, it includes the following steps 201-step 203.
[0053] Step 201, receive a data query request, where the data query request includes a key (Key) and a storage level identifier, and the storage level corresponding to the storage level identifier includes multiple sorted string tables (SSTs).
[0054] Among them, the data query request refers to an operation request received by the server through the network. The server can perform operations such as retrieving or updating the data stored in the database according to the data query request.
[0055] It should be noted that when querying data from the KVDB, it is a single-item query for the Key, starting from the starting level and querying layer by layer downwards. Therefore, in order to improve the query efficiency, the data query request can include the Key and the storage level identifier. Among them, the Key can include information such as the logical volume identifier corresponding to the data to be queried, the logical block address, and the version identifier of the snapshot data. The storage level identifier refers to the identifier information of the storage level corresponding to the Key in the KVDB. For example, the storage level identifier can be layer L0, Btree layer, layer L1, layer L2, layer L3.
[0056] Among them, the SST is a data storage structure used to store KVs in the KVDB. Each storage level can include multiple SSTs, and each SST can store multiple KVs. When generating the SST, each SST can be extended into several pages to store different versions of KVs corresponding to the same data.
[0057] In this embodiment, the server can obtain the Key and the storage level identifier corresponding to the data query request by parsing the network data query request.
[0058] Step 202, determine the target SST from each SST according to the Key and the storage level identifier, where the target SST stores the storage locations of each version of the data corresponding to the Key.
[0059] Among them, the target SST refers to the SST that stores the Key included in the data query request. In the target SST, the storage locations of different versions of the data corresponding to the Key can be stored. For example, if the Key corresponds to 5 versions of snapshot data, the storage locations of the 5 snapshot data can be stored in the same SST. Among the multiple KVs included in each SST, some may correspond to the same Key, and some may correspond to different Keys.
[0060] It should be noted that the embodiments of the present application are directed to an application scenario of querying the storage address of the snapshot data of the highest version from the KVDB according to the Key. If the storage addresses of the snapshot data of different versions of the same data are stored in different SSTs, when determining the corresponding Value of the highest version according to the Key, it is necessary to compare the Key with the KVs stored in multiple SSTs, and it is impossible to compare the Key with the KVs stored in the same SST, resulting in low query efficiency.
[0061] Therefore, in this embodiment, the storage addresses of the snapshot data of different versions of the same data are stored in the same SST. In this way, after determining the target SST from each SST included in the storage layer corresponding to the storage layer identifier according to the Key, the Key can be compared with the KVs stored in the target SST, and the Value of the highest version can be quickly found.
[0062] It can be understood that in the actual usage scenario, the maximum number of versions of each data existing at the same time does not exceed 2048. It can be estimated according to a maximum of 2048 KVs. When generating the SST, 8 pages can be expanded, and the capacity of each page is 8KB. In this way, it can be ensured that the snapshot data of different versions of the same data do not cross SST storage when merging and sinking. Therefore, when determining the storage location of the highest version data, it can be achieved that the version queried is the highest version, and there is no need to continue to search backward, improving the query efficiency.
[0063] In this embodiment, the server can determine the target storage layer according to the storage layer identifier, then compare the Key with the Keys of the KVs stored in each SST included in the target storage layer, and then determine the SST where the consistent Key is located as the target SST.
[0064] Step 203: Determine the target Value corresponding to the Key according to the Key and the target SST. The target Value is used to represent the storage location of the highest version data among the data of each version.
[0065] Among them, the data of each version refers to the snapshot data of different versions of the target data corresponding to the Key, and the highest version data is the snapshot data of the latest version. The target Value refers to the storage address of the storage location of the snapshot data of the highest version, and this storage address can be a logical address. According to the target Value, the storage location of the snapshot data of the highest version corresponding to the Key in the storage space can be determined, so that the snapshot data of the highest version can be obtained from this storage location.
[0066] It should be noted that the target KVs in the target SST that are the same as the Key included in the data query request correspond to different versions, and the version identifiers of each version are different. For example, if there are 4 target KVs in the target SST, the version identifiers corresponding to each KV can be S1, S2, S3, and S4. Therefore, the KV with the highest version can be determined according to the version identifier.
[0067] In this embodiment, the server can filter out multiple candidate KVs that are the same as the Key from the multiple KVs included in the target SST according to the Key, and then filter out the target KV with the highest version from each candidate KV. Then, the Value corresponding to the target KV with the highest version is determined as the target Value.
[0068] As a possible implementation, in order to maximize the query performance, affinity optimization can be performed for the memory source. That is, the memory and the CPU are distributed on different NUMA (Non Uniform Memory Access) of different non-uniform memory access architectures. Then, the CPU on the specified NUMA accesses the memory of this NUMA most efficiently. Therefore, when querying the storage address of the snapshot data with the highest version, the query thread can be bound to the CPU specified by the query thread, that is, run on the specified NUMA. Then, the KVDB database to be queried by this query thread is stored in the memory space corresponding to this NUMA.
[0069] Exemplarily, if thread 0 is bound to NUMA0, CPU0, and KVDB0, then thread 0 is the query thread. When responding to the data query request, the KVDB accessed is the memory space corresponding to NUMA0. Thus, the loss of the query thread accessing the memory across NUMA is eliminated, the access speed is increased, and the most efficient memory access is achieved.
[0070] In the above data query method, the server first receives a data query request, which includes a Key and a storage level identifier. Then, according to the Key and the storage level identifier, the target SST is determined from each SST. Then, according to the Key and the target SST, the target Value corresponding to the Key is determined. The target Value is used to represent the storage location of the highest version data in each version of the data. Since the storage locations of each version of the data corresponding to the Key are stored in the target SST, by comparing the Key with the KVs corresponding to each version of the data included in the target SST, the KV corresponding to the highest version data can be determined, and thus the target Value corresponding to the Key can be quickly determined. In the process of determining the target Value, it is not necessary to compare the Key with the KVs in multiple SSTs, so it is not necessary to access multiple SSTs, avoiding the problem of frequent access and long query time caused by cross-SST query, and thus improving the data query efficiency.
[0071] In one embodiment, based on Figure 2 the embodiment shown, refer to Figure 3 , Key includes the target LBA and the target version identifier, the target SST includes an index block and a plurality of data blocks, and this embodiment relates to the process in which the server determines the target Value corresponding to the Key according to the Key and the target SST. As Figure 3 shown, step 203 includes Figure 3 the steps 301 and 302 shown in
[0072] Step 301, according to the target LBA and the index block, determine the target data block corresponding to the target LBA from each data block, and the index block includes the corresponding relationship between each data block and each LBA.
[0073] Among them, the target LBA refers to the logical block address storing the target data corresponding to the Key. In this embodiment, the target LBA is used as the query identifier to determine the target SST and the target Value. It should be noted that each SST can store the relevant information of different versions corresponding to multiple data. In this embodiment, multiple data can be distinguished according to the LBA identifier. For example, the SST includes LBA0, LBA, LBA2, indicating that the SST includes the relevant information of different versions corresponding to 3 data.
[0074] An SST may include an index block (IndexBlock) and a plurality of data blocks. Among them, the index block is used to store the index information of the Key to quickly locate the specific data in the data block. In the index block, the corresponding relationship between each data block and the corresponding LBA can be stored, and the storage form can be LBA identifier - data block identifier. For example, LBA0 - DataBlock0, LBA1 - DataBlock1.
[0075] The data block is used to store the data information of the Value. Each data block may include the corresponding relationship between the LBA corresponding to the data block and different versions of the Value, and the storage form can be LBA identifier - version identifier - Value. For example, LBA0 - S0 - Value0, LBA0 - S1 - Value1, LBA0 - S2 - Value2.
[0076] Among them, the target data block refers to the data block storing the target Value corresponding to the target LBA.
[0077] In this embodiment, the server can determine the same LBA identifier from the multiple corresponding relationships included in the index block according to the LBA identifier of the target LBA, and then determine the data block corresponding to the same LBA identifier as the target data block.
[0078] Step 302: Determine the target Value according to the target version identifier and the target data block.
[0079] Among them, the target version identifier refers to the identification information of the version data included in the Key. For example, the target version identifier can be S1, S2, S3, etc. Among them, the target Value refers to the logical address of the storage location of the highest version data in each version data.
[0080] In this embodiment, the server can compare the target version identifier with the version identifiers in the multiple corresponding relationships included in the target data block, and then determine the target Value according to the comparison result. Exemplarily, if the target version identifier is S3, and the version identifiers in the multiple corresponding relationships included in the target data block are S0, S1, S2, S3, S4, S5 respectively, then S5 can be determined as the version identifier of the highest version data, and the Value corresponding to S5 can be determined as the target Value.
[0081] In this embodiment, the server determines the target data block corresponding to the target LBA from each data block according to the target LBA and the index block, and then determines the target Value according to the target version identifier and the target data block. Since the index block includes the corresponding relationships between each data block and each LBA, the target data block can be quickly determined according to this corresponding relationship, so that the highest version identifier can be quickly determined from the target data block according to the target version identifier, and the Value corresponding to the highest version identifier can be determined as the target Value, thereby improving the efficiency of determining the target Value.
[0082] In one embodiment, based on Figure 3 the embodiment shown, refer to Figure 4 , the target data block includes the version identifiers of each version data and the Value corresponding to each version identifier. This embodiment relates to the process of the server determining the target Value according to the target version identifier and the target data block. As Figure 4 shown, step 302 includes Figure 4 the steps 401 and 402 shown.
[0083] Step 401: Determine the difference between the target version identifier and each version identifier.
[0084] It can be understood that the larger the version identifier of different versions corresponding to the same data, the higher the version corresponding to this version identifier. Therefore, when determining the target Value corresponding to the highest version data in each version data, the difference between the target version identifier and each version identifier can be calculated, and the target Value can be determined according to the difference.
[0085] In this embodiment, the server can calculate the difference between the target version identifier and each version identifier respectively, so as to determine the difference between the target version identifier and each version identifier.
[0086] Step 402, determine the Value corresponding to the version identifier with the largest difference as the target Value.
[0087] It can be understood that according to the difference between the target version identifier and each version identifier, the version difference between the version data corresponding to each version identifier and the version data corresponding to the target version identifier can be determined. Therefore, the larger the difference, the higher the corresponding version can be determined.
[0088] In this embodiment, the server can determine the version identifier corresponding to the highest version data as the version identifier with the largest difference, so as to determine the Value corresponding to this version identifier as the target Value.
[0089] In this embodiment, by determining the difference between the target version identifier and each version identifier, the server can determine the Value corresponding to the version identifier with the largest difference as the target Value. Since the process of determining the difference between the target version identifier and each version identifier is relatively simple, and the highest version identifier can be accurately determined according to the difference between the target version identifier and each version identifier, the Value corresponding to the highest version identifier can be accurately determined as the target Value, thereby improving the efficiency and accuracy of determining the target Value.
[0090] In one embodiment, based on Figure 2 the embodiment shown, see Figure 5 , this embodiment relates to the process in which the server determines the target SST from each SST according to the Key and the storage level identifier. As Figure 5 shown, step 202 includes Figure 5 the steps 501-step 503 shown.
[0091] Step 501, determine the layer type of the storage layer according to the storage level identifier.
[0092] It should be noted that in the process of determining the target SST from each SST according to the Key and the storage level identifier, in order to avoid invalid queries and waste of memory access resources caused by the non-existence of the target SST in the storage layer corresponding to the storage level identifier, the Key can be filtered by using a filter first to improve the hit probability of the target SST.
[0093] Since KVDB includes multiple different storage levels, for example, the L0 level and the Btree level, the storage structures of different storage levels are different, and for different storage levels, the filtering methods are also different. Therefore, it is necessary to first determine the level type of the storage level. Among them, the level type can be the L0 level, or the level type can also be the Btree level.
[0094] In this embodiment, the server can perform a text comparison between the storage level identifier and the level identifiers of each storage level. If the comparison result is consistent, the level type corresponding to the storage level identifier can be determined. Exemplarily, if the storage level identifier is L0, the level type can be determined to be the L0 level; if the storage level identifier is L1, or L2, or L3, the level type can be determined to be the Btree level.
[0095] Step 502, perform a verification on the target LBA according to the verification method corresponding to the level type to obtain a verification result.
[0096] Among them, the verification method refers to the method of verifying between the Key and the storage level corresponding to the storage level identifier. For example, the verification method can be to filter the target LBA included in the Key by using the filter corresponding to the storage level; or the verification method can also be to filter the target LBA included in the Key by using the filters corresponding to each SST included in the storage level. In this embodiment, according to the verification result, it can be determined whether there is a target SST in the storage level corresponding to the storage level identifier.
[0097] In this embodiment, the server can determine the verification method of the storage level corresponding to the storage level identifier according to the level type, and then use this verification method to filter the target LBA, and determine the filtering result as the verification result.
[0098] Optionally, if the verification result is verification passed, it can be determined that there is a target SST in the storage level corresponding to the storage level identifier; if the verification result is verification failed, it can be determined that there is no target SST in the storage level corresponding to the storage level identifier.
[0099] Step 503, if the verification result is verification passed, determine the target SST from each SST according to the Key.
[0100] In this embodiment, the server can, when the verification result is verification passed, determine that there is a target SST in the storage level corresponding to the storage level identifier, and then determine the target SST from each SST according to the Key.
[0101] In this embodiment, the server first determines the layer type of the storage layer according to the storage layer identifier. Then, according to the verification method corresponding to the layer type, it verifies the target LBA to obtain a verification result. After that, when the verification result is verified to pass, it can determine the target SST from each SST according to the Key, thus avoiding the problem of invalid query and wasting access resources caused by the non-existence of the target SST in the storage layer determined by the storage layer identifier, and further saving access resources and improving access efficiency.
[0102] In one embodiment, based on Figure 5 the embodiment shown, refer to Figure 6 , when the layer type is the first type, this embodiment involves the process in which the server verifies the target LBA according to the verification method corresponding to the layer type to obtain a verification result. As Figure 6 shown, step 502 includes Figure 6 the steps 601 and - step 603 shown.
[0103] Step 601, when the layer type is the first type, determine the target verification information corresponding to the target LBA.
[0104] Among them, the first type can be the L0 layer, which is a storage layer that stores all SSTs in a tiled manner. For the storage layer of the L0 layer, filters can be set for all SSTs in the L0 layer. In this way, when querying each SST included in the L0 layer, it can be determined whether the target SST is not in the L0 layer through one filtering process. Usually, the verification can be performed by comparing the verification information corresponding to the target LBA with the filter.
[0105] Among them, the target verification information corresponding to the target LBA can be a hash value, or it can also be a cyclic redundancy check code. This embodiment does not limit this.
[0106] In this embodiment, the server can calculate the target LBA using the same verification algorithm as the verification method when the layer type is the first type to obtain the target verification information of the target LBA.
[0107] Step 602, match the target verification information with the standard verification information corresponding to each LBA in the preset Bloom filter, and each LBA corresponds to multiple SSTs included in the storage layer of the first type.
[0108] Among them, a Bloom filter is a probabilistic data structure used to quickly determine whether an element is in a set. The Bloom filter uses a fixed-size bit array, and initializes the value of each position in the array to 0. When an element is to be added to the Bloom filter, the element is mapped to different positions in the bit array through multiple hash functions, and the corresponding bits are set to 1, indicating that the element exists in the set. When performing data filtering, if the values at all query positions in the array are 1, it is considered that the element may exist in the set; if the value at any query position in the array is not 1, it is considered that the element must not exist in the set. In this embodiment, the hash function can be used to calculate the hash value corresponding to each LBA included in the first type of storage hierarchy respectively, and each hash value corresponds to a position in the array, so as to map each LBA to each position in the array, and obtain the Bloom filter corresponding to the first type of storage hierarchy.
[0109] Among them, the standard verification information corresponding to each LBA respectively refers to the verification information corresponding to each LBA. Each LBA is the LBA included in the Key stored in multiple SSTs included in the first type of storage hierarchy.
[0110] In this embodiment, the server can compare the target verification information with the standard verification information corresponding to each LBA in the preset Bloom filter respectively, and determine whether the target verification information matches the standard verification information corresponding to each LBA according to the comparison result.
[0111] Step 603, if there is verification information that is the same as the target verification information among the standard verification information, determine that the verification result is verification passed.
[0112] Among them, verification passed can indicate that there may be a target SST corresponding to the Key among multiple SSTs included in the first type of storage hierarchy.
[0113] In this embodiment, the server can determine that there is verification information that is the same as the target verification information among the standard verification information when the values of the standard verification information corresponding to each LBA in the preset Bloom filter in the array are all 1, so as to determine that the verification result is verification passed.
[0114] In this embodiment, when the layer type is the first type, first, the server determines the target verification information corresponding to the target LBA. Then, it matches the target verification information with the standard verification information corresponding to each LBA in the preset Bloom filter. Subsequently, when there is verification information in the standard verification information that is the same as the target verification information, it determines that the verification result is passed. Since each LBA corresponds to multiple SSTs included in the storage layer of the first type, by matching the target verification information with the standard verification information corresponding to each LBA in the preset Bloom filter, it can quickly determine whether there is verification information in the standard verification information that is the same as the target verification information, thereby determining that the target SST may exist in the storage layer corresponding to the first type, and further avoiding the problem of invalid queries caused by the non-existence of the target SST in the storage layer corresponding to the first type, saving access resources.
[0115] In one embodiment, based on Figure 5 the embodiment shown, see Figure 7 , when the layer type is the second type, this embodiment involves the process in which the server determines the target SST from each SST according to the Key. As Figure 7 shown, step 503 includes Figure 7 the steps 701 and - step 703 shown.
[0116] Step 701, when the layer type is the second type, determine the target identifier corresponding to the Key and the first identifier range corresponding to the storage layer of the second type.
[0117] Among them, the second type can be the Btree layer, and the storage structure of the Btree layer is a tree structure, which can include the L1 layer, the L2 layer, and the L3 layer. It should be noted that due to the storage structure of the Btree layer, when determining the target SST from the Btree layer, it is necessary to determine the target storage node storing the target SST from the tree structure of the Btree layer, and then determine the target SST from the target storage node. In this embodiment, the target storage node can be determined according to the target identifier corresponding to the Key and the identifier range corresponding to the Btree layer.
[0118] Among them, the target identifier corresponding to the Key refers to the number corresponding to the Key. For example, the target identifier can be 60, and the first identifier range is the number range corresponding to the Btree layer. For example, the first identifier range can be [1, 100].
[0119] In this embodiment, the server can, when the layer type is the second type, obtain the correspondence between the preset Key and the identifier from the metadata of the KVDB, then determine the target identifier corresponding to the Key from this correspondence, and obtain the first identifier range from the metadata.
[0120] Step 702: Determine a target storage node from the second type of storage hierarchy according to the target identifier and the first identifier range.
[0121] The target storage node is a leaf node in the Btree layer, and the target SST corresponding to the stored Key is included in the target storage node.
[0122] In this embodiment, the server can use the binary search method to determine the tree node BtreeNode corresponding to the target storage node from the second type of storage hierarchy according to the target identifier and the first identifier range. Then, continue to use the binary search method to determine the sub-node SubNode from the nodes subordinate to the tree node, and then determine the sub-node as the target storage node.
[0123] Step 703: Determine the target SST from the multiple SSTs included in the target storage node according to the target identifier and the second identifier range corresponding to the target storage node.
[0124] In the tree structure of the Btree layer, each leaf node may include multiple SSTs. Therefore, in this embodiment, it is also necessary to further determine the target SST from the target storage node.
[0125] The second identifier range refers to the number range corresponding to the target storage node. For example, if the number range of the Btree layer is [1, 100] and the target identifier is 60, the second identifier range may be [51, 75].
[0126] In this embodiment, the server can determine the SST identifier range corresponding to the multiple SSTs included in the target storage node according to the second identifier range of the target storage node. Then, determine the SST corresponding to the SST identifier range including the target identifier as the target SST. Exemplarily, if the target storage node includes 3 SSTs, the SST identifier range corresponding to each SST may be SST1: [51, 58], SST2: [59, 66], SST3: [67, 75]. Further, it can be determined that the target SST corresponding to the Key is SST2.
[0127] In this embodiment, when the hierarchical type of the server is the second type, first, the target identifier corresponding to the Key and the first identifier range corresponding to the storage hierarchy of the second type are determined. Then, according to the target identifier and the first identifier range, the target storage node is determined from the storage hierarchy of the second type. Then, according to the target identifier and the second identifier range corresponding to the target storage node, the target SST is determined from the multiple SSTs included in the target storage node. Since in the process of determining the target SST, the target storage node can be accurately determined according to the storage structure of the storage hierarchy of the second type, the target identifier corresponding to the Key, and the first identifier range corresponding to the storage hierarchy of the second type, the target SST can be accurately determined, improving the accuracy of determining the target SST.
[0128] In one embodiment, a data query method for a server is provided. As Figure 8 shown, the method includes the following steps:
[0129] Step 801, receive a data query request, where the data query request includes a Key and a storage hierarchy identifier, and the Key includes a target LBA and a target version identifier.
[0130] Step 802, determine the hierarchical type of the storage hierarchy according to the storage hierarchy identifier.
[0131] Step 803, when the hierarchical type is L0, determine the target check information corresponding to the target LBA.
[0132] Step 804, match the target check information with the standard check information corresponding to each LBA in the preset Bloom filter.
[0133] Step 805, if there is check information that is the same as the target check information among the standard check information, determine that the check result is passed, and determine the target SST from each SST according to the Key.
[0134] Step 806, when the hierarchical type is the Btree layer, determine the target number corresponding to the Key and the first number range corresponding to the Btree layer.
[0135] Step 807, determine the target storage node from the Btree layer according to the target number and the first number range.
[0136] Step 808, determine the target SST from the multiple SSTs included in the target storage node according to the target number and the second number range corresponding to the target storage node.
[0137] Step 809: Determine the target data block corresponding to the target LBA from each data block included in the target SST according to the target LBA and the index blocks included in the target SST. The target data block includes the version identifiers of each version of data and the Values corresponding to each version identifier.
[0138] Step 8010: Determine the differences between the target version identifier and each version identifier.
[0139] Step 8011: Determine the Value corresponding to the version identifier with the largest difference as the target Value.
[0140] It should be understood that although the steps in the flowcharts involved in the above embodiments are sequentially shown according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless there is a clear description in this article, the execution of these steps has no strict order limit, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily executed at the same moment, but can be executed at different moments. The execution order of these steps or stages is not necessarily sequential, but can be executed alternately or in turn with at least a part of other steps or steps or stages in other steps.
[0141] Based on the same inventive concept, an embodiment of the present application also provides a data query device for implementing the data query method involved above. The implementation solutions provided by this device to solve problems are similar to the implementation solutions recorded in the above method. Therefore, the specific limitations in one or more embodiments of the data query device provided below can refer to the limitations on the data query method in the above text, and will not be repeated here.
[0142] In an exemplary embodiment, as Figure 9 shown, a data query device is provided, including:
[0143] A receiving module 901, configured to receive a data query request, where the data query request includes a key Key and a storage level identifier, and the storage level corresponding to the storage level identifier includes a plurality of sorted string tables SSTs;
[0144] A first determination module 902, configured to determine a target SST from each SST according to the Key and the storage level identifier, where the target SST stores the storage locations of each version of data corresponding to the Key;
[0145] A second determination module 903, configured to determine a target value Value corresponding to the Key according to the Key and the target SST, where the target Value is used to represent the storage location of the highest version of data among each version of data.
[0146] In one embodiment, the Key includes a target LBA and a target version identifier, the target SST includes an index block and a plurality of data blocks, and the second determination module 903 includes:
[0147] A first determination unit, configured to determine, according to the target LBA and the index block, a target data block corresponding to the target LBA from each data block, where the index block includes the corresponding relationship between each data block and each LBA;
[0148] A second determination unit, configured to determine a target Value according to the target version identifier and the target data block.
[0149] In one embodiment, the target data block includes version identifiers of each version of data and Values corresponding to each version identifier. The second determination unit is specifically configured to:
[0150] Determine the difference between the target version identifier and each version identifier;
[0151] Determine the Value corresponding to the version identifier with the largest difference as the target Value.
[0152] In one embodiment, the first determination module 902 includes:
[0153] A third determination unit, configured to determine the layer type of the storage layer according to the storage layer identifier;
[0154] An inspection unit, configured to perform a check on the target LBA according to the check method corresponding to the layer type to obtain a check result;
[0155] A fourth determination unit, configured to, if the check result is that the check passes, determine a target SST from each SST according to the Key.
[0156] In one embodiment, the inspection unit is specifically configured to:
[0157] In the case where the layer type is the first type, determine target check information corresponding to the target LBA;
[0158] Match the target check information with the standard check information respectively corresponding to each LBA in a preset Bloom filter, where each LBA corresponds to a plurality of SSTs included in the storage layer of the first type;
[0159] If there is check information in the standard check information that is the same as the target check information, determine that the check result is that the check passes.
[0160] In one embodiment, the fourth determination unit is specifically configured to:
[0161] When the hierarchy type is the second type, determine the target identifier corresponding to the Key and the first identifier range corresponding to the storage hierarchy of the second type;
[0162] Determine the target storage node from the storage hierarchy of the second type according to the target identifier and the first identifier range;
[0163] Determine the target SST from the multiple SSTs included in the target storage node according to the target identifier and the second identifier range corresponding to the target storage node.
[0164] Each module in the above data query device can be implemented in whole or in part by software, hardware, and their combination. Each of the above modules can be embedded in the processor in the server in hardware form or be independent of it, or be stored in the memory in the server in software form, so that the processor can call and execute the operations corresponding to each of the above modules.
[0165] In an exemplary embodiment, a computer device is provided. The computer device can be a server, and its internal structure diagram can be as Figure 10 shown. The computer device includes a processor, a memory, an input / output interface (Input / Output, abbreviated as I / O), and a communication interface. Among them, the processor, the memory, and the input / output interface are connected through a system bus, and the communication interface is connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The database of the computer device is used to store SST data. The input / output interface of the computer device is used for the processor to exchange information with external devices. The communication interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, it implements a data query method.
[0166] Those skilled in the art can understand that Figure 10 the structure shown in
[0167] In an exemplary embodiment, a computer device is provided, including a memory and a processor. A computer program is stored in the memory. When the processor executes the computer program, the following steps are implemented:
[0168] Receive a data query request, where the data query request includes a key (Key) and a storage level identifier. The storage level corresponding to the storage level identifier includes multiple sorted string tables (SSTs).
[0169] Determine a target SST from each SST according to the Key and the storage level identifier. The target SST stores the storage locations of each version of the data corresponding to the Key.
[0170] Determine a target value (Target Value) corresponding to the Key according to the Key and the target SST. The Target Value is used to represent the storage location of the highest version of the data among each version of the data.
[0171] In one embodiment, when the processor executes the computer program, the following steps are specifically implemented:
[0172] Determine a target data block corresponding to the target logical block address (LBA) from each data block according to the target LBA and the index block. The index block includes the corresponding relationship between each data block and each LBA.
[0173] Determine the target Value according to the target version identifier and the target data block.
[0174] In one embodiment, when the processor executes the computer program, the following steps are specifically implemented:
[0175] Determine the difference between the target version identifier and each version identifier.
[0176] Determine the Value corresponding to the version identifier with the largest difference as the target Value.
[0177] In one embodiment, when the processor executes the computer program, the following steps are specifically implemented:
[0178] Determine the layer type of the storage level according to the storage level identifier.
[0179] Perform a check on the target LBA according to the check method corresponding to the layer type to obtain a check result.
[0180] If the check result is a pass, determine the target SST from each SST according to the Key.
[0181] In one embodiment, when the processor executes the computer program, the following steps are specifically implemented:
[0182] In the case where the layer type is the first type, determine the target check information corresponding to the target LBA.
[0183] Match the target check information with the standard check information respectively corresponding to each LBA in the preset Bloom filter. Each LBA corresponds to multiple SSTs included in the storage level of the first type.
[0184] If there is a verification information that is the same as the target verification information in each standard verification information, determine that the verification result is verification passed.
[0185] In one embodiment, when the processor executes the computer program, the following steps are specifically implemented:
[0186] In the case where the hierarchy type is the second type, determine the target identifier corresponding to the Key and the first identifier range corresponding to the storage hierarchy of the second type;
[0187] According to the target identifier and the first identifier range, determine the target storage node from the storage hierarchy of the second type;
[0188] According to the target identifier and the second identifier range corresponding to the target storage node, determine the target SST from the multiple SSTs included in the target storage node.
[0189] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented:
[0190] Receive a data query request, where the data query request includes a key Key and a storage hierarchy identifier, and the storage hierarchy corresponding to the storage hierarchy identifier includes multiple sorted string tables SSTs;
[0191] According to the Key and the storage hierarchy identifier, determine the target SST from each SST. The target SST stores the storage locations of each version of the data corresponding to the Key;
[0192] According to the Key and the target SST, determine the target value Value corresponding to the Key. The target Value is used to represent the storage location of the highest version of the data among each version of the data.
[0193] In one embodiment, when the computer program is executed by the processor, the following steps are specifically implemented:
[0194] According to the target LBA and the index block, determine the target data block corresponding to the target LBA from each data block. The index block includes the corresponding relationship between each data block and each LBA;
[0195] Determine the target Value according to the target version identifier and the target data block.
[0196] In one embodiment, when the computer program is executed by the processor, the following steps are specifically implemented:
[0197] Determine the difference between the target version identifier and each version identifier;
[0198] Determine the Value corresponding to the version identifier with the largest difference as the target Value.
[0199] In one embodiment, when the computer program is executed by a processor, the following steps are specifically implemented:
[0200] Determine the hierarchical type of the storage hierarchy according to the storage hierarchy identifier;
[0201] Check the target LBA according to the verification method corresponding to the hierarchical type to obtain a verification result;
[0202] If the verification result is a pass, determine the target SST from each SST according to the Key.
[0203] In one embodiment, when the computer program is executed by a processor, the following steps are specifically implemented:
[0204] In the case where the hierarchical type is the first type, determine the target verification information corresponding to the target LBA;
[0205] Match the target verification information with the standard verification information respectively corresponding to each LBA in the preset Bloom filter, and each LBA corresponds to multiple SSTs included in the storage hierarchy of the first type;
[0206] If there is verification information that is the same as the target verification information among the standard verification information, determine that the verification result is a pass.
[0207] In one embodiment, when the computer program is executed by a processor, the following steps are specifically implemented:
[0208] In the case where the hierarchical type is the second type, determine the target identifier corresponding to the Key and the first identifier range corresponding to the storage hierarchy of the second type;
[0209] According to the target identifier and the first identifier range, determine the target storage node from the storage hierarchy of the second type;
[0210] According to the target identifier and the second identifier range corresponding to the target storage node, determine the target SST from the multiple SSTs included in the target storage node.
[0211] In one embodiment, a computer program product is provided, including a computer program, and when the computer program is executed by a processor, the following steps are implemented:
[0212] Receive a data query request, where the data query request includes a key Key and a storage hierarchy identifier, and the storage hierarchy corresponding to the storage hierarchy identifier includes multiple sorted string tables SSTs;
[0213] According to the Key and the storage hierarchy identifier, determine the target SST from each SST, and the storage locations of each version of the data corresponding to the Key are stored in the target SST;
[0214] Determine the target value Value corresponding to the Key according to the Key and the target SST, and the target Value is used to represent the storage location of the highest version data in each version of data.
[0215] In one embodiment, when the computer program is executed by a processor, the following steps are specifically implemented:
[0216] Determine the target data block corresponding to the target LBA from each data block according to the target LBA and the index block, where the index block includes the corresponding relationship between each data block and each LBA;
[0217] Determine the target Value according to the target version identifier and the target data block.
[0218] In one embodiment, when the computer program is executed by a processor, the following steps are specifically implemented:
[0219] Determine the difference between the target version identifier and each version identifier;
[0220] Determine the Value corresponding to the version identifier with the largest difference as the target Value.
[0221] In one embodiment, when the computer program is executed by a processor, the following steps are specifically implemented:
[0222] Determine the hierarchical type of the storage hierarchy according to the storage hierarchy identifier;
[0223] Perform a check on the target LBA according to the check method corresponding to the hierarchical type to obtain a check result;
[0224] If the check result is a pass, determine the target SST from each SST according to the Key.
[0225] In one embodiment, when the computer program is executed by a processor, the following steps are specifically implemented:
[0226] In the case where the hierarchical type is the first type, determine the target check information corresponding to the target LBA;
[0227] Match the target check information with the standard check information corresponding to each LBA in the preset Bloom filter, where each LBA corresponds to multiple SSTs included in the storage hierarchy of the first type;
[0228] If there is check information in each standard check information that is the same as the target check information, determine that the check result is a pass.
[0229] In one embodiment, when the computer program is executed by a processor, the following steps are specifically implemented:
[0230] In the case where the hierarchical type is the second type, determine the target identifier corresponding to the Key and the first identifier range corresponding to the storage hierarchy of the second type;
[0231] According to the target identifier and the first identifier range, determine the target storage node from the storage hierarchy of the second type;
[0232] According to the target identifier and the second identifier range corresponding to the target storage node, determine the target SST from the multiple SSTs included in the target storage node.
[0233] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the various embodiments provided in the present application can include at least one of non-volatile and volatile memories. Non-volatile memories can include read-only memory (ROM), magnetic tapes, floppy disks, flash memories, optical memories, high-density embedded non-volatile memories, resistive random access memories (ReRAMs), magnetoresistive random access memories (MRAMs), ferroelectric random access memories (FRAMs), phase change memories (PCMs), graphene memories, etc. Volatile memories can include random access memory (RAM) or external cache memories, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The databases involved in the various embodiments provided in the present application can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., and are not limited thereto. The processors involved in the various embodiments provided in the present application can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, data processing logics based on quantum computing, etc., and are not limited thereto.
[0234] The technical features of the above embodiments can be combined arbitrarily. For the sake of concise description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.
[0235] The above embodiments only represent several implementation manners of the present application. The description is relatively specific and detailed, but it should not be construed as a limitation on the patent scope of the present application. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can be made, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the appended claims.
Claims
1. A data query method, characterized in that, The method includes: Receiving a data query request, where the data query request includes a key (Key) and a storage level identifier, and the storage level corresponding to the storage level identifier includes a plurality of sorted string tables (SSTs); Determining a target SST from each of the SSTs according to the Key and the storage level identifier, where the storage locations of each version of the data corresponding to the Key are stored in the target SST; Determining a target value (Value) corresponding to the Key according to the Key and the target SST, where the target Value is used to represent the storage location of the highest version of the data among each version of the data.
2. The method according to claim 1, wherein The Key includes a target logical block address (LBA) and a target version identifier, and the target SST includes an index block and a plurality of data blocks. Determining the target Value corresponding to the Key according to the Key and the target SST includes: Determining a target data block corresponding to the target LBA from each of the data blocks according to the target LBA and the index block, where the index block includes the corresponding relationships between each data block and each LBA; Determining the target Value according to the target version identifier and the target data block.
3. The method according to claim 2, wherein The target data block includes the version identifiers of each version of the data and the Values corresponding to each version identifier. Determining the target Value according to the target version identifier and the target data block includes: Determining the difference between the target version identifier and each of the version identifiers; Determining the Value corresponding to the version identifier with the largest difference as the target Value.
4. The method according to claim 2 or 3, characterized in that, Determining the target SST from each of the SSTs according to the Key and the storage level identifier includes: Determining the level type of the storage level according to the storage level identifier; Performing a check on the target LBA according to the check method corresponding to the level type to obtain a check result; If the check result is a pass, determining the target SST from each of the SSTs according to the Key.
5. The method according to claim 4, wherein Performing a check on the target LBA according to the check method corresponding to the level type to obtain a check result includes: When the level type is the first type, determining the target check information corresponding to the target LBA; Matching the target check information with the standard check information respectively corresponding to each LBA in a preset Bloom filter, where each LBA corresponds to a plurality of SSTs included in the storage level of the first type; If there is check information in each of the standard check information that is the same as the target check information, determining that the check result is a pass.
6. The method according to claim 4, wherein Determining the target SST from each of the SSTs according to the Key includes: When the level type is the second type, determining the target identifier corresponding to the Key and the first identifier range corresponding to the storage level of the second type; Determining a target storage node from the storage level of the second type according to the target identifier and the first identifier range; Determine the target SST from multiple SSTs included in the target storage node according to the target identifier and the second identifier range corresponding to the target storage node.
7. A data query device, characterized in that, The device includes: a receiving module, configured to receive a data query request, where the data query request includes a key and a storage level identifier, and the storage level corresponding to the storage level identifier includes multiple sorted string tables (SSTs); a first determination module, configured to determine a target SST from each of the SSTs according to the key and the storage level identifier, where the storage locations of each version of data corresponding to the key are stored in the target SST; a second determination module, configured to determine a target value Value corresponding to the key according to the key and the target SST, where the target Value is used to represent the storage location of the highest version of data among each version of data.
8. A computer device, comprising a memory and a processor, the memory storing a computer program, characterized in that, When the processor executes the computer program, the steps of the method according to any one of claims 1 to 6 are implemented.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, the steps of the method according to any one of claims 1 to 6 are implemented.
10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, the steps of the method according to any one of claims 1 to 6 are implemented.
Citation Information
Cited By
Quantum key-based searchable encrypted document management method and device, and medium
CN121456916A