Buffered Insert Module for Column Store Database Write Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Column store database systems face inefficiencies in row insert operations due to the complexity of modifying multiple pages per column, leading to increased write operations and logging overhead, which can impact performance.

Innovation Solution

Implementing a buffered insert module that defers row insert operations until a triggering event, such as a full buffer or transaction completion, allowing for amortization of flush operations across multiple rows and reducing the number of writes to the storage layer, while also aggregating and deferring logging of changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If row insert operations are immediately flushed to storage for each row inserted, then data consistency is maintained, but write operations to storage layer increase frequently causing performance degradation

Engineering Contradiction:
Improvedata consistencyVSAvoidinsert performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-allocating storage pages and preparing the storage structure before actual data insertion. Pages are pre-created and linked to column groups, allowing buffered inserts to occur without immediate storage writes. This preparation in advance enables batch processing of inserts while maintaining data consistency, resolving the contradiction between reliability and productivity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary buffer layer between the insert operations and the storage layer. The buffer stores inserted rows temporarily before flushing them to storage in batches. This intermediary mechanism reduces the frequency of direct storage writes while ensuring data consistency through controlled flush operations, thereby improving insert performance without sacrificing reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Manufacturing precision

If multiple column group pages are modified for each row insert, then data is stored correctly across columns, but the number of write operations and logging overhead increase

Engineering Contradiction:
Improvedata storage accuracyVSAvoidwrite operation complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent merges multiple write operations into a single batched flush operation. Instead of writing to multiple column group pages individually for each row insert, the system accumulates inserts in a buffer and flushes them together in batches. This combining of operations maintains data storage accuracy across all column groups while significantly reducing the complexity and overhead of individual write operations and logging.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent performs preliminary actions by pre-creating storage pages and establishing their relationships with column groups before inserts occur. This advance preparation allows the system to track which pages need modification without immediately executing complex write operations. When flushing, the system efficiently determines which pre-prepared pages need updates, reducing the complexity of data storage accuracy maintenance.

Inventive Principle:
Principle #10Preliminary action

3Stability of the object's composition

If pages remain fixed in storage during insert operations, then data integrity is preserved, but the time pages remain fixed increases reducing overall efficiency

Engineering Contradiction:
Improvepage data integrityVSAvoidpage fixation time
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

The patent implements periodic action by flushing buffered inserts to storage at regular intervals or when buffer thresholds are reached, rather than maintaining pages in a fixed state continuously. This periodic flushing approach preserves data integrity during buffer accumulation while minimizing the time pages remain fixed in storage, thereby reducing the loss of time and improving overall efficiency.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The patent uses preliminary action by pre-allocating and preparing storage pages before inserts occur. This advance preparation allows the system to quickly transition pages from fixed to modifiable state when needed, minimizing the time pages remain fixed. The pre-prepared pages can be efficiently updated in batches during flush operations while maintaining data integrity throughout the process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9697242B2Buffering inserts into a column store database
Publication Date: 2017.07.04 AIRBNB INC
  • US9697242B2 patent drawing
  • US9697242B2 patent drawing
  • US9697242B2 patent drawing

AI summary

Embodiments relate to database systems. An aspect includes deferring row insert operations until occurrence of a triggering event. One method includes receiving a row insert for a tuple into a column group store table, where the tuple includes one or more tuplets and each of the tuplets corresponds to a column group in the column group store table. The method also includes copying at least one of the tuplets into an insert buffer that is specific to one of the column groups in the column group store table. The method also includes deferring the row insert into the column group store table until an occurrence of one or more triggering events. The method also includes flushing the row insert into storage associated with the column group store table, in response to the occurrence of the one or more triggering events.