Large Scale Data Join Service Using Bitset XOR Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for performing large-scale data joins and anti-joins on billions or trillions of data files are inefficient, requiring extensive processing time, large memory allocation, and significant CPU resources, leading to performance issues and potential garbage collection delays.

Innovation Solution

The approach involves partitioning data files using a first identifier, encoding second identifiers into bitsets, and comparing these bitsets to determine discrepancies, which reduces memory usage and processing time by reusing pre-allocated memory locations and employing XOR operations for anti-join operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional anti-join operations are performed on billions or trillions of data files to ensure consistency between object content files and index files, then data consistency is detected, but the operation takes weeks or even months to complete

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent partitions the large set of data files into multiple smaller subsets based on a partitioning key (e.g., prefix of the file key). Each subset is then processed independently through anti-join operations. This segmentation transforms an infeasible full-scale operation into multiple manageable parallel operations, reducing overall processing time from weeks/months to a practical duration while maintaining complete data consistency coverage.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary partitioning of data files into subsets before executing the anti-join operations. By pre-organizing the data structure based on partitioning keys, the system prepares the data in advance for efficient parallel processing, avoiding the need to handle all files simultaneously and thus reducing the operational time significantly.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If traditional anti-join operations are performed on large datasets, then data consistency is verified, but large amounts of memory must be allocated

Engineering Contradiction:
Improvedata consistencyVSAvoidmemory allocation
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides the large dataset into multiple partitions, each fitting within available memory constraints. By processing one partition at a time rather than loading all data simultaneously, the system verifies complete data consistency across billions or trillions of files without requiring prohibitive memory allocation. Each partition is independently validated and then aggregated with others.

Inventive Principle:
Principle #1Segmentation

3Reliability

If traditional anti-join operations are performed on large datasets, then data consistency is detected, but significant CPU time is consumed and performance is negatively affected

Engineering Contradiction:
Improvedata consistencyVSAvoidCPU performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent partitions the data processing task into multiple independent subset operations that can be executed in parallel. This segmentation enables efficient utilization of CPU resources across multiple cores or nodes, transforming a single sequential CPU-bound operation into parallel operations that significantly improve overall processing throughput and system performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent processes data partitions in periodic batches rather than attempting to process all data continuously. By periodically processing completed partitions and moving to the next batch, the system maintains steady CPU utilization without overwhelming the system, improving overall productivity through controlled periodic execution.

Inventive Principle:
Principle #19Periodic action

4Ease of manufacture

If data files are partitioned based on a partitioning key that is relatively very large with respect to the number of files, then partitioning is performed, but the subsets are not sufficiently small for efficient data join operations

Engineering Contradiction:
Improvepartitioning capabilityVSAvoidjoin operation efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent applies different partitioning strategies to different portions of the data based on local characteristics. When the partitioning key is large, the system uses prefix-based partitioning or hierarchical partitioning to create appropriately sized subsets. This local adaptation ensures that each partition is of suitable size for efficient join operations while maintaining the ability to handle the overall large dataset.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10467191B1Large scale data join service within a service provider network
Publication Date: 2019.11.05 AMAZON TECH INC
  • US10467191B1 patent drawing
  • US10467191B1 patent drawing
  • US10467191B1 patent drawing

AI summary

Technologies are disclosed for providing a large scale data join service within a service provider network. A data set includes first and second sets of files that correspond to each other. Each file includes a first identifier (ID) and a second ID. The first set of files is partitioned based at least in part upon the first ID into a plurality of first subsets of files and the second set of files is partitioned based at least in part upon the first ID into a plurality of second subsets of files. Files within a first group of the plurality of first subsets and files within a second group of the plurality of second subsets are encoded into first and second bitsets, respectively, based at least in part upon the second IDs. An exclusive-or operation is performed on the first and second bitsets to find discrepancies between the data files.