MPP Database Random Number Generation Without Inter-Node Communication
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
4Productivity
If the number of processing nodes is increased for better parallelism, then productivity improves, but coordination difficulty and complexity increase
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.
Data Source
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.


