CN116955348A - Database index construction method and device - Google Patents
Database index construction method and device Download PDFInfo
- Publication number
- CN116955348A CN116955348A CN202210897014.2A CN202210897014A CN116955348A CN 116955348 A CN116955348 A CN 116955348A CN 202210897014 A CN202210897014 A CN 202210897014A CN 116955348 A CN116955348 A CN 116955348A
- Authority
- CN
- China
- Prior art keywords
- node
- height
- address space
- current node
- nonvolatile memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010276 construction Methods 0.000 title claims abstract description 20
- 238000001514 detection method Methods 0.000 claims abstract description 40
- 238000003780 insertion Methods 0.000 claims abstract description 25
- 230000037431 insertion Effects 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000012795 verification Methods 0.000 claims description 35
- 238000013508 migration Methods 0.000 claims description 27
- 230000005012 migration Effects 0.000 claims description 27
- 230000000750 progressive effect Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 21
- 230000006835 compression Effects 0.000 description 15
- 238000007906 compression Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000009191 jumping Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013142 basic testing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- WVCHIGAIXREVNS-UHFFFAOYSA-N 2-hydroxy-1,4-naphthoquinone Chemical compound C1=CC=C2C(O)=CC(=O)C(=O)C2=C1 WVCHIGAIXREVNS-UHFFFAOYSA-N 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The invention provides a database index construction method and a database index construction device, which belong to the technical field of information storage, wherein the method comprises the following steps: under the condition that a data insertion request is received, inserting data to be inserted into a position to be inserted, if the detection result of the first detection is that the node of the global index is increased, distributing required address space for a newly added node based on the address space of the dynamic random access memory, and if the detection result of the second detection is that the father node of the newly added node is positioned in the nonvolatile memory, inserting the newly added node into the shortcut index; if the occupied space ratio of the dynamic random access memory reaches a preset proportion, migrating the newly added node from the address space of the dynamic random access memory to the address space of the nonvolatile memory; the global index and the shortcut index both adopt a skip list data structure. The invention adopts the jump table data structure, optimizes the index structure of the memory type database, and reduces the space consumption of the index to the DRAM on the premise of ensuring high data response speed.
Description
Technical Field
The present invention relates to the field of information storage technologies, and in particular, to a method and an apparatus for constructing a database index.
Background
Along with the expansion of the data scale in the cloud computing scene, the total amount of data memory required to be carried by the memory type database during operation is also continuously increased. Since the performance of the memory database is directly limited to the amount of memory space it can use, when the size of the data exceeds the memory capacity available to the memory database, the database manager can only choose to increase the storage cost to purchase additional hardware devices to increase the capacity of the DRAM (Dynamic Random Access Memory ), or to sacrifice performance to evict some of the data to disk.
To reduce the problem of database system performance degradation due to data size exceeding available memory capacity, much work has been done around exploiting the locality of data access characteristics to store data partitions, moving cold data from DRAM into secondary storage media. However, although the cold data has been deleted from the DRAM, the database system also needs to keep all the indexes in memory. The DRAM space consumption occupied by the index sometimes reaches more than half of the total space consumption of the database, so how to reduce the space consumption of the index to the DRAM on the premise of ensuring high data response speed is a popular research problem.
Disclosure of Invention
In view of this, the invention provides a database index construction method and device, which are used for solving the problem of DRAM resource waste caused by excessive space occupied by the current index on the premise of ensuring the response speed of data.
To solve the above technical problem, in a first aspect, the present invention provides a database index construction method applied to a hybrid memory system including a dynamic random access memory and a nonvolatile memory, the method comprising:
under the condition that a data insertion request is received, positioning a position to be inserted of data to be inserted in a global index, inserting the data to be inserted into the position to be inserted, and performing first detection on whether nodes of the global index are increased;
if the detection result of the first detection is that the node of the global index is increased, allocating a required address space for a newly-increased node based on the address space of a dynamic random access memory, performing second detection on the position of a father node of the newly-increased node, and if the detection result of the second detection is that the father node of the newly-increased node is positioned in the nonvolatile memory, inserting the newly-increased node into a shortcut index;
acquiring the occupied space ratio of the dynamic random access memory, and if the occupied space ratio of the dynamic random access memory reaches a preset proportion, distributing a required address space for a newly-added node based on the address space of a nonvolatile memory so as to transfer the newly-added node from the address space of the dynamic random access memory to the address space of the nonvolatile memory;
The global index and the shortcut index adopt skip list data structures.
Optionally, in the case of receiving the data insertion request, locating the location in the global index where the data to be inserted is to be inserted includes:
setting the height of a current node according to the height of a starting node, and taking the starting node as an initial current node;
the acquisition step: according to the height of the current node, starting to acquire a next node from the current node as a new current node;
if the current node is not a null pointer and the corresponding key value is smaller than the search code of the data to be inserted, subtracting a preset value from the height of the current node, executing the obtaining step until the current node is a null pointer or the corresponding key value is smaller than the search code of the data to be inserted, and performing a first check on whether the parent node group number of the current node is a null pointer;
if the verification result of the first verification is that the father node group number of the current node is not a null pointer, performing a second verification on whether the height of the current node is zero, if the verification result of the second verification is that the height of the current node is zero, returning to the current node and ending positioning; and if the verification result of the second verification is that the current node height is not zero, subtracting a preset value from the current node height, and executing the obtaining step until the current node height is zero.
Optionally, if the detection result of the second detection is that the parent node of the new node is located in the nonvolatile memory, inserting the new node into the shortcut index includes:
setting a current node as a jump header, and setting the height of the current node as a random height;
if the current node height exceeds the maximum allowable height of the nonvolatile memory, obtaining an exceeding part of the current node height exceeding the maximum allowable height of the nonvolatile memory, setting each item of the parent node array index corresponding to the exceeding part as a skip header, and setting the maximum allowable height of the nonvolatile memory as the current node height.
Optionally, allocating a required address space for the new node based on an address space of a nonvolatile memory to migrate the new node from the address space of the dynamic random access memory to the address space of the nonvolatile memory includes:
and if the father node of the newly added node has a successor node in the dynamic random access memory, determining the successor node as a target node, distributing a required address space for the target node based on the address space of a nonvolatile memory, and migrating the target node from the address space of the dynamic random access memory to the address space of the nonvolatile memory.
Optionally, allocating a required address space for the new node based on an address space of a nonvolatile memory to migrate the new node from the address space of the dynamic random access memory to the address space of the nonvolatile memory includes:
and (3) progressive steps: acquiring the subsequent nodes one by one to serve as current nodes;
if the height of the current node is smaller than the height of the father node of the newly added node in the nonvolatile memory, the current node is migrated to the nonvolatile memory, and the progressive step is executed until the height of the current node is larger than or equal to the height of the father node in the nonvolatile memory.
In a second aspect, the present invention provides a database index construction apparatus applied to a hybrid memory system including a dynamic random access memory and a nonvolatile memory, the apparatus comprising:
the first insertion module is used for positioning the position to be inserted of the data to be inserted in the global index under the condition of receiving the data insertion request, inserting the data to be inserted into the position to be inserted, and carrying out first detection on whether the node of the global index is increased or not;
the second insertion module is configured to, if the detection result of the first detection is that the node of the global index is added, allocate a required address space for a newly added node based on an address space of a dynamic random access memory, perform a second detection on a position of a parent node of the newly added node, and if the detection result of the second detection is that the parent node of the newly added node is located in the nonvolatile memory, insert the newly added node into a shortcut index;
The migration module is used for acquiring the occupied space ratio of the dynamic random access memory, and if the occupied space ratio of the dynamic random access memory reaches a preset proportion, allocating a required address space for a new node based on the address space of a nonvolatile memory so as to migrate the new node from the address space of the dynamic random access memory to the address space of the nonvolatile memory;
the global index and the shortcut index adopt skip list data structures.
Optionally, the first insertion module includes:
the first acquisition unit is used for setting the height of a current node according to the height of a starting node, and taking the starting node as an initial current node;
a second acquisition unit configured to acquire: according to the height of the current node, starting to acquire a next node from the current node as a new current node;
the positioning unit is used for subtracting a preset value from the height of the current node if the current node is not a null pointer and the corresponding key value is smaller than the search code of the data to be inserted, executing the obtaining step until the current node is a null pointer or the corresponding key value is smaller than the search code of the data to be inserted, and performing a first check on whether the parent node group number of the current node is a null pointer;
The positioning unit is further configured to perform a second verification on whether the current node height is zero if the verification result of the first verification is that the parent node group number of the current node is not a null pointer, and return the current node and end positioning if the verification result of the second verification is that the current node height is zero; and if the verification result of the second verification is that the current node height is not zero, subtracting a preset value from the current node height, and executing the obtaining step until the current node height is zero.
Optionally, the first insertion module includes:
setting a current node as a jump header, and setting the height of the current node as a random height;
if the current node height exceeds the maximum allowable height of the nonvolatile memory, obtaining an exceeding part of the current node height exceeding the maximum allowable height of the nonvolatile memory, setting each item of the parent node array index corresponding to the exceeding part as a skip header, and setting the maximum allowable height of the nonvolatile memory as the current node height.
Optionally, the migration module includes:
and the migration unit is used for determining the successor node as a target node if the father node of the newly added node has the successor node in the dynamic random access memory, distributing the required address space for the target node based on the address space of the nonvolatile memory, and migrating the target node from the address space of the dynamic random access memory to the address space of the nonvolatile memory.
Optionally, the migration module includes:
a third acquisition unit for advancing the steps of: acquiring the subsequent nodes one by one to serve as current nodes;
and the stopping unit is used for migrating the current node into the nonvolatile memory if the height of the current node is smaller than that of a father node of the newly added node in the nonvolatile memory, and executing the progressive step until the height of the current node is greater than or equal to that of the father node in the nonvolatile memory.
In a third aspect, the present invention also provides a computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements the steps of any of the database index construction methods of the first aspect described above.
The technical scheme of the invention has the following beneficial effects:
in the embodiment of the invention, the node of the jump table data structure is formed by a plurality of pointer fields, no splitting or merging operation exists in the inserting process, only the modification of the pointer fields is involved, and meanwhile, no free space exists in the node, so that the embodiment of the invention optimizes the index structure of the hybrid memory system comprising the dynamic random access memory and the nonvolatile memory by adopting the jump table data structure, and ensures the high data response speed; when the father node of the new node stored in the address space of the dynamic random access memory is positioned in the nonvolatile memory, the new node is inserted into the shortcut index, and as the jump table in the shortcut index structure can use the search code of the node as the description information of the current node, the child nodes of the current node are indicated to be larger than the current node, thereby the response speed to the new data is accelerated by inserting the new node into the shortcut index; when the occupied space ratio of the dynamic random access memory reaches a preset proportion, the address space required by the newly added node is allocated based on the address space of the nonvolatile memory, and the newly added node is migrated from the address space of the dynamic random access memory to the address space of the nonvolatile memory.
Drawings
FIG. 1 is a flowchart of a database index construction method according to a first embodiment of the present invention;
fig. 2 is a schematic diagram of a jump table structure according to a first embodiment of the present invention;
FIG. 3 is a schematic diagram of experimental results provided in the first embodiment of the present invention;
FIG. 4 is a second schematic diagram of the experimental results provided in the first embodiment of the present invention;
FIG. 5 is a third schematic diagram of the experimental results provided in the first embodiment of the present invention;
FIG. 6 is a diagram showing experimental results provided in the first embodiment of the present invention;
FIG. 7 is a diagram showing experimental results provided in the first embodiment of the present invention;
FIG. 8 is a diagram showing experimental results provided in the first embodiment of the present invention;
FIG. 9 is a diagram of a seventh embodiment of the present invention;
FIG. 10 is a schematic diagram of experimental results provided in the first embodiment of the present invention;
fig. 11 is a schematic structural diagram of a database index construction device according to a second embodiment of the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present invention more clear, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings of the embodiments of the present invention. It will be apparent that the described embodiments are some, but not all, embodiments of the invention. All other embodiments, which are obtained by a person skilled in the art based on the described embodiments of the invention, fall within the scope of protection of the invention.
The related art will be described below.
Along with the expansion of the data scale in the cloud computing scene, the total amount of data memory required to be carried by the memory type database during operation is also continuously increased. Since the performance of the memory database is directly limited to the amount of memory space it can use, when the size of the data exceeds the memory capacity available to the memory database, the database manager can only choose to increase the storage cost to purchase additional hardware devices to increase the capacity of the DRAM (Dynamic Random Access Memory ), or to sacrifice performance to evict some of the data to disk.
To reduce the problem of database system performance degradation due to data size exceeding available memory capacity, much work has been done around exploiting the locality of data access characteristics to store data partitions, moving cold data from DRAM into secondary storage media. For example, the Anti-cache (Anti-cache) architecture of the H-Store utilizes an LRU (Least Recently Used ) mechanism to track the access pattern of data, asynchronously evicting cold data into the Anti-buffer of the disk; voltDB (VoltDB, a memory database providing scalability of NoSQL databases and ACID consistency of traditional relational database systems) utilizes operating system virtual memory mechanisms to migrate cold pages to disk; in the HANA (High-Performance Analytic Appliance, high-performance analysis application) system, all new data is inserted into a line store engine designed for OLTP (On-Line Transaction Processing, online transaction process) workload characteristics, and is moved progressively to the optimized dictionary compressed columnar store as the data ages. The Hyper divides the cold and hot degree of the data further, and the data is divided into hot data, warm data, cold data and unchanged frozen data according to the access frequency of the data, the hot data is placed in a small page capable of being rapidly positioned and inquired, and the frozen data is compressed and moved to a large page of secondary storage, so that efficient snapshot with friendly memory consumption is realized.
However, although the cold data has been deleted from the DRAM, the database system still needs to keep all the indexes in the memory, and the DRAM space consumption occupied by the indexes sometimes reaches more than half of the total space consumption of the database, so how to reduce the space consumption of the indexes to the DRAM is a popular research problem.
The SILT memory system is a flash-based key-value memory system, and high performance and small memory occupation are realized by establishing a multi-level memory hierarchy index structure of different data structures. The first layer of SILT is Log Structured Structure (log storage structure) to support fast read and write; the second layer uses the traditional hash table to buffer, the hash table does not store the complete key, but stores the flag bit of the key to save the memory, when inquiring the key, check whether the flag bit is matched at first, if match, obtain the key value from the magnetic disk and compare; the last layer is a prefix tree, and very little memory overhead can be achieved through a compression algorithm. A dynamic mixed index method of non-relation type carries out dynamic index division according to cold and hot of fields, updates weight of non-primary key fields by counting field access history in period, divides fields into high frequency fields and low frequency fields, builds detailed index for high frequency fields, builds abstract index for low frequency fields, and reduces space overhead for partial index of low frequency fields. In addition, the method saves the occupation of the memory space by the index by establishing a two-stage index structure, wherein the index of the first stage is used for indexing newly added data, periodically triggering a migration algorithm, and moving the data of the first stage into the index structure with high memory efficiency and read optimization of the second stage. These studies differ in how to determine what needs to be migrated and the mechanism by which the data is migrated.
In the above technical solution, the following limitations exist:
1. although the cold data has been deleted from the DRAM, the database system also needs to keep all the indexes in memory. The DRAM space consumption occupied by the index sometimes reaches more than half of the total space consumption of the database, and a great deal of DRAM resources are wasted.
2. The partition storage of the index structure mainly means that different indexes are built for data located on different storage media, so that the cost for managing the index structure is increased, a plurality of indexes are required to be maintained for data migration, and the schema is not beneficial to being applied to various database index structures due to the lack of expansibility.
3. In the prior art, the index structure is rarely stored in areas according to the coldness and hot property of data. Because of the two-level storage medium such as the traditional SSD (Solid State Disk or Solid State Drive, solid State Disk), the read-write delay is too large compared with the DRAM, if the index part is put into the SSD, serious performance loss is likely to be caused.
The generation of new hardware for Non-volatile Memory (NVM) provides the possibility for indexed partitioned storage schemes.
Thus, referring to fig. 1, fig. 1 is a flowchart of a database index construction method according to a first embodiment of the present invention, the method is applied to a hybrid memory system including a dynamic random access memory and a nonvolatile memory, and includes the following steps:
Step 11: under the condition that a data insertion request is received, positioning a position to be inserted of data to be inserted in a global index, inserting the data to be inserted into the position to be inserted, and performing first detection on whether nodes of the global index are increased;
step 12: if the detection result of the first detection is that the node of the global index is increased, allocating a required address space for a newly-increased node based on the address space of a dynamic random access memory, performing second detection on the position of a father node of the newly-increased node, and if the detection result of the second detection is that the father node of the newly-increased node is positioned in the nonvolatile memory, inserting the newly-increased node into a shortcut index;
step 13: acquiring the occupied space ratio of the dynamic random access memory, and if the occupied space ratio of the dynamic random access memory reaches a preset proportion, distributing a required address space for a newly-added node based on the address space of a nonvolatile memory so as to transfer the newly-added node from the address space of the dynamic random access memory to the address space of the nonvolatile memory;
the global index and the shortcut index adopt skip list data structures.
In the embodiment of the invention, the database index construction method comprises two stages, wherein the first stage is a stage of receiving data insertion, when receiving an insertion request of data, the method can start searching for an inserted target node downwards from a root node of a global index, and when the insertion of the data to be inserted causes the node increase of the global index, the method allocates an address space required by a newly added node in a DRAM; if the parent node of the new node is located in the NVM address space, the new node is inserted into the shortcut index for maintenance, so that the response speed to the new data is increased. The second stage is a migration stage, i.e., when the DRAM space occupation reaches a certain proportion, a migration thread is triggered to migrate the newly added node (i.e., the target node) into the NVM space, thereby reducing the space usage of the DRAM.
In this embodiment, the global index and the shortcut index both adopt a skip list data structure, supporting efficient operations of insertion, query and deletion.
In this embodiment, optionally, two index data structures, namely, a global index and a shortcut index, are adopted, where the global index is used to maintain the full data of the database, and is constructed in the NVM address space, and the shortcut index is used to maintain the newly added data and the nodes, so as to speed up the response speed of the query and update of the newly added data.
In this embodiment, optionally, for the globally indexed DRAM node and NVM node, the node of the skip list data structure is composed of multiple pointer fields, there is no splitting or merging operation in the insertion process, only modification of the pointer fields is involved, and there is no free space inside the node.
In this embodiment, optionally, in the case of using a skip list data structure for the shortcut index, the search code of the node may be used as the description information of the current node, which may indicate that all the child nodes of the current node are larger than the current node. Specifically, the jump table maintains the order of the linked list at different levels, and the value of the search code of the subsequent node is larger than that of the current node, so that the search code of the node can be used as the description information of the current node to indicate that all the child nodes of the current node are larger than the current node.
In the embodiment of the invention, the index structure of the hybrid memory system comprising the dynamic random access memory and the nonvolatile memory is optimized by adopting the jump table data structure, and when the father node of the new node stored in the address space of the dynamic random access memory is positioned in the nonvolatile memory, the new node is inserted into the shortcut index; when the occupied space ratio of the dynamic random access memory reaches a preset proportion, the address space required by the newly added node is allocated based on the address space of the nonvolatile memory, and the newly added node is migrated from the address space of the dynamic random access memory to the address space of the nonvolatile memory.
The database index construction method described above is exemplified below.
In the embodiment of the present invention, in the nvm_skip list (non-volatile memory skip list), the Node includes members key, value and height, which respectively represent the search code, data value and Node height of the Node, the next array represents the successor nodes of different levels, and the getNext function and setNext function are respectively used to obtain and set the successor Node value of a certain height. The nvm_skip list has global index root node nvmRoot and shortcut index root node dramRoot, and in addition, the maximum heights of the current two indexes (global index and shortcut index) are recorded respectively by maxnpv mheight (maximum height of non-volatile memory) and maxdram mheight (maximum height of non-volatile memory).
Referring to fig. 2, fig. 2 is a schematic diagram of a jump table structure according to an embodiment of the invention. As shown in fig. 2, when the lookup operation is performed in the skip list of fig. 2, the following flow is included:
step 1.1: recording a current node as a head node head, and recording a current level as the highest height of a jump table (level=4 in a corresponding diagram);
step 1.2: checking a subsequent node of a level layer of the current node, subtracting one from the level if the subsequent node is a null pointer or the search code of the subsequent node is larger than the target search code, and returning to the step 1.2; if the search code value of the subsequent node is smaller than the target search code, the current node is set as the subsequent node, and the step 1.2 is returned; if the search code of the subsequent node is equal to the target search code, the result is returned directly.
The process of executing the insert operation on the jump table is similar to the query process, when finding the insert position, the parent node set is recorded, taking node5 in fig. 2 as an example, the parent node set of node5 is { node4, node2, head }, then a random height value is given to the new node as the number of pointer fields, and then the pointers of the subsequent nodes corresponding to the parent node are modified into the new node.
In an optional specific embodiment, in a case that the data insertion request is received, locating the location where the data to be inserted is to be inserted in the global index includes:
setting the height of a current node according to the height of a starting node, and taking the starting node as an initial current node;
the acquisition step: according to the height of the current node, starting to acquire a next node from the current node as a new current node;
if the current node is not a null pointer and the corresponding key value is smaller than the search code of the data to be inserted, subtracting a preset value from the height of the current node, executing the obtaining step until the current node is a null pointer or the corresponding key value is smaller than the search code of the data to be inserted, and performing a first check on whether the parent node group number of the current node is a null pointer;
If the verification result of the first verification is that the father node group number of the current node is not a null pointer, performing a second verification on whether the height of the current node is zero, if the verification result of the second verification is that the height of the current node is zero, returning to the current node and ending positioning; and if the verification result of the second verification is that the current node height is not zero, subtracting a preset value from the current node height, and executing the obtaining step until the current node height is zero.
Specifically, since each node of the jump table can only store one data, each insertion of new data triggers an increase in nodes. When a new node is constructed, the first step is to locate the target position, and a findGreaterOrequal method can be adopted, and the method specifically comprises the following steps:
step 2.1: subtracting one from the height of the initial node according to the height of the initial node, and setting the initial node as the current height;
step 2.2: acquiring a next node from the initial node according to the current height;
step 2.3: if the next node is not a null pointer and the corresponding key value is smaller than the search code of the data to be inserted, jumping to the step 2.4, otherwise jumping to the step 2.5;
Step 2.4: setting x as the next node, and jumping to step 2.2, wherein x is the assignment of the node pointer in the pseudo code;
step 2.5: if the number of the father node is not a null pointer, setting the value of the subscript of the father node array corresponding to the current height as x;
step 2.6: if the current height is 0, returning to the next node, ending the positioning, otherwise subtracting one from the current height, and jumping to the step 2.2.
In other embodiments of the present invention, if the detection result of the second detection is that the parent node of the new node is located in the nonvolatile memory, inserting the new node into the shortcut index includes:
setting a current node as a jump header, and setting the height of the current node as a random height;
if the current node height exceeds the maximum allowable height of the nonvolatile memory, obtaining an exceeding part of the current node height exceeding the maximum allowable height of the nonvolatile memory, setting each item of the parent node array index corresponding to the exceeding part as a skip header, and setting the maximum allowable height of the nonvolatile memory as the current node height.
In this embodiment, as described above, the skip list node has a parent node array (parent node set) formed by a plurality of parent nodes, and in the first stage of database construction, how to select a node from the parent node set to add to the shortcut index needs to be considered. Taking node5 in fig. 2 as an example, there are three choices for the parent node combination added to the shortcut index, if node4 is selected to be added to the shortcut index, when node5 is migrated to NVM, after the address location is changed, node2 and node head cannot modify the corresponding successor node pointer, and the program may be in error. Therefore, only a parent node of the same level as the node height can be selected, i.e., node head needs to be added to the shortcut index for node5 and node2 needs to be added to the shortcut index for node 3.
Specifically, inserting the newly added node into the shortcut index includes the steps of:
step 3.1: setting the current node as a jump header;
step 3.2: setting x as a node positioned according to a search code of data to be inserted, a previous node and a jump header;
step 3.3: setting the current height as a random height;
step 3.4: if the current height exceeds the maximum height allowed by the NVM, setting the flag to true, otherwise setting the flag to false;
step 3.5: if the current height exceeds the maximum allowed height of the NVM, setting each item of the parent node array index corresponding to the part of the current height exceeding the maximum allowed height of the NVM as a jump header, and setting the maximum allowed height of the NVM as the current height;
step 3.6: if the flag is true or the first item of the parent node array index is the skip header or the last item of the parent node array index is the skip header, turning to step 3.7, otherwise turning to step 3.8;
step 3.7: setting x as the new NVM node, and proceeding to step 3.9:
step 3.8: setting x as a new node, and turning to step 3.9;
step 3.9: for indexes from 0 to the current height, setting the next value of x as the next of the corresponding item in the parent node array index, and setting the corresponding next in the parent node index as x;
Step 3.10: if the flag is true or the first item of the parent node array index is the skip header or the last item of the parent node array index is the skip header, setting the parent node as the last item of the parent node array index, and calling a search code for inserting the shortcut function into the parent node.
In some embodiments of the present invention, allocating a required address space for the new node based on an address space of a nonvolatile memory to migrate the new node from the address space of the dynamic random access memory to the address space of the nonvolatile memory comprises:
and if the father node of the newly added node has a successor node in the dynamic random access memory, determining the successor node as a target node, distributing a required address space for the target node based on the address space of a nonvolatile memory, and migrating the target node from the address space of the dynamic random access memory to the address space of the nonvolatile memory.
In this embodiment, the second phase of database construction needs to take into account when to stop the migration iteration for the current node. For each NVM parent node needing to be migrated, firstly judging whether the NVM parent node has a DRAM successor node, if not, directly returning, namely stopping the migration, otherwise, performing the successor node migration.
In other embodiments of the present invention, allocating a required address space for the new node based on an address space of a nonvolatile memory to migrate the new node from the address space of the dynamic random access memory to the address space of the nonvolatile memory comprises:
and (3) progressive steps: acquiring the subsequent nodes one by one to serve as current nodes;
if the height of the current node is smaller than the height of the father node of the newly added node in the nonvolatile memory, the current node is migrated to the nonvolatile memory, and the progressive step is executed until the height of the current node is larger than or equal to the height of the father node in the nonvolatile memory.
Illustratively, the prev array is initialized with height of the NVM parent node. And continuously acquiring the subsequent node by calling the getNext (0) function, and if the height of the subsequent node exceeds the height value or the subsequent node is equal to the height and is the NVM node, terminating iteration. For the subsequent nodes in the DRAM address space, an allowanNVMnode function is called to migrate the nodes to the NVM address space, then the values of the prev array are modified, and iterative migration of the nodes is continued.
In this embodiment, optionally, the iterative migration of the skip list structure includes the following steps:
step 4.1: initializing the height of a current node, and declaring a parent node set array;
step 4.2: judging whether a DRAM successor node exists in the current node, if so, turning to step 4.11, and if not, turning to step 4.3;
step 4.3: initializing a father node set;
step 4.4: acquiring a successor node of the current node, if the successor node is empty, setting each item of the parent node array index corresponding to the part with the current height exceeding the maximum allowable height of the NVM as a jump header, setting the maximum allowable height of the NVM as the current height, and if the successor node is not empty, turning to the step 4.5;
step 4.5: acquiring the height of the subsequent node, if the height exceeds the current node height, turning to step 4.6, and if the height is equal to the current node height and the subsequent node is an NVM node, turning to step 4.11;
step 4.6: judging whether the subsequent node exists a DRAM subsequent node or not, if so, turning to step 4.7, and if not, turning to step 4.11;
step 4.7: inserting a shortcut index for the subsequent node, and turning to step 4.11;
step 4.8: judging whether the subsequent node is an NVM node, if so, switching to the step 4.9, and if not, switching to the step 4.10;
Step 4.9: updating the father node set, setting the successor node as the current node, and repeatedly executing the step 4.4;
step 4.10: migrating the subsequent node to the NVM address space, updating the father node set, and repeatedly executing the step 4.4;
step 4.11: the iterative migration operation ends.
Referring to fig. 3 to 10, fig. 3 is one of the schematic diagrams of the experimental results provided in the first embodiment of the present invention, fig. 4 is the second schematic diagram of the experimental results provided in the first embodiment of the present invention, fig. 5 is the third schematic diagram of the experimental results provided in the first embodiment of the present invention, fig. 6 is the fourth schematic diagram of the experimental results provided in the first embodiment of the present invention, fig. 7 is the fifth schematic diagram of the experimental results provided in the first embodiment of the present invention, fig. 8 is the sixth schematic diagram of the experimental results provided in the first embodiment of the present invention, fig. 9 is the seventh schematic diagram of the experimental results provided in the first embodiment of the present invention, and fig. 10 is the eighth schematic diagram of the experimental results provided in the first embodiment of the present invention. In the embodiment of the invention, yahoo-! Cloud Serving Benchmark (yahoo cloud service basic test tool, abbreviated as YCSB) test benchmark program performs performance evaluation on the index structure in the embodiment of the present invention. YCSB is a tool for basic testing of cloud services, providing OLTP workloads of six different read-write ratios. In this embodiment, the index structure is tested by selecting a read-write balanced workload, a read-only workload, and a read-dense workload. The data initialization phase of the workload is tested and analyzed as a write-only workload. For each workload, experiments were performed using two basic types of search codes, a 64 bit monotonically increasing integer and a 64 bit random integer, with an index value of 64 bit integer. The data locality of the workload follows a Latest distribution pattern with a distribution amplitude of 10%, i.e. 90% of the accesses are concentrated on 10% of the data. The workload model mainly comprises four types of Read-only (only), read-write balancing (balance), read-only (Read-only) and Read-dense (Read-only); the search code type includes a 64-bit monotonically increasing integer (Mono) and a 64-bit random integer (Rand). In this embodiment, the comparison scheme includes an original index structure and a disclosed two-stage index compression scheme, and for convenience of distinction, the original index structure scheme, the two-stage index compression scheme and the scheme in the embodiment of the present invention are respectively denoted as skip list, hybrid and NVM.
As shown in fig. 3 to 10, in each graph, the performance index is throughput, the header of the graph indicates the configuration of the test workload, the horizontal axis is thread count (threads), the vertical axis is throughput (throughput), the curve (1) is an original index structure scheme, the curve (2) is a two-stage index compression scheme, and the curve (3) is a scheme in the embodiment of the present invention. Through throughput test, it can be seen that when the search code is a self-increasing integer, the scheme in the embodiment of the invention can obtain the throughput equivalent to that of the original index structure scheme on the basis of reducing the use amount of DRAM resources, and compared with the two-stage index compression scheme, the scheme in the embodiment of the invention has better throughput performance. When the search code is a random integer, the scheme in the embodiment of the invention has certain performance loss, and the reason is that the random integer causes the uncertainty of the position of the newly added node, and frequent shortcut index insertion can be performed, so that the overall performance is reduced.
Write-only workload: the two-stage index compression scheme mainly needs to periodically migrate nodes, and from experimental results, it can be seen that the scheme in the embodiment of the invention and the two-stage index compression scheme have certain performance loss on the write-only workload, and under different workload scenes, the scheme in the embodiment of the invention has better performance than the two-stage index compression scheme because the two-stage index compression scheme can block normal database requests until migration is completed in the migration process, and the scheme in the embodiment of the invention only has lock contention with requests related to the migration nodes in the migration process, so that the performance influence is smaller than that of the two-stage index compression scheme.
Read-write balancing workload: when the read-write balanced workload is operated, under the condition of different search codes and different index structure settings, the scheme in the embodiment of the invention is better than a two-stage index compression scheme, and the reason is that the two-stage index compression scheme inserts new data into a dynamic index structure for an update request and then fuses with a static structure, so that higher migration frequency is caused and performance is reduced. Compared with the original index structure, different search codes need to be distinguished, when the search codes are self-increasing integers, the scheme in the embodiment of the invention can obtain throughput similar to the original throughput, and when the search codes are random integers, the performance is reduced.
Read-only workload: the problem with the two-stage index compression scheme is that a single point query request may traverse both index structures, reducing overall query performance, and further causing performance loss due to the fact that most nodes of the global index are located in the NVM address space.
Read intensive workload: the scheme in the embodiment of the invention is better than the two-stage index compression scheme on each workload.
In order to more intuitively compare the effect of the schemes in the embodiment of the present invention on the reduction of the storage cost compared with the existing two schemes, the following table 1 summarizes the memory consumption conditions of each scheme, and table 1 is a comparison of the storage cost of three schemes, wherein in calculating the storage cost, the DRAM storage cost per unit GB (Gigabyte) is recorded as 1, and the NVM storage cost per unit GB is recorded as 0.3.
Table 1: database memory versus storage cost
As can be seen from table 1 above, for six different configurations of index structure and workload, compared with the original index structure, the scheme in the embodiment of the present invention can reduce the storage cost by 59% and 29%, respectively; compared with the two-stage index compression scheme, the scheme in the embodiment of the invention can reduce the storage cost to 59% and 29% respectively.
The above experimental results can show that, in the scheme of the embodiment of the invention, the database index construction method based on the DRAM-NVM hybrid memory and the skip list structure can provide higher index performance than the database supported by the hybrid memory system in the prior art, improve the effective utilization rate of high-speed DRAM resources in the hybrid memory, and reduce the memory cost of the database system from the overall design.
In summary, in the embodiment of the invention, by adopting the skip list data structure, the index structure of the memory type database is optimized, hot data and indexes thereof are placed in a DRAM with higher read-write speed, cold data with small access frequency and indexes thereof are placed in an NVM, more data can be accommodated while maintaining the high throughput of the database, a large amount of DRAM space is saved, the expansibility of the index structure is improved, and the performance and resource utilization rate of the database are improved.
Referring to fig. 11, fig. 11 is a schematic structural diagram of a database index construction device according to a second embodiment of the present invention, which is applied to a hybrid memory system including a dynamic random access memory and a nonvolatile memory, the device 110 includes:
a first inserting module 111, configured to locate, in the global index, a position where data to be inserted is to be inserted when a data insertion request is received, and if the data to be inserted causes an increase in nodes of the global index, allocate an address space required by a newly added node in the dynamic random access memory;
a second inserting module 112, configured to insert the new node into the shortcut index if the parent node of the new node is located in the nonvolatile memory;
a migration module 113, configured to migrate, when the used space ratio of the dynamic random access memory reaches a preset ratio, a target node to the nonvolatile memory;
the global index and the shortcut index adopt skip list data structures.
In the embodiment of the invention, the index structure of the memory type database is optimized by adopting the skip list data structure, hot data and indexes thereof are placed in the DRAM with higher reading and writing speed, cold data with small access frequency and indexes thereof are placed in the NVM, more data can be accommodated while maintaining the high throughput of the database, a large amount of DRAM space is saved, the expansibility of the index structure is improved, and the performance and resource utilization rate of the database are improved.
Optionally, the first inserting module includes:
the first acquisition unit is used for setting the height of a current node according to the height of a starting node and acquiring a next node from the starting node as the current node;
the second obtaining unit is configured to, if the current node is not a null pointer and the corresponding key value is smaller than the search code of the data to be inserted, decrease the height of the current node and continue to obtain the next node as the current node until the current node is a null pointer or the corresponding key value is smaller than the search code of the data to be inserted and the parent node array of the current node is not a null pointer;
and the positioning unit is used for returning the current node and finishing positioning when the current node height is zero if the current node is not the null pointer or the corresponding key value is not less than the search code of the data to be inserted and the father node array of the current node is not the null pointer, subtracting one from the current node height when the current node height is not the zero and continuously acquiring the next node as the current node until the current node height is zero.
Optionally, the second inserting module includes:
the first setting unit is used for setting the current node as a jump header and setting the height of the current node as a random height;
A second setting unit, configured to set, if a current node height exceeds a maximum allowable height of the nonvolatile memory, each entry of a parent node array index corresponding to a portion of the current node height exceeding the maximum allowable height of the nonvolatile memory as a skip header, and set the maximum allowable height of the nonvolatile memory as the current node height;
and the inserting unit is used for setting the father node of the newly added node as the last item of the father node array index, and calling an inserting shortcut function to insert the search code of the father node of the newly added node in the shortcut index.
Optionally, the migration module includes:
and the migration unit is used for determining the successor node as a target node if the father node of the newly added node has the successor node in the dynamic random access memory, and migrating the successor node into the nonvolatile memory.
Optionally, the migration module includes:
the third acquisition unit is used for acquiring the subsequent nodes one by one to serve as current nodes;
and the stopping unit is used for migrating the current node into the nonvolatile memory if the height of the current node is smaller than that of a father node of the newly added node in the nonvolatile memory, and stopping acquiring the successor node and migrating the current node into the nonvolatile memory if the height of the current node is larger than or equal to that of the father node in the nonvolatile memory.
The embodiment of the present invention is a product embodiment corresponding to the first embodiment of the above method, so that the detailed description thereof will be omitted herein.
A third embodiment of the present invention provides a computer-readable storage medium having stored thereon a computer program which, when executed by a processor, implements the steps of any one of the database index construction methods of the first embodiment. For details, reference is made to the description of the method steps in the corresponding embodiments above.
Such computer-readable storage media, including both non-transitory and non-transitory, removable and non-removable media, may be implemented in any method or technology for information storage. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of storage media for a computer include, but are not limited to, phase change memory (PRAM), static Random Access Memory (SRAM), dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), read Only Memory (ROM), electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium, which can be used to store information that can be accessed by a computing device.
While the foregoing is directed to the preferred embodiments of the present invention, it will be appreciated by those skilled in the art that various modifications and adaptations can be made without departing from the principles of the present invention, and such modifications and adaptations are intended to be comprehended within the scope of the present invention.
Claims (10)
1. A database index construction method applied to a hybrid memory system including a dynamic random access memory and a nonvolatile memory, the method comprising:
under the condition that a data insertion request is received, positioning a position to be inserted of data to be inserted in a global index, inserting the data to be inserted into the position to be inserted, and performing first detection on whether nodes of the global index are increased;
if the detection result of the first detection is that the node of the global index is increased, allocating a required address space for a newly-increased node based on the address space of a dynamic random access memory, performing second detection on the position of a father node of the newly-increased node, and if the detection result of the second detection is that the father node of the newly-increased node is positioned in the nonvolatile memory, inserting the newly-increased node into a shortcut index;
Acquiring the occupied space ratio of the dynamic random access memory, and if the occupied space ratio of the dynamic random access memory reaches a preset proportion, allocating a required address space for the newly-added node based on the address space of a nonvolatile memory so as to transfer the newly-added node from the address space of the dynamic random access memory to the address space of the nonvolatile memory;
the global index and the shortcut index adopt skip list data structures.
2. The method of claim 1, wherein the locating the location in the global index where the data to be inserted is to be inserted if the data insertion request is received comprises:
setting the height of a current node according to the height of a starting node, and taking the starting node as an initial current node;
the acquisition step: according to the height of the current node, starting to acquire a next node from the current node as a new current node;
if the current node is not a null pointer and the corresponding key value is smaller than the search code of the data to be inserted, subtracting a preset value from the height of the current node, executing the obtaining step until the current node is a null pointer or the corresponding key value is smaller than the search code of the data to be inserted, and performing a first check on whether the parent node group number of the current node is a null pointer;
If the verification result of the first verification is that the father node group number of the current node is not a null pointer, performing a second verification on whether the height of the current node is zero, if the verification result of the second verification is that the height of the current node is zero, returning to the current node and ending positioning; and if the verification result of the second verification is that the current node height is not zero, subtracting a preset value from the current node height, and executing the obtaining step until the current node height is zero.
3. The method of claim 2, wherein inserting the new node into the shortcut index if the detection result of the second detection is that the parent node of the new node is located in the nonvolatile memory comprises:
setting a current node as a jump header, and setting the height of the current node as a random height;
if the current node height exceeds the maximum allowable height of the nonvolatile memory, obtaining an exceeding part of the current node height exceeding the maximum allowable height of the nonvolatile memory, setting each item of the parent node array index corresponding to the exceeding part as a skip header, and setting the maximum allowable height of the nonvolatile memory as the current node height.
4. The method of claim 1, wherein allocating the required address space for the newly added node based on the address space of the nonvolatile memory to migrate the newly added node from the address space of the dynamic random access memory to the address space of the nonvolatile memory comprises:
and if the father node of the newly added node has a successor node in the dynamic random access memory, determining the successor node as a target node, distributing a required address space for the target node based on the address space of a nonvolatile memory, and migrating the target node from the address space of the dynamic random access memory to the address space of the nonvolatile memory.
5. The method of claim 4, wherein allocating the required address space for the newly added node based on the address space of the nonvolatile memory to migrate the newly added node from the address space of the dynamic random access memory to the address space of the nonvolatile memory comprises:
and (3) progressive steps: acquiring the subsequent nodes one by one to serve as current nodes;
if the height of the current node is smaller than the height of the father node of the newly added node in the nonvolatile memory, the current node is migrated to the nonvolatile memory, and the progressive step is executed until the height of the current node is larger than or equal to the height of the father node in the nonvolatile memory.
6. A database index construction apparatus for use in a hybrid memory system comprising a dynamic random access memory and a nonvolatile memory, said apparatus comprising:
the first insertion module is used for positioning the position to be inserted of the data to be inserted in the global index under the condition of receiving the data insertion request, inserting the data to be inserted into the position to be inserted, and carrying out first detection on whether the node of the global index is increased or not;
the second insertion module is configured to, if the detection result of the first detection is that the node of the global index is added, allocate a required address space for a newly added node based on an address space of a dynamic random access memory, perform a second detection on a position of a parent node of the newly added node, and if the detection result of the second detection is that the parent node of the newly added node is located in the nonvolatile memory, insert the newly added node into a shortcut index;
the migration module is used for acquiring the occupied space ratio of the dynamic random access memory, and if the occupied space ratio of the dynamic random access memory reaches a preset proportion, allocating a required address space for a new node based on the address space of a nonvolatile memory so as to migrate the new node from the address space of the dynamic random access memory to the address space of the nonvolatile memory;
The global index and the shortcut index adopt skip list data structures.
7. The apparatus of claim 6, wherein the first insertion module comprises:
the first acquisition unit is used for setting the height of a current node according to the height of a starting node, and taking the starting node as an initial current node;
a second acquisition unit configured to acquire: according to the height of the current node, starting to acquire a next node from the current node as a new current node;
the positioning unit is used for subtracting a preset value from the height of the current node if the current node is not a null pointer and the corresponding key value is smaller than the search code of the data to be inserted, executing the obtaining step until the current node is a null pointer or the corresponding key value is smaller than the search code of the data to be inserted, and performing a first check on whether the parent node group number of the current node is a null pointer;
the positioning unit is further configured to perform a second verification on whether the current node height is zero if the verification result of the first verification is that the parent node group number of the current node is not a null pointer, and return the current node and end positioning if the verification result of the second verification is that the current node height is zero; and if the verification result of the second verification is that the current node height is not zero, subtracting a preset value from the current node height, and executing the obtaining step until the current node height is zero.
8. The apparatus of claim 7, wherein the first insertion module comprises:
setting a current node as a jump header, and setting the height of the current node as a random height;
if the current node height exceeds the maximum allowable height of the nonvolatile memory, obtaining an exceeding part of the current node height exceeding the maximum allowable height of the nonvolatile memory, setting each item of the parent node array index corresponding to the exceeding part as a skip header, and setting the maximum allowable height of the nonvolatile memory as the current node height.
9. The apparatus of claim 6, wherein the migration module comprises:
and the migration unit is used for determining the successor node as a target node if the father node of the newly added node has the successor node in the dynamic random access memory, distributing the required address space for the target node based on the address space of the nonvolatile memory, and migrating the target node from the address space of the dynamic random access memory to the address space of the nonvolatile memory.
10. The apparatus of claim 9, wherein the migration module comprises:
A third acquisition unit for advancing the steps of: acquiring the subsequent nodes one by one to serve as current nodes;
and the stopping unit is used for migrating the current node into the nonvolatile memory if the height of the current node is smaller than that of a father node of the newly added node in the nonvolatile memory, and executing the progressive step until the height of the current node is greater than or equal to that of the father node in the nonvolatile memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210897014.2A CN116955348A (en) | 2022-07-28 | 2022-07-28 | Database index construction method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210897014.2A CN116955348A (en) | 2022-07-28 | 2022-07-28 | Database index construction method and device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116955348A true CN116955348A (en) | 2023-10-27 |
Family
ID=88459079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210897014.2A Pending CN116955348A (en) | 2022-07-28 | 2022-07-28 | Database index construction method and device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955348A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118152407A (en) * | 2024-04-11 | 2024-06-07 | 广东铂锶特科技有限公司 | Self-adaptive multi-level mixed index data storage system and storage method |
CN118673025A (en) * | 2024-08-22 | 2024-09-20 | 山东云海国创云计算装备产业创新中心有限公司 | Jump table adjusting method and device, storage medium and electronic equipment |
-
2022
- 2022-07-28 CN CN202210897014.2A patent/CN116955348A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118152407A (en) * | 2024-04-11 | 2024-06-07 | 广东铂锶特科技有限公司 | Self-adaptive multi-level mixed index data storage system and storage method |
CN118673025A (en) * | 2024-08-22 | 2024-09-20 | 山东云海国创云计算装备产业创新中心有限公司 | Jump table adjusting method and device, storage medium and electronic equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9672235B2 (en) | Method and system for dynamically partitioning very large database indices on write-once tables | |
US8176233B1 (en) | Using non-volatile memory resources to enable a virtual buffer pool for a database application | |
US8108400B2 (en) | Database segment searching | |
CN108021717B (en) | Method for implementing lightweight embedded file system | |
US20180004798A1 (en) | Read only bufferpool | |
CN116955348A (en) | Database index construction method and device | |
Zhang et al. | Nvlsm: A persistent memory key-value store using log-structured merge tree with accumulative compaction | |
CN114281762A (en) | Log storage acceleration method, device, equipment and medium | |
Amur et al. | Design of a write-optimized data store | |
CN112732725B (en) | NVM (non volatile memory) hybrid memory-based adaptive prefix tree construction method, system and medium | |
CN106055679A (en) | Multi-level cache sensitive indexing method | |
CN106294189B (en) | Memory defragmentation method and device | |
US11269544B1 (en) | Deleting an object from an object storage subsystem for managing paged metadata | |
KR102321346B1 (en) | Data journaling method for large solid state drive device | |
CN111857582B (en) | Key value storage system | |
CN114077378A (en) | Index construction method and device | |
CN111338569A (en) | Object storage back-end optimization method based on direct mapping | |
Choi et al. | Pb+-tree: Pcm-aware b+-tree | |
US9824105B2 (en) | Adaptive probabilistic indexing with skip lists | |
CN111309261A (en) | Physical data position mapping method on single node in distributed storage system | |
CN113760171A (en) | Metadata storage method and device | |
CN118051502B (en) | Index processing method, device and equipment of database and readable storage medium | |
CN116048408A (en) | Jump table structure based on persistent memory and access method thereof | |
US20150278117A1 (en) | Method and apparatus method and apparatus for controlling access to a hash-based disk | |
Yu et al. | DTtree: A Novel Read/Write-Optimized Learned Index for Database Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |