In-Memory Data Chunk Distribution for Cluster Query Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In a multi-node database cluster, loading the same data into the volatile memory of every node limits the cluster's caching capacity, as each node can only cache approximately the same amount of data as a single node, despite having N times the volatile memory of a single node.

Innovation Solution

Distributing distinct portions of database objects across multiple nodes, allowing each node to independently determine which chunks are assigned to it, and maintaining a sub-chunk-to-node mapping for efficient query execution, enabling parallel processing and redundancy to optimize volatile memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the same data is loaded into the volatile memory of every node in the cluster, then each node can quickly access the data without disk I/O, but the cluster's total caching capacity is limited to the memory size of a single node

Engineering Contradiction:
Improvequery access speedVSAvoidtotal caching capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent divides the database objects into distinct chunks and distributes these chunks across different nodes in the cluster. Each node stores only the chunks assigned to it, rather than duplicating all data. This segmentation allows the cluster to utilize the combined memory capacity of all nodes, achieving linear scaling of caching capacity with the number of nodes while maintaining fast in-memory access for the distributed data portions.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If data is distributed across multiple nodes, then the cluster can utilize N times the volatile memory capacity, but query processing requires coordination and communication between nodes

Engineering Contradiction:
Improvevolatile memory caching capacityVSAvoidquery execution coordination
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent pre-establishes sub-chunk-to-node mappings that define which node hosts which data chunks before query execution. These mappings are maintained in each node's memory, allowing nodes to independently determine where data resides without real-time coordination. When a query is executed, the system can quickly route requests to the appropriate nodes using these pre-computed mappings, minimizing communication overhead and avoiding complex runtime coordination.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If distinct portions of database objects are distributed across nodes, then volatile memory usage is optimized and parallel processing is enabled, but maintaining consistency and transparency of data distribution becomes complex

Engineering Contradiction:
Improveparallel query processing capabilityVSAvoiddata distribution management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a universal sub-chunk-to-node mapping mechanism that serves multiple functions: it defines data location for query routing, enables parallel processing by identifying which nodes hold which data portions, and provides transparency by allowing any node to determine data locations without centralized coordination. This single mapping structure handles all distribution management needs, simplifying the system despite the distributed architecture.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10275184B2Framework for volatile memory query execution in a multi node cluster
Publication Date: 2019.04.30 ORACLE INT CORP
  • US10275184B2 patent drawing
  • US10275184B2 patent drawing
  • US10275184B2 patent drawing

AI summary

Techniques are described herein for executing queries on distinct portions of a database object that has been separate into chunks and distributed across the volatile memories of a plurality of nodes in a clustered database system. The techniques involve receiving a query that requires work to be performed on data that resides in a plurality of on disk extents. A parallel query coordinator that is aware of the in-memory distribution divides the work into granules that align with the in-memory separation. The parallel query coordinator then sends each granule to the database server instance with local in memory access to the data required by the granule and aggregates the results to respond to the query.