Java UDTF Framework with Sandboxed Execution in Cloud Databases

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cloud-based data warehouses and database systems typically do not support user-defined table-valued functions (UDTFs), which are essential for performing complex data transformations, and existing solutions lack effective security mechanisms during UDTF execution, leading to potential system vulnerabilities.

Innovation Solution

A Java-based UDTF framework is introduced that allows users to create and execute user-defined table-valued functions within a network-based data warehouse system, with a statically-typed verification process to ensure correctness during creation and a sandbox environment for secure execution, utilizing a separate process for user code runtime to reduce security risks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If user-defined table-valued functions are supported in cloud database systems, then data transformation capabilities are enhanced, but system security vulnerabilities increase

Engineering Contradiction:
Improvedata transformation capabilitiesVSAvoidsystem security vulnerabilities
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

A sandbox environment is introduced as an intermediary layer between user-defined functions and the core database system. This sandbox acts as a mediator that allows UDTFs to execute with enhanced data transformation capabilities while preventing direct access to vulnerable system components, thus resolving the security vulnerability issue

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The execution environment is segmented into isolated containers for each UDTF. By dividing the system into separate execution contexts with controlled access, the patent enables versatile data transformations while containing potential security risks within individual segments that cannot affect the overall system

Inventive Principle:
Principle #1Segmentation

2Productivity

If user code is executed directly in the database process, then execution efficiency is improved, but security risks increase

Engineering Contradiction:
Improveexecution efficiencyVSAvoidsecurity risks
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

A dedicated runtime process serves as an intermediary between the database engine and user code execution. This intermediate process enables efficient code execution by maintaining close integration with the database while implementing security controls that prevent direct access to sensitive database resources

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

User code is executed in an inert sandbox environment that provides the necessary execution efficiency through optimized resource access while maintaining security through an isolated atmosphere that prevents harmful interactions with the core database system

Inventive Principle:
Principle #39Inert atmosphere (Inert environment)

3Manufacturing precision

If static typing verification is implemented for UDTFs, then correctness is ensured, but system complexity increases

Engineering Contradiction:
ImproveUDTF correctnessVSAvoidsystem complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

Static typing verification is performed preliminarily during the UDTF creation and registration phase rather than during execution. This preliminary checking ensures correctness of type signatures and interfaces upfront, reducing the need for complex runtime verification mechanisms

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11347485B1Secure, scalable, table-valued functions in a cloud database
Publication Date: 2022.05.31 SNOWFLAKE INC
  • US11347485B1 patent drawing
  • US11347485B1 patent drawing
  • US11347485B1 patent drawing

AI summary

A system comprises at least one hardware processor and a memory storing instructions. When executed, the instructions cause the at least one hardware processor to perform operations comprising receiving, in a compiling process, a request to create a Java user-defined table function (Java UDTF), the Java UDTF including code related to receiving one or more input tables and transforming the one or more input tables to an output table; verifying a construct of the Java UDTF in the request is correct; and compiling to generate execution code that includes the Java UDTF when the construct of the Java UDTF is correct.