Join-Partitioning for Local Query Computability in Shared-Nothing Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional distributed relational databases face significant communication costs and scalability bottlenecks due to dynamic repartitioning during query processing in shared-nothing clusters, especially when managing large datasets across hundreds or thousands of hosts.

Innovation Solution

The introduction of join-partitioning, which partitions database relations based on their dependencies to enable local computability of queries on each host, eliminating the need for data transmission between hosts and minimizing communication costs by allowing queries to be executed independently on each host.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dynamic repartitioning is used during query processing, then query results can be obtained from distributed data, but communication costs increase significantly and network becomes the bottleneck

Engineering Contradiction:
Improvequery processing capabilityVSAvoidcommunication cost
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by pre-partitioning data into partitions and pre-establishing join partitions before query execution. This allows queries to be executed locally on host nodes without requiring dynamic data repartitioning during query processing, thereby eliminating the communication overhead associated with dynamic repartitioning while maintaining query processing capability.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If data is shipped to central host for query processing, then query can be executed, but communication overhead and network bottleneck increase

Engineering Contradiction:
Improvequery executionVSAvoidnetwork communication overhead
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent implements self-service by enabling each host node to independently execute queries on its local data partitions without requiring coordination or data shipping to a central host. Each host serves itself by executing queries locally using the pre-established join partitions, eliminating network communication overhead while maintaining ease of query execution.

Inventive Principle:
Principle #25Self-service

3Quantity of substance

If conventional partitioning architectures are used, then data can be distributed across hosts, but significant data movements are required and scalability is limited

Engineering Contradiction:
Improvedata distributionVSAvoidscalability
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent applies segmentation by dividing data into distinct partitions and establishing join partitions that enable local query execution. This segmentation allows each host to process queries independently on its local data without requiring data movement, thereby maintaining data distribution while enabling linear scalability across hundreds or thousands of hosts.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8156107B2System and method for join-partitioning for local computability of query over shared-nothing clusters
Publication Date: 2012.04.10 TERADATA US INC
  • US8156107B2 patent drawing
  • US8156107B2 patent drawing
  • US8156107B2 patent drawing

AI summary

The present invention addresses the problem of partitioning database relations across a plurality of hosts in a shared-nothing cluster while minimizing communication costs. A new partitioning approach for database relations—join-partitioning—is introduced that focuses on relations and their dependencies to a priori partition the plurality of relations to the plurality of hosts such that each host can locally compute a large class of queries over its partitioned data in isolation at query time, independent of other hosts in the cluster. Such an approach thus overcomes the primary bottleneck, i.e., the network, in deploying database systems over shared-nothing clusters by allowing them to seamlessly scale linearly to tens of thousands of hosts and manage tens or hundreds of terabytes of data.