EP3044692A1 - Predicting execution times of concurrent queries - Google Patents
Predicting execution times of concurrent queriesInfo
- Publication number
- EP3044692A1 EP3044692A1 EP13893241.3A EP13893241A EP3044692A1 EP 3044692 A1 EP3044692 A1 EP 3044692A1 EP 13893241 A EP13893241 A EP 13893241A EP 3044692 A1 EP3044692 A1 EP 3044692A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- query
- production
- queries
- execution
- features
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Definitions
- FIG. 1 is a block diagram of an example computing device for predicting execution times of concurrent queries
- FIG. 2 is a block diagram of an example computing device in communication with a database for predicting execution times of concurrent queries
- FIG. 3 is a flowchart of an example method for execution by a computing device for predicting execution times of concurrent queries
- FIG. 4 is a flowchart of an example method for execution by a computing device for generating historic data and then predicting execution times of concurrent queries in production;
- FIG. 5 is a flowchart of an example workflow for creating a machine learning model for predicting execution times of concurrent queries.
- FIG. 6 is a diagram of an example query execution plan. DETAILED DESCRIPTION
- Example embodiments disclosed herein provide predicting execution times of concurrent queries. For example, in some embodiments, historical data is iteratively generated for a machine learning model by varying a concurrency level of query executions in a database, determining a query execution plan for a pending concurrent query, extracting query features from the query execution plan, and executing the pending concurrent query to determine a query execution time.
- the machine learning model may then be created based on the query features, variation in the concurrency level, and the query execution time.
- the machine learning model is used to generate an execution schedule for production queries, where the execution schedule satisfies service level agreements of the production queries.
- example embodiments disclosed herein improve predicting execution times of concurrent queries by using a machine learning model that is derived from monitoring training queries executed at varying concurrency levels.
- the machine learning model is generated based on historic data that includes query features extracted from query execution plans and associated execution times at varying concurrency levels.
- FIG. 1 is a block diagram of an example computing device 100 for predicting execution times of concurrent queries.
- Computing device 100 may be any computing device (e.g., database server, desktop computer, laptop computer, tablet device, etc.) with access to a database, such as database 250 of FIG. 2.
- computing device 100 includes a processor 110, an interface 115, and a machine-readable storage medium 120.
- Processor 110 may be one or more central processing units (CPUs), microprocessors, and/or other hardware devices suitable for retrieval and execution of instructions stored in machine-readable storage medium 120.
- Processor 110 may fetch, decode, and execute instructions 122, 124, 126 to predict execution times of concurrent queries, as described below.
- processor 110 may include one or more electronic circuits comprising a number of electronic components for performing the functionality of one or more of instructions 122, 124, 126.
- Interface 115 may include a number of electronic components for communicating with a database.
- interface 115 may be an Ethernet interface, a Universal Serial Bus (USB) interface, an IEEE 1394 (Firewire) interface, an external Serial Advanced Technology Attachment (eSATA) interface, or any other physical connection interface suitable for communication with the database.
- interface 115 may be a wireless interlace, such as a wireless local area network (WLAN) interface or a near-field communication (NFC) interface.
- WLAN wireless local area network
- NFC near-field communication
- interface 115 may be used to send and receive data, such as features data and execution time data, to and from a corresponding interface of a database.
- Machine-readable storage medium 120 may be any electronic, magnetic, optical, or other physical storage device that stores executable instructions.
- machine-readable storage medium 120 may be, for example, Random Access Memory (RAM), an Electrically-Erasable Programmable Read-Only Memory (EEPROM), a storage drive, an optical disc, and the like.
- RAM Random Access Memory
- EEPROM Electrically-Erasable Programmable Read-Only Memory
- machine-readable storage medium 120 may be encoded with executable instructions for predicting execution times of concurrent queries.
- Historic data obtaining instructions 122 analyze the execution of concurrent queries to obtain historic data. For example, training concurrent queries are iteratively executed at varying concurrency levels to obtain the historic data.
- the concurrency level may varied by setting the MPL variable of a DBMS, which controls the maximum number of concurrently executing queries.
- query features and query execution time may be monitored to obtain the historic data.
- the query features for a query may be extracted from a query execution plan of a concurrent query.
- a query execution plan is an ordered set of steps describing a SQL statement for accessing a DBMS and typically depicted in a hierarchical tree as described below with respect to FIG. 6.
- Query features may include, but are not limited to, a set of query operators, an amount of data for processing, etc.
- Learning model creating instructions 124 create machine learning models based on the historic data described above.
- a machine learning model is capable of learning from training data, in this case historic data related to concurrent queries, and then generalizing the model to classify production data. Further, the machine learning model may continue to learn as production data is classified.
- the machine learning model is used to characterize a pending concurrent query based on the features of the concurrent query and the current concurrency level.
- Execution schedule generating instructions 126 may use the machine learning model to schedule concurrent queries in a production environment. For example, a set of concurrent queries is analyzed and applied to the machine learning models to create an execution schedule for the concurrent queries. In this example, the execution schedule is generated based on the predicted execution time of each of the concurrent queries. The predicted execution time of a concurrent query may be determined based on its query features and the current concurrency level of the production environment. Specifically, the query features of the concurrent query and the concurrency level may be used to identify similar historic queries in the machine learning model, which are then used to determine the predicted execution time.
- FIG. 2 is a block diagram of an example computing device 200 in communication via a network 245 with database 250. As illustrated in FIG. 2 and described below, computing device 200 may communicate with the database to predict execution times of concurrent queries.
- computing device 200 may include a number of modules 202-224.
- Each of the modules may include a series of instructions encoded on a machine-readable storage medium and executable by a processor of the computing device 200.
- each module may include one or more hardware devices including electronic circuitry for implementing the functionality described below.
- computing device 200 may be a server, a notebook, desktop, tablet, workstation, mobile device, or any other device suitable for executing the functionality described below. As detailed below, computing device 200 may include a series of modules 202-224 for enabling database analysis and validation.
- Interface module 202 may manage communications with the database 250. Specifically, the interface module 202 may (1 ) initiate connections with the database and then send or receive features data 232 and execution time data 234 to/from the database.
- Database module 206 may manage operation of the database 250. Although the components of database module 206 are described in detail below, additional details regarding an example implementation of module 206 are provided above in connection with instructions 122 of FIG. 1.
- Operating parameters module 208 may configure and monitor operating parameters of the database 250. For example, operating parameters module 208 may set the concurrency level (i.e., MPL value) of the database 250. During the collection of historic data, operating parameters module 208 may iteratively adjust the concurrency level as concurrent queries are executed for training. Operating parameters module 208 may also manage other operating parameters including, but not limited to, system resources available to process queries (e.g., amount of memory available, number of processing units,), maximum number of available locks, whether debugging and/or logs are enabled, etc.
- system resources available to process queries e.g., amount of memory available, number of processing units,
- maximum number of available locks e.g., whether debugging and/or logs are enabled, etc.
- Query execution module 210 may execute concurrent queries in database 250. During execution, query execution module 210 may monitor the execution time of the queries, which may be stored as execution time data 234. Query execution module 210 may execute (1) concurrent queries during a training phase to obtain historic data and (2) production concurrent queries for a database in production.
- Learning model module 212 may create machine learning models based on historic data. Although the components of learning model module 212 are described in detail below, additional details regarding an example implementation of module 212 are provided above in connection with instructions 124 of FIG. 1.
- Query features module 214 may extract query features from query execution plans of concurrent queries. Specifically, query features module 214 may obtain a query execution plan from the database 250 and then use the query execution plan to determine the query features (e.g., query operators, amount of data being processed, etc.).
- query features e.g., query operators, amount of data being processed, etc.
- Model creation model 216 may generate machine learning models based on the concurrency levels set by the operating parameters module 208, the execution times determined by the query execution module 210, and the query features extracted by the query features module 214 (collectively referred to as historic data). For example, a machine learning model is generated after the historic data is collected for a set of training queries. In this example, the set of training queries are iteratively executed at varying concurrency levels so that historic data can be collected at each of the concurrency levels. The machine learning model may then be used to predict the query execution times of production queries based on the query features of the production queries and the concurrency level of the DBMS.
- Optimization module 220 may optimize the execution of production queries. Although the components of optimization module 220 are described in detail below, additional details regarding an example implementation of module 220 are provided above in connection with instructions 126 of FIG. 1.
- Database monitoring module 222 may monitor database 250 for concurrent queries. As concurrent queries are initiated on the database 250, database monitoring module 222 may detect the concurrent queries and group them into sets for processing by query optimization module 224.
- Query optimization module 224 may use machine learning models to generate query schedules for concurrent queries.
- a query schedule may specify an order for executing the concurrent queries, where the order is determined by the predicted query execution times of each of the concurrent queries.
- the query scheduled may also be generated such that the service level agreement (SLA's) of each of the concurrent queries is satisfied.
- SLA may specify requirements for performance and reliability for a specific application.
- concurrent queries originating from the specific application are associated with the SLA.
- an SLA may specify query capabilities (i.e., authorized query operators and targets) and performance requirements (i.e., time threshold for completing a query).
- Storage device 230 may be any hardware storage device for maintaining data accessible to computing device 200.
- storage device 230 may include one or more hard disk drives, solid state drives, tape drives, and/or any other storage devices.
- the storage devices may be located in computing device 200 and/or in another device in communication with computing device 200.
- storage device 230 may maintain features data 232, execution time data 234, and learning model data 236.
- Database 250 may be any database accessible to computing device 200 over the network 245 that is suitable for providing database content.
- Database 250 may provide database content as data tables, data views, stored procedures, indexes, sequences, etc.
- FIG. 3 is a flowchart of an example method 300 for execution by a computing device 100 for predicting execution times of concurrent queries. Although execution of method 300 is described below with reference to computing device 100 of FIG. 1 , other suitable devices for execution of method 300 may be used, such as computing device 200 of FIG. 2. Method 300 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 120, and/or in the form of electronic circuitry.
- Method 300 may start in block 305 and continue to block 310, where computing device 100 obtains historic data by iteratively executing concurrent queries at varying concurrency levels. For example, training queries are executed at each of a range of concurrency levels (e.g., MPL values of 1 , 2, 4, 8, 12, 16, 20, 24, 32). In this example as the training queries are executed, execution times and query features are collected for each of the executions.
- a range of concurrency levels e.g., MPL values of 1 , 2, 4, 8, 12, 16, 20, 24, 32.
- computing device 100 creates a machine learning model based on the historic data.
- the machine learning model is configured to predict execution times for a concurrent query based on its query features and the current concurrency level of the DBMS.
- the machine learning model is used to generate an execution schedule for a set of concurrent queries. Specifically, the machine learning model is applied to each of the concurrent queries to determine a predicted execution time. Next, the predicted execution times is used to schedule the concurrent queries such that their associated service level agreements are satisfied. Method 300 may then continue to block 325, where method 300 may stop.
- FIG. 4 is a flowchart of an example method 400 for execution by a computing device 100 for generating historic data and then predicting execution times of concurrent queries in production.
- execution of method 400 is described below with reference to computing device 100 of FIG. 1 , other suitable devices for execution of method 400 may be used, such as computing device 200 of FIG. 2.
- Method 400 may be implemented in the form of executable instructions stored on a machine-readable storage medium, such as storage medium 120, and/or in the form of electronic circuitry.
- Method 400 may start in block 405 and continue to block 410, where computing device 100 may set the concurrency level of a DBMS to the next concurrent value in a range of values.
- the concurrency level may be the MPL parameter of the DBMS.
- a query execution plan is determined for the pending concurrent query. The query execution plan is obtained from the DBMS.
- query features for the pending concurrent query are extracted from the query execution plan. For example, a set of query operators and an amount of data being processed is extracted from the plan.
- the pending concurrent query is executed at the current concurrency level to determine the query execution time of the query. The concurrent query is executed simultaneously with other concurrent queries to simulate operating conditions.
- computing device 100 determines if there are more concurrent queries to execute. If there are more concurrent queries, method 400 returns to block 415, where the next concurrent query is processed. If there are no more concurrent queries, computing device 100 determines if there are more concurrent values in the range of concurrent values in block 435. If there are more concurrent values, method 400 returns to block 410 to process the next concurrent value in the range of values. The entire set of concurrent queries is executed at each of the concurrent values so that historic data can be collected at each of the concurrency levels.
- method 400 may change from the training phase described above to a production phase.
- the collected historic data is used to create a machine learning model as described above at the end of the training phase in block 437.
- a query execution plan is determined for the production query.
- query features for the production query are extracted from the query execution plan.
- the extracted features from the production query are used to probe the machine learning model created in the training phase.
- the extracted query features are used to identify characteristics of related training queries represented in the machine learning model with one or more similar features.
- the machine learning model is used to predict an execution time for the production query, which is then used to determine an execution schedule for the production query.
- Multiple production queries may be processed simultaneously so that an execution schedule for all the queries are created so that the queries' execution times can satisfy their service level agreements (i.e., time threshold for satisfying a query) during execution.
- the production query is executed according to the execution plan, and the query execution time of the query is determined.
- the machine learning model is updated to incorporate the query features and execution time determined during the execution of the production query.
- computing device 465 determines if there are more production queries to execute. If there are more production queries to execute, method 400 returns to block 440, where the next production query is processed. If there are no more queries to execute, method 400 proceeds to block 470, where method 400 may stop.
- FIG. 5 is a flowchart of an example workflow 500 for creating a machine learning model for predicting execution times of concurrent queries.
- Benchmark framework 502 is used to monitor database 504 to determine query execution times 516.
- training queries based on the Transaction Processing Council - Decision Support (TPC-DS) benchmark may be loaded and used to obtain the query execution times 516.
- TPC-DS benchmark includes 100 different SQL queries over a set of relational database tables that model a retail sales enterprise. Within a TPC-DS workload, queries are initiated in a random order.
- the TPC-DS benchmark also includes a data generator to create database tables of various sizes.
- each query may be run in isolation and then at each concurrency level in a range of concurrency levels (e.g., MPL values of 1 , 2, 4, 8, 12, 16, 20, 24, 32). For example, at an MPL value of 2 the workload may be divided in two parts and provided to two clients that each execute their portion of the workload concurrently, where the execution time of each query is measured. As MPL increases, resource contention increases and, generally, execution time increased. Because queries are randomly ordered, each time an individual query is executed, the query competes for resources with a different collection of queries.
- MPL values e.g., MPL values of 1 , 2, 4, 8, 12, 16, 20, 24, 32.
- Query execution plans 506 are extracted from the queries executed in database 504 to determine query features 512.
- the query execution plans 506 are provided by DBMS packages that generate textual or graphical representations of queries.
- sets of static features are extracted from the query execution plans such as the number and types of operators used (e.g., Sort, IO, Group By, Union, Join, Hash Join, Merge Join, Analytical, etc.).
- the query execution plans may also be parsed for further information as discussed below with respect to FIG. 6.
- MPL parameter 514 may be obtained from the database. Again, a DBMS package is consulted to manage the value of the MPL parameter as each of the workloads is processed through database 504. After the training phase of the workflow is complete, training set 508 includes query features 512, MPL parameter 514, and query execution times 516, which may be collected as described above with respect to FIGS. 3 and 4.
- training set is used by model learning module 510 to generate a machine learning model 520.
- a boosted trees technique may be used to form a group of decision trees based on this historic data.
- s i denote the extracted feature vector for query i.
- a varying-coefflcient linear model may be used where the runtime for each query is assumed to increase linearly with MPL and both the intercept and slope of this linear relationship depend on query features.
- the model represented in equation (1) is trained in an offline mode with historic data. For a new query with feature vector s 0 , we first predict ⁇ 0 ( s 0 ) and ⁇ 1 (s 0 ) using the trained model and then characterize the elapsed time as a linear function of MPL with intercept j3 ⁇ 4(s 0 ) and slope jS-i(s 0 ).
- the varying-coefficient linear model allows the execution time of a query to be predicted under any MPL number.
- the boosted trees technique automatically identifies the most statistically significant features. Rarely used features are weighted accordingly to decrease the occurrence of over-featured models.
- Query execution time may also be predicted when the query is run in isolation.
- the MPL value is 1 and a nonparametric regression model is assumed,
- the regression function ⁇ (s i ) may again be approximated by boosted trees.
- the technique described above is merely an example and other suitable techniques may be used to create prediction models (e.g., linear models, boosted stumps, support vector regression, etc.) for predicting execution times.
- FIG. 6 is a diagram of an example query execution plan 600.
- query execution plan 600 is represented as a graphical, hierarchical tree of operators.
- the root node of the tree is a select operator 602 with child nodes nested loop 604 and details_1 table access 606.
- Each of nested loop 604 and 610 may represent a join operator with varying characteristics (e.g., inner join, outer join, hash join, etc.).
- Each of the table nodes 606, 612, and 616 may represent a table that is being joined in the select operator 602. Further, each of the table nodes 606, 612, and 616 has a child node representing the key scan 608, 614, and 618 performed to access data in the represented table.
- Each node in query execution plan 600 represents a query feature that may be extracted. Further, characteristics of each of the query features may also be extracted from query execution plan 600. A textual portion of a query execution plan is parsed to obtain quantitative values for different operators such as listed below:
- Number of occurrences The total number of uses of the operator within the plan (e.g., the number of hash joins in the plan).
- Total cost Cumulative sum of cost over each occurrence of the operator.
- Number of rows Cumulative number of rows over each occurrence of the operator.
- Total weighted cost Weighted cost for an occurrence of operator is computed as the ratio of the cost of the operator to the number of nodes on which the operator was executed. Total weighted cost is then the cumulative sum of all the weighted cost for the operator.
- Total weighted number of rows Weighted number of rows for an occurrence of operator is computed as the ratio of number of rows processed by the operator to the number of nodes on which the operator was executed. Total weighted number of rows is then the cumulative sum of all the weighted number of rows for the operator.
- Number of Operations Total number of operations in the plan.
- Bushiness attempts to quantify the structure of the tree. It is obtained as the ratio of total number of operations to the maximum depth of the tree.
- the features extracted from the query execution plan are referred to as static features.
- static features In addition to the extracted static features, the execution time of the query and the concurrency level of the runtime environment are also recorded.
- the set of extracted features for these historic queries form a training data set for the construction of a machine learning model.
- the set of runtime features can be further extended with available DBMS measurements.
- the foregoing disclosure describes a number of example embodiments for predicting execution times of concurrent queries.
- the embodiments disclosed herein enable a benchmarking approach combined with an advanced machine learning technique for predicting query execution times in a runtime environment with concurrent queries.
- the machine learning model accurately predicts the query execution time as a function of multiple concurrent queries because the model is able to estimate the query execution times under varying concurrency levels.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2013/059837 WO2015038152A1 (en) | 2013-09-14 | 2013-09-14 | Predicting execution times of concurrent queries |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| EP3044692A1 true EP3044692A1 (en) | 2016-07-20 |
| EP3044692A4 EP3044692A4 (en) | 2017-05-03 |
Family
ID=52666095
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP13893241.3A Withdrawn EP3044692A4 (en) | 2013-09-14 | 2013-09-14 | Predicting execution times of concurrent queries |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20160203404A1 (en) |
| EP (1) | EP3044692A4 (en) |
| WO (1) | WO2015038152A1 (en) |
Families Citing this family (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9990396B2 (en) * | 2015-02-03 | 2018-06-05 | International Business Machines Corporation | Forecasting query access plan obsolescence |
| US10108664B2 (en) | 2015-04-01 | 2018-10-23 | International Business Machines Corporation | Generating multiple query access plans for multiple computing environments |
| US9916353B2 (en) | 2015-04-01 | 2018-03-13 | International Business Machines Corporation | Generating multiple query access plans for multiple computing environments |
| US9953056B2 (en) * | 2015-08-31 | 2018-04-24 | Sap Se | Multi-query optimizer for complex event processing |
| US10454877B2 (en) | 2016-04-29 | 2019-10-22 | Cisco Technology, Inc. | Interoperability between data plane learning endpoints and control plane learning endpoints in overlay networks |
| US10091070B2 (en) | 2016-06-01 | 2018-10-02 | Cisco Technology, Inc. | System and method of using a machine learning algorithm to meet SLA requirements |
| US10963813B2 (en) | 2017-04-28 | 2021-03-30 | Cisco Technology, Inc. | Data sovereignty compliant machine learning |
| US11372858B2 (en) * | 2017-05-18 | 2022-06-28 | Oracle International Corporation | Estimated query performance |
| WO2018222580A1 (en) * | 2017-05-30 | 2018-12-06 | Ocient Inc. | System and method for optimizing large database management systems |
| US10477148B2 (en) | 2017-06-23 | 2019-11-12 | Cisco Technology, Inc. | Speaker anticipation |
| US10210240B2 (en) * | 2017-06-30 | 2019-02-19 | Capital One Services, Llc | Systems and methods for code parsing and lineage detection |
| US10608901B2 (en) | 2017-07-12 | 2020-03-31 | Cisco Technology, Inc. | System and method for applying machine learning algorithms to compute health scores for workload scheduling |
| US10091348B1 (en) | 2017-07-25 | 2018-10-02 | Cisco Technology, Inc. | Predictive model for voice/video over IP calls |
| US10713092B2 (en) * | 2018-01-02 | 2020-07-14 | Jpmorgan Chase Bank, N.A. | Dynamic resource management of a pool of resources for multi-tenant applications based on sample exceution, query type or jobs |
| US11204921B2 (en) * | 2018-06-01 | 2021-12-21 | Sap Se | Robustness metrics for optimization of query execution plans |
| US10867067B2 (en) | 2018-06-07 | 2020-12-15 | Cisco Technology, Inc. | Hybrid cognitive system for AI/ML data privacy |
| US10922316B2 (en) | 2018-06-13 | 2021-02-16 | Amazon Technologies, Inc. | Using computing resources to perform database queries according to a dynamically determined query size |
| US10446170B1 (en) | 2018-06-19 | 2019-10-15 | Cisco Technology, Inc. | Noise mitigation using machine learning |
| US12013856B2 (en) | 2018-08-13 | 2024-06-18 | Amazon Technologies, Inc. | Burst performance of database queries according to query size |
| US12067009B2 (en) * | 2018-12-10 | 2024-08-20 | Teradata Us, Inc. | Predictive query parsing time and optimization |
| US11544236B2 (en) * | 2018-12-28 | 2023-01-03 | Teradata Us, Inc. | Machine-learning driven database management |
| US11144344B2 (en) * | 2019-01-17 | 2021-10-12 | Afiniti, Ltd. | Techniques for behavioral pairing in a task assignment system |
| US11971793B2 (en) * | 2019-03-05 | 2024-04-30 | Micro Focus Llc | Machine learning model-based dynamic prediction of estimated query execution time taking into account other, concurrently executing queries |
| US11327970B1 (en) | 2019-03-25 | 2022-05-10 | Amazon Technologies, Inc. | Context dependent execution time prediction for redirecting queries |
| WO2020198925A1 (en) * | 2019-03-29 | 2020-10-08 | Pivotal Software, Inc. | Predicted properties for database query planning |
| US11308100B2 (en) | 2019-06-25 | 2022-04-19 | Amazon Technologies, Inc. | Dynamically assigning queries to secondary query processing resources |
| US11537909B2 (en) * | 2019-12-30 | 2022-12-27 | Oracle International Corporation | Monitoring database processes to generate machine learning predictions |
| CN111581454B (en) * | 2020-04-27 | 2023-05-23 | 清华大学 | Parallel query performance prediction system and method based on deep graph compression algorithm |
| US11537616B1 (en) * | 2020-06-29 | 2022-12-27 | Amazon Technologies, Inc. | Predicting query performance for prioritizing query execution |
| US12481869B1 (en) | 2020-07-08 | 2025-11-25 | Express Scripts Strategic Development, Inc. | Machine learning systems for predicting unenrollment in claims processing |
| US11762860B1 (en) * | 2020-12-10 | 2023-09-19 | Amazon Technologies, Inc. | Dynamic concurrency level management for database queries |
| US12153953B2 (en) * | 2021-04-08 | 2024-11-26 | International Business Machines Corporation | Intelligent identification of an execution environment |
| US20230325234A1 (en) * | 2022-04-12 | 2023-10-12 | Bank Of America Corporation | System and method for dynamic task scheduling |
| US12248473B1 (en) * | 2023-12-14 | 2025-03-11 | Amazon Technologies, Inc. | Query performance prediction using multiple experts |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5574900A (en) * | 1994-02-25 | 1996-11-12 | International Business Machines Corporation | System and method for optimizing parallel processing of database queries |
| US6009265A (en) * | 1994-02-25 | 1999-12-28 | International Business Machines Corporation | Program product for optimizing parallel processing of database queries |
| US5819255A (en) * | 1996-08-23 | 1998-10-06 | Tandem Computers, Inc. | System and method for database query optimization |
| US20100082599A1 (en) * | 2008-09-30 | 2010-04-01 | Goetz Graefe | Characterizing Queries To Predict Execution In A Database |
| US8275762B2 (en) * | 2008-10-21 | 2012-09-25 | Hewlett-Packard Development Company, L.P. | Reverse mapping of feature space to predict execution in a database |
| US9934261B2 (en) * | 2009-03-10 | 2018-04-03 | Hewlett Packard Enterprise Development Lp | Progress analyzer for database queries |
| US8285709B2 (en) * | 2009-05-12 | 2012-10-09 | Teradata Us, Inc. | High-concurrency query operator and method |
| US8666970B2 (en) * | 2011-01-20 | 2014-03-04 | Accenture Global Services Limited | Query plan enhancement |
| US8370280B1 (en) * | 2011-07-14 | 2013-02-05 | Google Inc. | Combining predictive models in predictive analytical modeling |
| US8966462B2 (en) * | 2012-08-10 | 2015-02-24 | Concurix Corporation | Memory management parameters derived from system modeling |
-
2013
- 2013-09-14 EP EP13893241.3A patent/EP3044692A4/en not_active Withdrawn
- 2013-09-14 US US14/917,074 patent/US20160203404A1/en not_active Abandoned
- 2013-09-14 WO PCT/US2013/059837 patent/WO2015038152A1/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| EP3044692A4 (en) | 2017-05-03 |
| WO2015038152A1 (en) | 2015-03-19 |
| US20160203404A1 (en) | 2016-07-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20160203404A1 (en) | Predicting execution times of concurrent queries | |
| US20240364780A1 (en) | Automated server workload management using machine learning | |
| US10983895B2 (en) | System and method for data application performance management | |
| Alipourfard et al. | {CherryPick}: Adaptively unearthing the best cloud configurations for big data analytics | |
| US8938375B2 (en) | Optimizing business process management models | |
| EP3798930A2 (en) | Machine learning training resource management | |
| US9396160B1 (en) | Automated test generation service | |
| US10409699B1 (en) | Live data center test framework | |
| US20240111739A1 (en) | Tuning large data infrastructures | |
| US10423201B2 (en) | Method and apparatus for demand estimation for energy management of client systems | |
| US20210097429A1 (en) | Machine learning training resource management | |
| Berral et al. | Aloja-ml: A framework for automating characterization and knowledge discovery in hadoop deployments | |
| Manda | LEVERAGING AI TO IMPROVE PERFORMANCE TUNING IN POST-MIGRATION ORACLE CLOUD ENVIRONMENTS | |
| US10248462B2 (en) | Management server which constructs a request load model for an object system, load estimation method thereof and storage medium for storing program | |
| Genkin et al. | Automatic, on-line tuning of YARN container memory and CPU parameters | |
| Chen et al. | Variation-aware evaluation of MPSoC task allocation and scheduling strategies using statistical model checking | |
| US20230185817A1 (en) | Multi-model and clustering database system | |
| Malensek et al. | Using distributed analytics to enable real-time exploration of discrete event simulations | |
| Wang et al. | Turbo: Dynamic and decentralized global analytics via machine learning | |
| US20230333971A1 (en) | Workload generation for optimal stress testing of big data management systems | |
| Ataei et al. | Towards a domain-driven distributed reference architecture for big data systems | |
| Emilsson | Container performance benchmark between Docker, LXD, Podman & Buildah | |
| Zurkowski et al. | Towards Self-organizing Cloud Polyglot Database Systems | |
| Naskos et al. | Elton: a cloud resource scaling-out manager for nosql databases | |
| Jehangiri et al. | Distributed predictive performance anomaly detection for virtualised platforms |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20160331 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| AX | Request for extension of the european patent |
Extension state: BA ME |
|
| DAX | Request for extension of the european patent (deleted) | ||
| A4 | Supplementary search report drawn up and despatched |
Effective date: 20170330 |
|
| RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 17/00 20060101AFI20170325BHEP Ipc: G06F 17/30 20060101ALI20170325BHEP |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: ENTIT SOFTWARE LLC |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
| 18W | Application withdrawn |
Effective date: 20180521 |