In-Memory Cursor Temporary Tables Iteration Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-node database systems, processing queries with iterative operations is inefficient due to the need to scan all data from previous iterations, even when only a subset is required, leading to slower processing speeds.

Innovation Solution

Implementing a system where memory and disk segments are allocated for storing data from each iteration of a query, with iteration values associated with each segment, allowing the database system to selectively read only the necessary data by checking iteration values before reading from memory or disk segments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all data from previous iterations is stored in a single temporary table, then complete iteration history is preserved, but query processing speed decreases due to scanning unnecessary data

Engineering Contradiction:
Improvecompleteness of iteration historyVSAvoidquery processing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the temporary table by creating separate memory segments and disk segments for storing data from different iterations. Each segment is associated with a specific iteration value, allowing the system to divide and organize iteration data spatially rather than storing all data in a single undifferentiated table.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by making different parts of the storage system have different properties - each memory segment and disk segment is tagged with its specific iteration value, creating localized information that can be selectively accessed. This allows the system to treat each segment differently based on its iteration association.

Inventive Principle:
Principle #3Local quality

2Productivity

If iteration values are associated with each memory and disk segment, then selective reading of necessary data is enabled, but system complexity increases

Engineering Contradiction:
Improveselective data reading efficiencyVSAvoidsegment management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary action by associating iteration values with memory and disk segments at the time of data insertion, rather than adding this metadata later during query processing. This pre-tagging approach enables efficient selective reading without requiring complex runtime analysis of segment contents.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The iteration value acts as an intermediary between the query requirements and the physical storage segments. By tagging segments with iteration values, the system creates a metadata layer that mediates between the logical requirement to access specific iteration data and the physical reality of stored data locations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the temporary table is pruned to only include relevant iterations, then processing speed improves, but data completeness may be compromised

Engineering Contradiction:
Improvequery processing speedVSAvoiddata completeness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies partial action by reading only the necessary portions of data (specific iteration segments) rather than scanning the entire temporary table. This selective reading approach processes only the required data volume while maintaining the ability to access complete iteration history when needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10783142B2Efficient data retrieval in staged use of in-memory cursor duration temporary tables
Publication Date: 2020.09.22 ORACLE INT CORP
  • US10783142B2 patent drawing
  • US10783142B2 patent drawing
  • US10783142B2 patent drawing

AI summary

Techniques are presented herein for storing cursor duration temporary tables in memory of nodes in a clustered database system in association with iterations of an iterative query operation. The techniques involve associating a portion of memory with one or more iteration values. The iteration values indicate which iterations correspond to data that is stored in the portion of memory. When data is requested for a particular iteration, portions of memory are checked to determine if it stores the particular iteration.