Distributed Storage Query Result Object Versioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed storage systems face inefficiencies in providing continuous and updated data views to clients, as clients currently need to periodically re-execute SQL queries and manage updates independently, leading to delayed data updates and increased server workload.
Innovation Solution
The object storage query protocol is expanded to enable automatic re-execution of queries with parameters like duration, aggregation, and re-execution frequency, allowing the distributed storage system to manage and transmit updated result objects efficiently, using caching and version tracking to optimize processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If clients periodically re-execute SQL queries to get updated data, then data freshness is improved, but server workload increases and processing time is lost
Solution Approach 1:
The system pre-executes queries and stores results in result objects with version tracking before clients need the data. When data changes occur, the system automatically detects these changes and re-executes only the affected queries, rather than waiting for clients to periodically request updates. This preliminary preparation and proactive update mechanism reduces both data staleness and redundant processing.
Solution Approach 2:
The system implements a feedback mechanism where data changes are detected and trigger automatic query re-execution. The version tracking system monitors when data objects are modified, and this feedback information is used to determine which result objects need updating. This closed-loop feedback reduces server workload by only re-processing data that has actually changed, rather than periodic full re-executions.
2Ease of operation
If clients independently manage query re-execution, then client control is improved, but data update timeliness deteriorates
Solution Approach 1:
The system enables self-service by allowing clients to subscribe to result objects and receive automatic updates when data changes. The server autonomously monitors data modifications, re-executes affected queries, and pushes updated result objects to clients without requiring client intervention. This maintains client control over which data they receive while eliminating delays associated with manual re-execution scheduling.
Solution Approach 2:
The system establishes continuous monitoring of data changes through version tracking mechanisms. Instead of discrete periodic queries from clients, the system continuously detects data modifications and maintains up-to-date result objects ready for immediate transmission to subscribed clients. This continuous action ensures data freshness without requiring active client participation in the update process.
3Reliability
If full query results are re-processed on every update, then data accuracy is improved, but processing time increases
Solution Approach 1:
The system segments result objects into multiple portions and tracks versions for each portion independently. When data changes occur, only the affected portions are re-processed and updated, while unchanged portions retain their existing data. This segmentation maintains data accuracy for updated portions while significantly reducing overall processing time by avoiding re-processing of unchanged data segments.
Solution Approach 2:
The system applies local quality by differentiating between updated and non-updated portions of result objects. Each portion receives appropriate treatment: updated portions are re-processed to ensure accuracy, while non-updated portions are preserved as-is. This localized processing approach maintains data accuracy where needed while minimizing unnecessary processing elsewhere, directly reducing overall processing time.
Data Source
AI summary
Systems and methods for providing scalable object storage query capabilities in a distributed storage system are disclosed. In one implementation, a processing device may receive, by an object-based distributed storage system, a request from a client to execute a query with respect to data stored at the distributed storage system. The processing device may execute the query to produce a result object and may store the result object at the distributed storage system. The processing device may further transmit the result object to the client. The processing device may re-execute the query at a subsequent point in time to update the result object and transmit the updated result object to the client.


