UDF File Access System for Cloud Database Staging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing cloud-based data systems face challenges in scaling user-defined functions (UDFs) to efficiently access large files or a large number of files, making it impractical for processing and management.

Innovation Solution

A function file access system that stores UDF signatures specifying file paths and allows for just-in-time retrieval of file contents, using a network-based data warehouse system with a compute service manager and execution platform to authenticate and cache file pages on execution nodes, enabling efficient access and sharing of UDFs across users.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If user defined functions are implemented on databases to process data, then data processing capability is improved, but scalability to access large files or large numbers of files deteriorates

Engineering Contradiction:
Improvedata processing capabilityVSAvoidscalability to access large files
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a file access system as an intermediary layer between the database UDFs and the cloud storage files. This mediator handles file access operations, managing large files and multiple files through standardized interfaces, thereby enabling UDFs to process diverse file types and sizes without modification while maintaining scalability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the file access functionality into separate modular components including file access requests, authentication modules, and caching mechanisms. This segmentation allows independent optimization of each component, enabling the system to efficiently handle large files and numerous files while maintaining overall scalability

Inventive Principle:
Principle #1Segmentation

2Device complexity

If file access is implemented without caching, then system complexity is reduced, but data retrieval speed deteriorates

Engineering Contradiction:
Improvesystem complexityVSAvoiddata retrieval speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

The system performs preliminary actions by caching file data in advance of actual processing needs. File access requests trigger authentication and caching operations before the UDF execution requires the data, so that when files are needed, they are already available in cache, significantly improving retrieval speed without adding complex real-time processing requirements

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If files are retrieved from cloud storage in real-time, then memory usage is reduced, but processing speed deteriorates due to bottlenecks

Engineering Contradiction:
Improvememory usageVSAvoidprocessing speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system caches file data in advance of processing requirements, performing file retrieval and authentication operations before the UDF execution needs the data. This preliminary caching action eliminates real-time retrieval bottlenecks during processing while maintaining efficient memory utilization through selective caching of only required files

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11423081B1Accessing files in a database stage using a user defined function
Publication Date: 2022.08.23 SNOWFLAKE INC
  • US11423081B1 patent drawing
  • US11423081B1 patent drawing
  • US11423081B1 patent drawing

AI summary

A file access system for user defined functions (UDFs) can be implemented on a distributed database system. The system can store UDF signatures and interfaces (e.g., classes, sub-classes) that can be called by other users. Upon a UDF being called, one or more interface objects (e.g., InputStream) can be created and requests transferred to a execution node via a network channel. The execution node can implement multiple threads that are authorized and download file data from a staging location (e.g., internal stage, external stage) concurrently.