Database Record Partitioning by Data Size

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database systems face inefficiencies in data partitioning, particularly in distributed environments, due to unequal distribution of data across partitions when partitioning by the number of change events, leading to uneven processing loads and reduced performance and stability.

Innovation Solution

Implementing size-based record partitioning, where the system determines average record sizes for each record type, assigns salted keys to create non-overlapping partitions of consistent sizes, ensuring uniform load distribution across processing nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If data is partitioned by the number of change events, then the partitioning process is simple, but the distribution of data across partitions becomes unequal leading to uneven processing loads

Engineering Contradiction:
Improvepartitioning process simplicityVSAvoidprocessing load balance
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent changes the partitioning parameter from record count to data size (bytes). Instead of dividing partitions by number of change events, the system calculates total data size for each data schema type and creates partitions with equal byte distributions. This parameter change resolves the contradiction by maintaining partitioning simplicity while achieving balanced data distribution across partitions.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If data is partitioned by record count, then the partitioning method is straightforward, but processing performance decreases due to uneven partition sizes

Engineering Contradiction:
Improvepartitioning method straightforwardnessVSAvoidprocessing performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The system changes the partitioning metric from record quantity to data volume in bytes. By calculating total bytes for each data schema type and distributing partitions based on equal byte ranges, the method maintains straightforward implementation while significantly improving processing performance through balanced partition sizes that prevent any single partition from becoming a bottleneck.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If data is partitioned without considering record size, then the partitioning implementation is simple, but system stability decreases due to uneven load distribution

Engineering Contradiction:
Improvepartitioning implementation complexityVSAvoidsystem stability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent introduces data size (bytes) as the partitioning parameter while keeping the implementation relatively simple. The system calculates total data size for each data schema type, determines partition byte ranges, and assigns records to partitions based on their size-weighted key distributions. This approach maintains acceptable implementation complexity while dramatically improving system stability through balanced load distribution across all partitions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12045197B2Size-based record partitioning
Publication Date: 2024.07.23 SALESFORCE INC
  • US12045197B2 patent drawing
  • US12045197B2 patent drawing
  • US12045197B2 patent drawing

AI summary

A database system is disclosed. The database system may receive a plurality of records representing changes made to a plurality of datasets, and the plurality of records may include a plurality of data change instances associated with a plurality of data schema types. The plurality of data change instances may correspond to a plurality of respective keys. The database system may compute an average size of data for each data schema type of the plurality of data schema types. The database system may modify the plurality of respective keys through a salting process, which may include assigning non-overlapping numerical ranges to subsets of the plurality of respective keys. The database system may sort, using the non-overlapping numerical ranges, the plurality of data change instances into a plurality of partitions of a target file size. The database system may write files of the target file size to a data store.