Execution Node Rationing for Data Store Fairness

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data store systems face challenges in ensuring fairness during oversubscription, where a particular customer account or data store size may consume a large fraction of available execution nodes, leading to inefficiencies and increased latency.

Innovation Solution

A resource manager is implemented to identify and allocate available execution nodes based on an execution node rationing procedure that accounts for customer account characteristics and pool size, preventing oversubscription and ensuring fair resource distribution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional data store systems process queries in scan order without rationing, then processing speed is maintained, but fairness deteriorates as particular customer accounts consume large fractions of available execution nodes

Engineering Contradiction:
Improveprocessing speedVSAvoidfairness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the query processing into multiple iterations, where in each iteration only a subset of queries is processed. This segmentation prevents any single account from consuming all execution nodes in one go, thereby ensuring fairness while maintaining overall processing speed through multi-pass handling of the query queue.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements periodic action by processing queries in repeated iterations rather than a single scan. Each iteration processes a portion of the queue and then pauses, allowing other accounts to get processing turns. This periodic processing pattern ensures fair resource distribution while maintaining productivity through continuous multi-iteration processing.

Inventive Principle:
Principle #19Periodic action

2Productivity

If execution nodes are allocated without considering account characteristics, then allocation speed is fast, but system efficiency deteriorates due to oversubscription and latency

Engineering Contradiction:
Improveallocation speedVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-calculating and storing account characteristics (such as historical resource usage patterns) before the allocation process begins. This pre-computed information is then used during query processing to make informed allocation decisions, preventing oversubscription and reducing latency without significantly slowing down the allocation speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms by monitoring account characteristics and resource consumption patterns, then using this feedback information to adjust future allocation decisions. This feedback loop allows the system to learn from past behavior and make more efficient allocations, reducing latency and preventing oversubscription while maintaining high allocation speed.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20250123895A1Execution node provisioning of a data store with fairness during oversubscription
Publication Date: 2025.04.17 SNOWFLAKE INC
  • US20250123895A1 patent drawing
  • US20250123895A1 patent drawing
  • US20250123895A1 patent drawing

AI summary

A system and method of execution node provisioning of a data store with fairness during oversubscription. The method includes scanning, during a first iteration, a queue to identify a first batch of processing requests associated with a plurality of accounts. The method includes determining a total count of demanded execution nodes to satisfy the first batch of processing requests. The method includes determining, based on the total count of demanded execution nodes, an inability for a pool of available execution nodes of a data store to satisfy the first batch of processing requests. The method includes allocating, by a processing device, the first batch of processing requests to the pool of available execution nodes according to a rationing procedure to reduce a latency time associated with processing the first batch of processing requests.