Large Object Data Block Indexing for Low-Amplification Insertion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional database management of large object data (LOB) leads to a serious write amplification problem during insertion operations due to complex processing and the need to migrate or recode storage blocks, causing sequence number confusion and inefficiency.
Innovation Solution
An index entry generating method for large object data block index that involves acquiring a first sequence number based on a code arrangement sequence, determining if an adjacent sequence number is occupied, and adding a branch index sequence number between existing sequence numbers, using a different code arrangement sequence to manage large object data block indexes, thereby simplifying the insertion process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If complex special processing is performed on large object data in storage engine, then large object data can be stored and managed, but write amplification problem occurs during insertion operations
Solution Approach 1:
The patent segments the index structure into a B+ tree index and a large object data block index. The B+ tree index manages regular data blocks, while the large object data block index separately manages large object data blocks. This segmentation allows each index to be optimized for its specific data type, avoiding the write amplification problem that occurs when using complex special processing on all data uniformly.
Solution Approach 2:
The patent introduces a large object data block index as an intermediary structure between the storage engine and large object data. This intermediary layer simplifies the management of large object data by providing a dedicated indexing mechanism that does not require complex special processing, thereby reducing write amplification during insertion operations.
2Stability of the object's composition
If sequence number management is performed during large object insertion, then data organization is maintained, but sequence number confusion and recoding requirements occur
Solution Approach 1:
The patent segments the indexing function into two parts: the B+ tree index handles sequence number generation and data organization for regular data blocks, while the large object data block index separately manages sequence numbers for large object data blocks. This segmentation prevents sequence number confusion by ensuring that sequence numbers are generated and managed in a consistent manner for each data type.
Solution Approach 2:
The patent uses the B+ tree index structure as a template or copy for designing the large object data block index. By copying the proven sequence number management mechanism from the B+ tree index and adapting it for large object data, the patent maintains data organization without introducing sequence number confusion or recoding requirements.
3Reliability
If all indexes are recoded during large object insertion, then data consistency is maintained, but operation time and resources increase
Solution Approach 1:
The patent segments the index update process so that only the large object data block index needs to be updated during large object insertion, while the B+ tree index remains unchanged. This segmentation maintains data consistency by ensuring the large object data block index accurately reflects the stored large object data blocks, without requiring time-consuming recoding of all indexes.
Solution Approach 2:
The patent extracts the large object data indexing function from the general-purpose B+ tree index and creates a dedicated large object data block index. This extraction allows large object insertions to update only the relevant index structure, maintaining data consistency while significantly reducing the time and resources required compared to recoding all indexes.
Data Source
AI summary
Implementations of this specification provide methods and apparatuses for generating index entries. One method includes: acquiring a first sequence number of front large object data that is adjacent to a target data to be inserted in a large object data, wherein the first sequence number is generated based on a first code arrangement sequence and is comprised in a first index entry corresponding to the front large object data, in response to determining that the second sequence number immediately following the first sequence number is occupied, determining, based on a second code arrangement sequence, a branch index sequence number for the target data, and adding an index entry comprising the branch index sequence number to an index of the large object data, wherein the index entry is added between the first index entry comprising the first sequence number and a second index entry comprising the second sequence number.


