MPP Database Random Number Generation Without Inter-Node Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In massively parallel processing (MPP) databases, generating high-quality random numbers that are uniformly distributed, uncorrelated, and reproducible across different processors is challenging due to the difficulty in coordinating seed values and step sizes, especially when the number of nodes processing a query is unknown and communication between processors is impractical.

Innovation Solution

The master node communicates specific information to segment nodes to initialize and manage random number generators, ensuring each segment generates the same sequence with a unique starting position and step size based on query-specific and segment-specific identifiers, thereby minimizing correlation and collision among random numbers returned by different segments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If each segment node initializes with the same seed value, then the random number generation is simple and reproducible, but the random numbers will be identical across segments and lack quality

Engineering Contradiction:
Improveease of initializationVSAvoidrandom number quality
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

Each segment node uses the same seed value for initialization (maintaining simplicity), but combines it with locally unique identifiers (segment_id, slice_id) to generate different starting positions and step sizes. This allows each segment to produce high-quality, unique random sequences independently without complex communication protocols.

Inventive Principle:
Principle #3Local quality

2Reliability

If each segment node uses different seed values, then random number quality may improve through diversity, but the sequences become unpredictable and may overlap

Engineering Contradiction:
Improverandom number qualityVSAvoidsequence predictability
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The master node pre-calculates and distributes the seed values along with segment-specific parameters (slice_id, segment_id, num_segments) to all segment nodes before random number generation begins. This preliminary coordination ensures that each segment generates predictable, non-overlapping sequences while maintaining the appearance of independence and quality.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If segment nodes communicate to coordinate random number generation, then random number quality and distribution can be ensured, but latency increases and scalability is reduced

Engineering Contradiction:
Improverandom number distribution qualityVSAvoidprocessing latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system segments the random number generation process into independent operations at each node, with coordination information (seed, slice_id, segment_id, num_segments) distributed in advance by the master node. This eliminates the need for ongoing communication between segments during query execution, reducing latency and improving scalability while maintaining random number quality.

Inventive Principle:
Principle #1Segmentation

4Productivity

If the number of processing nodes is increased for better parallelism, then productivity improves, but coordination difficulty and complexity increase

Engineering Contradiction:
Improvequery processing speedVSAvoidcoordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The master node distributes a universal set of parameters (seed value, slice_id, segment_id, num_segments) that work across any number of processing nodes. This universal initialization approach allows the system to scale to thousands of segments without increasing coordination complexity, as each node independently applies the same algorithm with its local identifiers.

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

Data Source

PatentUS8874602B2Random number generator in a MPP database
Publication Date: 2014.10.28 VMWARE INC
  • US8874602B2 patent drawing
  • US8874602B2 patent drawing
  • US8874602B2 patent drawing

AI summary

A random number generation process generated uncorrelated random numbers from identical random number sequences on parallel processing database segments of an MPP database without communications between the segments by establishing a different starting position in the sequence on each segment using an identifier that is unique to each segment, query slice information and the number of segments. A master node dispatches a seed value to initialize the random number sequence generation on all segments, and dispatches the query slice information and information as to the number of segments during a normal query plan dispatch process.