Database Partition Splitting via Logical Midpoint

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Database partitioning in data centers often requires manual intervention and can lead to performance penalties, especially in consistent hash systems, as it struggles to manage uneven data distribution and maintain performance during split operations.

Innovation Solution

Implementing a logical split point for hash-range partitions, using the median of hash and range value pairs to determine the split point, which allows for automatic partitioning without user interaction and minimizes performance loss, while also considering the distribution skewness and range relationships.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If manual partitioning is used to manage database splits, then partitioning can be performed, but it requires manual intervention and increases operational complexity

Engineering Contradiction:
Improveautomatic partitioningVSAvoidpartitioning management complexity
Core Design Contradiction:
Extent of automationVSDevice complexity

Solution Approach 1:

The system automatically detects when a partition should be split based on predefined criteria (such as partition size thresholds) and performs the split operation without requiring manual intervention. The client monitors partition health metrics and autonomously manages the partitioning process, eliminating the need for administrators to manually track and split partitions.

Inventive Principle:
Principle #25Self-service

2Reliability

If consistent hashing is used to distribute data across partitions, then data distribution is maintained, but performance penalties occur during split operations

Engineering Contradiction:
Improvedata distribution consistencyVSAvoidquery performance during splits
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system pre-calculates the split point and prepares the partition for splitting before actual data migration begins. By determining the optimal split point in advance based on current data distribution and access patterns, the system minimizes disruption to ongoing queries and maintains consistent hashing properties throughout the transition.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The partitioning system dynamically adjusts the hashing distribution during split operations, allowing queries to be routed appropriately to either the original partition or the new partition based on the current state of the system. This dynamic routing maintains query performance while the data distribution is being reorganized.

Inventive Principle:
Principle #15Dynamics

3Stability of the object's composition

If partitions are split frequently to maintain balance, then data distribution remains even, but the number of split operations increases system overhead

Engineering Contradiction:
Improvedata distribution balanceVSAvoidtime spent on split operations
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

The system continuously monitors partition characteristics such as size, data distribution, and access patterns, and only initiates a split operation when predefined thresholds are exceeded. This feedback mechanism ensures that partitions are split only when necessary to maintain balance, avoiding unnecessary split operations that would consume system resources and time.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10459899B1Splitting database partitions
Publication Date: 2019.10.29 AMAZON TECH INC
  • US10459899B1 patent drawing
  • US10459899B1 patent drawing
  • US10459899B1 patent drawing

AI summary

Techniques are disclosed for splitting a database partition into two partitions. In embodiments, where the partition is a hash partition, the partition is split at its logical midpoint, so that half of the partition's rows are placed in each split partition. Where the partition is a hash-range partition, a number of rows of the partition are sampled. Where enough samples fall on each side of the logical midpoint, the logical midpoint is again used as the split point. Where not enough samples fall on one side of the logical midpoint, then the median of the samples is used as the split point.