Accessing common data in a dispersed storage network
US-2016321136-A1 · Nov 3, 2016 · US
US12174833B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12174833-B2 |
| Application number | US-201816121362-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 4, 2018 |
| Priority date | Sep 4, 2018 |
| Publication date | Dec 24, 2024 |
| Grant date | Dec 24, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems, methods, and computer-readable media for asynchronous (async) querying are described. In embodiments, an application server obtains a user-issued query comprising one or more query components; identifies data space characteristics of a data storage space associated with a user that issued the user-issued query; and analyzes the one or more query components to obtain performance data. The performance data is indicative of resource consumption for execution of the user-issued query. The application server selects a query execution engine to execute the user-issued query from among a plurality of query execution engines, and provides the user-issued query to the selected query execution engine. The selection is based on the data space characteristics and the performance data. Other embodiments may be described and/or claimed.
Opening claim text (preview).
The invention claimed is: 1. One or more non-transitory computer-readable media (NTCRM) comprising instructions, wherein execution of the instructions by one or more processors of an application (app) server is operable to cause the app server to operate a query scheduler to: obtain a user-issued query, the user-issued query including one or more query components; obtain query analysis data including data space characteristics of a data storage space associated with a user that issued the user-issued query, the one or more query components, abstracted from the user-issued query, and performance data obtained from analysis of the one or more query components, the performance data indicative of resource consumption for execution of the user-issued query, the data space characteristics comprising a size of the data storage space, a shape of the data storage space, a distribution of data within the data storage space, data declarations of data in the data storage space, an amount of occupied memory regions in the data storage space, an amount of unoccupied memory regions in the data storage space, a number of users capable of accessing the data storage space, an amount of queries submitted by the number of users capable of accessing the data storage space, a query frequency of the data storage space, subscription data of the user or the data storage space, and metadata of data storage space; pass the query analysis data to a query strategy pattern for selection of a query execution engine (QEE) from among a plurality of QEEs based on the data, the query strategy pattern comprising a factory that creates a QEE object for at least one QEE of the plurality of QEEs, the QEE object to determine a set of the query analysis data to be analyzed by the QEE object to determine if the at least one QEE is capable of executing the user-issued query; and provide the user-issued query to the selected QEE. 2. The one or more NTCRM of claim 1 , execution of the instructions is operable to cause the app server to: abstract the user-issued query into the one or more query components; and determine a predicted resource consumption for execution of the user-issued query based on the abstraction of the one or more query components. 3. The one or more NTCRM of claim 2 , wherein the performance data comprises: data types of data to be manipulated before or during execution of the user-issued query, data declarations of the data to be manipulated, an amount of data that needs to be scanned for execution of the user-issued query, whether the data that needs to be scanned has indexed fields, the privileges of the data that needs to be scanned, a predicted query runtime, a predicted query execution time, a submission time and/or date of the user-issued query, and a size of one or more query paths of the user-issued query. 4. The one or more NTCRM of claim 1 , wherein the database system is a multi-tenant system, and the data storage space is a tenant space in the multi-tenant system. 5. The one or more NTCRM of claim 1 , wherein execution of the instructions is operable to cause the app server: identify a selection configuration, the selection configuration indicating a strategy for selecting a QEE from among the plurality of QEEs, and the selection configuration indicating a priority of each QEE. 6. The one or more NTCRM of claim 5 , wherein execution of the instructions is operable to cause the app server: cause execution of the user-issued query using a highest priority QEE from among the plurality of query engines when the highest priority QEE is capable of executing the user-issued query; and when the highest priority QEE is not capable of executing the user-issued query, cause execution of the user-issued query using a next-highest priority QEE from among the plurality of query engines when the next-highest priority QEE is capable of executing the user-issued query, and wherein the next-highest priority QEE is lower in priority than the highest priority QEE. 7. The one or more NTCRM of claim 6 , wherein the user-issued query is composed in a first query language, and execution of the instructions is operable to cause the app server: execute the user-issued query at the application server using the highest priority QEE when the highest priority QEE is capable of executing the user-issued query; cause transmission of the user-issued query to another server of the database system for execution of the user-issued query by the next-highest priority QEE when the highest priority QEE is not capable of executing the user-issued query; and convert the user-issued query into a second query language for execution by the highest priority query execution engine when the highest priority query execution engine is capable of executing the user-issued query. 8. The one or more NTCRM of claim 1 , wherein the query strategy pattern is a factory method pattern or an abstract factory pattern. 9. The one or more NTCRM of claim 1 , wherein the plurality of QEEs comprises at least two of a direct QEE, a MapReduce QEE, a graph QEE, and a data stream processing execution engine. 10. The one or more NTCRM of claim 1 , wherein the query strategy pattern is a design pattern that one or more QEEs of the plurality of QEEs is to follow to reach the selected QEE. 11. The one or more NTCRM of claim 1 , wherein the user-issued query is obtained from the user via a public application programming interface (API), and execution of the instructions is operable to cause the app server to: trigger a private API to place a query processing job corresponding to the user-issued query in a message queue. 12. An application server comprising: a network interface configurable to obtain a user-issued query from a user, the user-issued query comprising one or more query components; and a processor system communicatively coupled with the network interface, the processor system configurable to operate a query scheduler to: identify tenant characteristics of a tenant space associated with the user that issued the user-issued query, the user being a member of a tenant organization to which the tenant space belongs, the tenant characteristics comprising: a size of the data storage space, a shape of the data storage space, a distribution of data within the data storage space, data declarations of data in the data storage space, an amount of occupied memory regions in the data storage space, an amount of unoccupied memory regions in the data storage space, a number of users capable of accessing the data storage space, an amount of queries submitted by the number of users capable of accessing the data storage space, a query frequency of the data storage space, subscription data of the user or the data storage space, and metadata of data storage space; determine performance data of the user-issued query based on the one or more query components, wherein the performance data is indicative of resource consumption for execution of the user-issued query; operate an asynchronous (async) query strategy pattern to select a query execution engine (QEE) from among a plurality of QEEs based on the tenant characteristics and the performance data, the query strategy pattern comprises a factory pattern that creates a query engine object of the selected QEE for executing the user-issued query, and determines a set of the performance data and tenant characteristics of the user-issued query that are to be analyzed by the query engine object; and operate the query scheduler or the async query strategy pattern to provide the user-issued query to the selected QEE for execution of the user-issued query. 13. The application server of claim 12
Translation of natural language queries to structured queries · CPC title
Selectivity estimation or determination · CPC title
Distributed queries · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.