Query Result Routing via Cloud Object Stores and Inline Outputs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Cloud-based computation systems often face bottlenecks when handling large job outputs due to the control system acting as a bottleneck, especially when multiple users and jobs are receiving service, leading to inefficiencies in data access and transfer.
Innovation Solution
A system is implemented that allows direct and parallel access to output data stored in cloud object stores, bypassing the control system by determining whether outputs are in-line or cloud-based, and efficiently managing metadata to facilitate direct client access to cloud storage, aggregating in-line outputs as needed, and optimizing batch sizes for transfer.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If the control system processes all job outputs through a centralized channel, then job coordination and output routing are simplified, but the control system becomes a bottleneck for large data transfers
Solution Approach 1:
The patent segments the data transfer path into two types: in-line outputs for small data that go through the control system, and cloud outputs for large data that bypass the control system via direct cloud storage access. This segmentation resolves the bottleneck by allowing large data transfers to occur parallel to control system processing without blocking the centralized coordination channel.
Solution Approach 2:
The patent introduces cloud object storage as an intermediary between the control system and the client for large data outputs. Instead of the control system directly transferring large files to clients (creating a bottleneck), the control system stores data in cloud object storage and provides URLs, allowing clients to directly access the data through the intermediary cloud storage system.
2Ease of operation
If the control system acts as a single point for all data access, then output routing is simplified, but system performance degrades under high load
Solution Approach 1:
The patent segments data access into two paths: in-line outputs for small data that use the control system's centralized routing, and cloud outputs for large data that use direct cloud storage access via URLs. This segmentation maintains simple routing for small data while eliminating the performance degradation bottleneck for large data transfers under high system load.
3Adaptability or versatility
If all outputs are transferred through the control system, then data access is unified, but transfer time increases for large files
Solution Approach 1:
The patent dynamically selects the output delivery method based on data size and type. The control system determines whether to use in-line transfer for small outputs or cloud object storage URLs for large outputs. This dynamic adaptation optimizes transfer time by choosing the most efficient path for each specific output, preventing time-consuming transfers of large files through the control system.
Solution Approach 2:
The patent extracts large file transfer functionality from the control system by using cloud object storage URLs. Instead of the control system handling all data transfer operations, it extracts the large data transfer task to the cloud storage system, reducing the control system's processing time and improving overall system responsiveness.
4Extent of automation
If the control system manages all output data, then coordination is centralized, but overhead increases for multiple concurrent jobs
Solution Approach 1:
The patent segments output management into two categories: in-line outputs that require centralized coordination for small data, and cloud outputs that use direct URLs for large data. This segmentation reduces system overhead by eliminating the need for the control system to manage and track every byte of data transfer for concurrent jobs, while maintaining centralized coordination for smaller outputs.
Data Source
AI summary
The system is configured to: 1) receive a client request; 2) determine executor(s) to generate a response to the user request; 3) provide each of the executor(s) with an indication; 4) receive for each indication a response including an output of either a cloud output or an in-line output to generate a group of in-line outputs and a group of cloud outputs; 5) determine whether the group of in-line outputs comprises all outputs; and 6) in response to the group of in-line outputs not comprising all the outputs for the client request: a) convert the group of in-line outputs to a converted group of cloud outputs; b) generate metadata for the converted group of cloud outputs and the group of cloud outputs; and c) provide response to the client request including the metadata for the converted group of cloud outputs and the group of cloud outputs.


