US20050192937A1 - Dynamic query optimization - Google Patents
Dynamic query optimization Download PDFInfo
- Publication number
- US20050192937A1 US20050192937A1 US10/787,639 US78763904A US2005192937A1 US 20050192937 A1 US20050192937 A1 US 20050192937A1 US 78763904 A US78763904 A US 78763904A US 2005192937 A1 US2005192937 A1 US 2005192937A1
- Authority
- US
- United States
- Prior art keywords
- query
- resources
- computer
- predefined
- processor
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Definitions
- the present invention relates generally to computer-implemented data processing methods, systems, and computer program products. More particularly, it relates to dynamically optimizing database queries, as appropriate, so that query runtimes complete within query governing time boundaries.
- query governors are mechanisms that perform several functions.
- query governors may be configured to allow all queries to run a predefined maximum amount of time, for example several seconds for all queries for all connections, or just the queries for a specific connection.
- One specific query governor function is to preempt or prevent long-running queries from executing before they start. This preemption is based on determinations of whether estimates of query runtime, as made by a query optimizer, will exceed predefined query time boundaries that have been set by the query governor. If a determination is made that the threshold may be exceeded then a warning may be issued and the query does not run. This is beneficial since it prevents system resources from being needlessly consumed.
- the present invention provides improvements in methods, systems, and computer program products for dynamically predicting an appropriate amount of computer resources that should be allocated to have queries complete within predefined query time boundaries which queries would not otherwise complete within such boundaries. Included are improvements for dynamically allocating the appropriate computer resources in accordance with these dynamic predictions without negative effect and that overcome many of the disadvantages of prior art processing arrangements.
- the aspects of the present invention include improvements in methods, systems, and computer program products with the advantages of having the dynamically allocated computer resources being derived from logically partitioned and/or grid environments.
- the aspects of the present invention include improvements in methods, systems, and computer program products with the advantages of apportioning costs to customers based on actually utilized computer resources whereby configurable demands of customers as to costs and performance are satisfied.
- Still another aspect of the present invention is that it provides for a reliable and efficient manner for query optimization.
- FIG. 1 is a block diagram of an environment having a provider of computing services through a grid environment, in accordance with the present invention.
- FIG. 2 is a block diagram of a computer system in accordance with one of the exemplary embodiments.
- FIG. 3 is a block diagram illustrating logical components in a logically partitioned computer system.
- FIG. 4 is an exemplary flow diagram illustrating the dynamic prediction of computer resources to be applied to queries, according to one embodiment of the present invention.
- FIG. 5 is an exemplary flow diagram illustrating the allocation and de-allocation of resources to one embodiment of the present invention.
- FIG. 6 is an exemplary flow diagram illustrating another aspect of the process being performed by the present invention.
- FIG. 7 is an exemplary flow diagram illustrating another aspect of the process being performed by the present invention.
- FIG. 8 is illustrative of a graphical user interface that is utilized for allowing a user to specify parameters for configuring system operations in order to meet the demands of customers.
- the present invention is generally directed to systems, methods, and computer program products for dynamically predicting and allocating computer resources, as appropriate, for completing queries within predefined query time boundaries which queries would have been preempted from running because they were predicted to complete outside the predefined query time boundaries.
- Optimization may involve the dynamic allocation of computer resources from, stand-alone computer systems, and/or grid computing, and/or logically partitioned processor environments. As such, system users would be fairly charged for computer resources actually utilized, but not for unneeded resources.
- FIGS. 1-3 illustrate one exemplary embodiment of a data processing system 100 for implementing query optimization methods in accordance with the present invention.
- the illustrated embodiment is but one example of a wide variety of systems that may be utilized.
- FIG. 1 a data processing environment 100 is shown in which the present invention is practiced.
- the data processing environment 100 includes a provider computer system 102 and a plurality of one or more computer systems 116 1 - 116 N (collectively 116 ).
- the provider computer system 102 is illustratively embodied as a server computer with respect to the system users (client) computer systems 116 .
- the provider computer system 102 and the client computer systems 116 may all be a network of computer systems configured to perform various functions, including those described herein. Further, the terms “client” and “server” are utilized herein merely for convenience and not by way of limitation. As such, the client computer system 116 , which may be clients relative to the provider computer system 102 in some regards, may themselves be servers relative to one or more other clients (not shown).
- the provider computer system 102 provides access to a grid computing environment 104 . Access to various resources within the grid computing environment 104 may also be provided by different service providers.
- the grid environment 104 may contain a plurality of different computing resources 120 1 - 120 N (collectively 120 ).
- the grid-computing environment 104 may include parallel and distributed computing systems that enable sharing, selection, and aggregation of geographically distributed resources at runtime depending on their availability, capability, performance, cost, and/or user's quality of service requirements.
- the grid computing environment 104 may be a network including diverse hardware and/or software computing resources. These resources may be available and accessible through a network medium 106 , such as the Internet, to a wide variety of users and may be shared between them.
- the network 106 may be any one of several suitable through which information may be transferred, such as, a local area network (LAN) or a wide area network (WAN).
- the provider computer system 102 may be configured with a hypertext transfer protocol (HTTP) server 122 for servicing requests from browser programs residing on the client computer systems 116 .
- HTTP hypertext transfer protocol
- the HTTP server 122 and the browser programs provide convenient and well-known software components for establishing a network connection (e.g., a TCP/IP connection) via the network 106 .
- the provider computer system 102 may be configured with a manager 108 that requests grid resources for the client computer systems 116 .
- the manager 108 manages routing requests from the client computer systems 116 to the appropriate resources of the grid environment 104 .
- Such a grid computing system is described in copending and commonly assigned patent application Serial No Ser. No. 10/659,976 filed on May 2, 2003, and is incorporated herein and made a part hereof. Only those details considered necessary for implementing the present invention will be presented.
- Some of the requests for grid resources are fulfilled on a fixed fee bases or fee bases dependent on parameter values. For example, fees are charged dependant on the time needed to process a query.
- the manager 108 also monitors progress of these requests by keeping track of time spent on a particular request and calculating costs associated therewith.
- the manager 108 is shown as a single entity, it should be noted that it may be representative of different functions implemented by different software and/or hardware components within the provider computer system 102 .
- the pricing is determined with respect to any variety of pricing criteria including, for example, time-based criteria, request-type or class criteria, priority criteria, historical information, system user identification criteria, and combinations thereof. These pricing criteria are applied to define pricing schedules or policies that the manager 108 may access to calculate a cost for a request.
- pricing criteria is defined in service contracts 112 stored in a database 110 .
- the database 110 is a relational database.
- the database 110 may utilize a database management system (DBMS), such as in DB2, that is commercially available from International Business Machines Corporation, Armonk, N.Y. for use with data files 111 .
- DBMS database management system
- the database 110 may also contain historical data 124 that include a log of requests received and processed in the past, with the corresponding amount of resources utilized and the time taken to process various aspects of the queries.
- a service contract may exist for each contractual system user of the provider computer system 102 .
- pricing criteria may be specified in generic pricing schedules 114 for system users who do not have contractual agreements with the service provider. Different generic pricing schedules 114 may exist for a variety of different pricing criteria including those mentioned above (e.g., request-time criteria, request-type or class criteria, priority criteria, historical information, system user identification criteria, and combinations thereof).
- Historical information may also serve as criteria for determining a pricing schedule. Pricing schedules may exist that take account of a combination of the one or more pricing criteria.
- the historical information may be supplied by the historical data 124 which includes information about the amount of resources and time taken to process a request in the past.
- the historical data 124 may be searched to determine whether a similar or same request as the request received has been processed in the past. If a similar request is located in the historical data, the information about resources utilized and time taken to process the request may be utilized to select a different pricing schedule.
- each of the criteria mentioned above are optional, and may or may not be utilized in determining pricing schedules, in different embodiments.
- FIG. 2 for illustrating a computer system 116 , such as an eServer iSeries computer system commercially available from International Business Machines Corporation, Armonk, N.Y. It will be appreciated that other computer systems are envisioned for use in implementing the present invention and that the illustrated embodiment is exemplary of but one.
- the computer system 116 comprises one or more processors 130 A-N (collectively 130 ) that are connected to a main memory 140 , a mass storage interface 150 , a display interface 160 , a network interface 170 , and a plurality of I/O slots 180 .
- a system bus 125 interconnects these components. Although only a single bus is utilized, those skilled in the art will appreciate that the present invention may utilize multiple buses.
- Each one of the processors may be constructed from one or more microprocessors and/or integrated circuits.
- the processors execute program instructions in the main memory.
- the mass storage interface 150 is utilized to connect to mass storage devices, such as a direct access storage device (DASD) 155 , for example a suitable CD RW drive, to a computer system.
- the display interface 160 is utilized to directly connect one or more displays 165 to the computer system.
- the displays 165 may be non-intelligent terminals or fully programmable workstations.
- the network interface 170 is utilized to connect other computer systems and/or workstations 175 to computer system 116 across a network. It is pointed out that the present invention applies no matter how many computer systems and/or workstations may be connected to other computer systems and/or workstations, regardless of the network connection technology that is utilized.
- the main memory 140 contains the data that may be read or written by any processor 130 or any other device that may access the main memory.
- the main memory 140 may include an operating system 141 .
- the main memory 140 stores programs and data that the processor may access and execute.
- the operating system 141 is a multitasking operating system, such as OS/400TM, AIXTM, or LinuxTM. Those skilled in the art will appreciate that the spirit and scope of the present invention is not limited to any one operating system.
- the operating system 141 manages the resources of the computer system including the processor 130 , main memory 140 , mass storage interface 150 , display interface 160 , network interface 170 , and I/O slots 180 . Any suitable operating system may be utilized.
- the operating system 141 includes applications for operating the system.
- the database management system 142 is an application for storing data into, retrieving data from, and modifying data stored in the database 110 using a high-level query language, such as Standard Query Language (SQL).
- SQL Standard Query Language
- a system user may utilize queries involving SQL commands in an interactive SQL program 143 .
- the queries operate to retrieve data and display it.
- a query optimizer 144 included in the database management system 142 is included in the database management system 142 .
- the query scheduling manager 146 manages the operation of the query governor 145 in a manner to be described so as to effect dynamic predicting of computer resources needed to have queries executed within the predefined time.
- the query scheduling manager 146 also includes a computer resource allocator application or module 147 , an actual computer resources meter application or module 148 , and a query history mechanism or module 149 as will be described.
- the resource allocator module 147 apportions the computer resources from the stand-alone, logical partitioned and grid environments, as appropriate, that are based on the predictions for completing query runtimes within the predefined query time boundaries that are set by the query governor.
- the actual usage metering module 148 is provided for use in determining costs based on actual utilization of computer resources.
- a query history module 149 is provided which creates history tables for new jobs and which updates history tables for known queries.
- the data base management system, the SQL application, the query optimizer, query scheduling manager, the query governor, the resource allocator, the actual usage meter, and the query history module may reside in the main memory, but, as is known, may reside elsewhere.
- the query optimizer 144 is an application that operates to select an efficient executable query plan for executing SQL queries applied to a database.
- a query plan is a method of executing a query.
- a query is a set of commands for retrieving data from a database. For example, a query plan may produce a requested result in which a query is run in the shortest period of time.
- the query optimizer 144 also enables predictions of running time periods in which the queries will execute, as well as indicates the hardware resources to be utilized for accomplishing the task.
- the query governor 145 is an application that receives from the query optimizer 144 predicted values as to how long a query is expected to run in order to complete.
- the query governor 145 acts to disallow the running of a query should the query have a predicted running length exceeding a set time frame or predefined query time boundaries value of the query governor.
- the predefined query time boundaries of the query governor may be set to a minimum threshold value and a maximum time limit value.
- the minimum threshold time value e.g., secs.
- the maximum time limit value is a maximum value of time (e.g., secs.) which if the predicted query runtime exceeds, will cause the query governor to prevent the query from running.
- the predefined query time boundaries boundary values or time settings of the query governor 145 may be established by system user or system configurations.
- the query scheduling manager 146 dynamically predicts an appropriate amount of computer resources for fitting or completing the predicted query runtime within the predefined query time boundaries set by the query governor based on the predicted query running time from the query optimizer 144 .
- This dynamic prediction takes into account available resources from the stand-alone, or from logically partitioned and/or grid computing environments.
- the query scheduling manager 146 dynamically allocates/de-allocates. through the computer resources allocator module 147 , the appropriate resources to have the query runtime fit or complete within the predefined query time boundaries set by the query governor.
- queries are allowed to execute which would otherwise be preempted from running because their predicted running time would have exceeded the predefined query time boundaries of the query governor.
- costs may be apportioned to customers based on actually utilized computer resources, including having the configurable demands of customers being satisfied, to accomplish the task.
- a logically partitioned computer system 200 includes N logical partitions, with each logical partition executing its own respective operating system.
- logical partitions 225 A-N (collectively 225 ) are shown executing their respective operating systems 226 A-N (collectively 226 ).
- the operating system 226 in each logical partition may be the same as the operating system in other partitions, or may be a completely different operating system.
- one partition may run the OS/400 operating system, while a different partition may run another instance of OS/400, possibly a different release.
- the operating systems in the logical partitions could even be different from OS/400, provided it is compatible with the hardware.
- the logical partitions 225 are managed by a partition manager 240 .
- partition manager 240 is known as a “Hypervisor” that is commercially available from International Business Machine Corporation.
- the partition manager 240 manages resources 250 , shown in FIG. 3 as resource 240 .
- a “resource” may be any hardware or software or combination thereof that may be controlled by partition manager 240 .
- hardware resources include processors, memory, and hard disk drives.
- Examples of software resources include a database, internal communications (such as a logical LAN), or applications (such as word processors, e-mail, etc.).
- the partition manager 240 controls which resources 250 may be allocated by the logical partitions 225 .
- the query managing method 400 dynamically allocates/de-allocates computer resources, appropriately, so that queries may run that were otherwise preempted from running due to their runtimes being predicted to be too long; as determined by the query governor.
- the query governor may be configured to have a threshold value or a limit which if the runtime of the query exceeds; the query will not be allowed to run.
- the query managing method 400 operates to apportion costs for computer resources that are actually utilized in accomplishing the tasks.
- the query managing method 400 starts in step 402 .
- a query is an event forwarded from the query optimizer to the query governor and includes a time value that predicts a query run time (e.g., seconds) for the query.
- a query governor determination step 406 follows.
- GUI graphical user interface
- the calculate time to complete step 408 follows. Specifically, in the calculate time to complete step 408 an algorithm is applied that calculates a new query running time based on the allocation of resources to get the query to run faster.
- the new query running time may be selected so that the new query running time estimate does not exceed a predefined time boundary. Accordingly, the query would not be preempted by the query governor.
- the query running time routine 500 may be performed by the scheduling module 146 .
- These new estimates of query running time e.g., seconds
- the predefined time boundary may be ten (10) seconds as established by a user entering ten (10) seconds in the field 810 ( FIG. 8 ).
- the query governor may only allow running of a query if the latter is estimated to finish in ten (10) seconds or less.
- the appropriate amounts of computer resources are dynamically allocated from other source(s) to assist in getting the query to finish in less than 10 seconds.
- the query running time routine 500 starts in the step 502 whereat, the query's runtime estimate is obtained from step 504 .
- Step 506 follows step 504 .
- a determination is made by the query governor as to whether or not the estimated duration of a query is greater than the time value, if any, entered by the system user in the Help Query Threshold field 802 ( FIG. 8 ).
- the predefined time boundary value entered in the Help Query Threshold field 802 need not be coincidental with the query governor limit time boundary value that is entered in the field 810 ( FIG. 8 ). It will be appreciated that when a user enters a value in the Help Query Threshold field 802 , the user may enter a non-zero percentage value in the Help Query % field 804 ( FIG. 8 ).
- the value entered in the Help Query % field 804 is based on a determination by the system user as to the percentages of available resources that the user would want to apply to get the query to run faster. For example, if a query is estimated to take longer than the value entered in the Help Query Threshold field 802 (e.g., 5 seconds), a user may desire to provide additional resources (CPU) from another partition or the like in a suitable amount to make the query run faster. The amount of additional CPU added would be based on a percentage value entered in the Help Query % field 804 . For example, the system user may want to help the query runtime by providing an increase of 20% of additional available resources.
- the invention envisions having the query governor take resources from the available resources if and only if a significant difference in query execution time can be reached, such as a 50% improvement, as added by the user in field 809 ( FIG. 8 ). For example, if a query is estimated to run in 5 seconds the system user might want additional resources so as to define a 50% improvement. Other percentage values may be entered. The present invention contemplates that the percentage value may be based on fees and/or the type of applications, systems or jobs, etc. that are running. Additional resources may be added based on predictions of additional bottlenecks predicted to occur by the query governor. Thus, delays in processing time will be a factor in estimating the amount of runtime estimated by the governor.
- a Set Help % step 508 follows.
- a percentage value is entered by the user in Help Query % field 804 . This value is utilized for determining the additional resources to make the query run faster.
- an algorithm utilizes the value to define additional amounts of resources to be added to get the query runtime, preferably, within the predefined time boundary.
- the resources to be added are in predefined amounts for accomplishing the above task.
- the system itself may configure such values as well.
- a query recalculate step 510 is performed in which a new estimated runtime for the query is utilized.
- step 510 a new predicted runtime for the query is recalculated based on the increased amount of resources to be allocated.
- the query running time routine 500 proceeds to exit in step 514 ; whereupon the recalculated query runtime is to be utilized in step 410 as will be described.
- step 512 a determination is made about whether the query runtime is greater than the predefined governor time limit set, preferably, by a user in field 810 of the GUI screen 800 .
- step 512 if a No decision is made, the routine exits as step 514 and then proceeds to step 410 .
- step 516 a decision is made about whether a governor Help flag has been set. The Help flag is utilized if a system user is interested in getting help for a predicted long-running query. If No, a system user did not set a governor Help flag, then the routine 500 exits in step 514 .
- step 518 an algorithm establishes the amount of resources to be added, by preconfigured user selected parameters. This is done so as to avoid having the query governor prevent execution of the query.
- the preconfigured amounts to be added will result in the query runtime completing within the predefined time boundary.
- step 520 a new query runtime will be recalculated. Thereafter, the routine 500 exits in step 514 , whereupon the reconfigured runtime estimate will be utilized in step 410 .
- the new estimated query runtime will be divided into an appropriate amount of segments; much as indicated in copending and commonly assigned patent application (Attorney Docket No. ROC920030044US1).
- the new query time is divided into several time segments and intervals (e.g., 4 segments). Each of the intervals is to be processed to determine if available computer resources are adequate or not to process the query.
- a falling behind decision is made in step 412 .
- the decision is made as to whether available resources will result in a query run which falls behind schedule. This decision takes into account the added query runtime including any other demands (such as bottlenecks) being made on the computer system during processing of the query. If the decision in step 412 is Yes, that the process would fall behind, additional resources are added appropriately in step 414 . Alternatively, if the decision in step 412 is No, then the Is Too Far Ahead decision step 416 follows.
- step 602 the adding resources process starts.
- step 604 a determination is made as to whether the processing is being done on a stand-alone or unpartitioned computer system. If Yes, then step 606 follows.
- step 606 an algorithm is applied to determine the amount of resources (e.g., extra CPU, memory) that should be allocated to reduce the query running time. Preferably, before the query will run, the amount of resources to be dynamically allocated is appropriate to speed up the query runtime. As such, the query is able to fit within the predefined time boundary.
- step 608 is performed.
- the Can Resources be Taken step 612 a determination is made as to whether or not partition(s) resources may be switched to the requesting partition to supply the resources that should be applied for getting the query to fit the time boundary. If a Yes decision is made in the Can Resources be Taken step 612 , the resources may be switched in the Switch Resources to Requesting Partition step 614 by an appropriate amount. Following step 614 , the process 600 then proceeds to exit step 607 , whereupon method 400 resumes.
- a Should We Wait step 616 is performed. In the Should We Wait step 616 , a determination may be made as to whether the process should wait for a predefined period of time before requesting resources from other partition(s). If a decision is No in the Should We Wait step 616 , then exit step 607 follows. Thereafter, the query managing method 400 resumes. Alternatively, if the decision is Yes in the Should We Wait step 616 , then a Wait step 618 is performed. In the Wait step 618 , a predetermined amount of time is allowed to elapse before sending the query resource request to the Can Resources be Taken step 612 .
- the time period of the waiting and the number of waiting cycles may be configured by the system.
- a Grid Compute decision is made in step 610 .
- the Grid Compute decision step 610 a determination is made as to whether or not the system is in a grid computing environment. If the decision in step 610 is Yes, then the Is Resource Available decision step 620 is performed. In step 620 , if the decision is Yes, then the Add additional resources step 622 is performed, and exits in step 607 . If the decision in the Is Resource Available decision step 620 is No, then the Should We Wait step 624 is performed. If the decision in the Should We Wait step 624 is No then the process exits in step 607 .
- step 625 is performed, whereby the process proceeds after a predefined time back to the Is Resources Available step 620 . If after a predetermined time no resources are available then step 607 follows and the query managing method 400 resumes in step 420 .
- step 412 As noted if the decision in the step 412 is negative, then the Is Too Far Ahead step 416 performed. If the decision in step 416 is No then step 420 follows. If the decision in step 416 is Yes, then the Subtract Resources step 418 follows.
- FIG. 7 for illustrating a resource removal method 700 for allocating appropriate resources that is to occur in step 418 .
- appropriate resources are added to the current process in order for the queries to finish at or in close proximity to the predefined query window.
- the resource removal process 700 starts in step 702 .
- step 704 a determination is made as to whether the processing being performed is on a stand-alone or unpartitioned computer system or not. If Yes, then in step 706 an algorithm is applied to determine the amount of computer resources that may be de-allocated or removed without impacting negatively on the queries finishing its runtime at or in close proximity to the predefined query window. Specifically in step 706 , it is determined if an appropriate amount of computer resources, such as CPU, may be de-allocated. The data from step 706 is forwarded to step 422 .
- step 708 may be performed in which it is determined if the machine that is running is a logically partitioned computer system. If in step 708 , No is determined, step 712 may be performed. In step 708 , a determination is made whether or not the computer system being utilized is logically partitioned or not. If No, then step 712 is performed. Alternatively, if Yes is decided in step 708 , then step 710 is performed. In step 710 , the partition manager 240 is notified as to which appropriate resources may be shifted to other partitions from the partition performing the current query process. Such shifting is based on appropriate input. If No was determined in step 708 , then step 712 is performed.
- step 712 a determination is made as to whether the grid computing environment 104 is coupled to the computer system 100 . If in step 712 , the decision is No, then the process 700 proceeds to step 716 . Alternatively, if the decision is Yes, then step 714 is performed in which data regarding the appropriate amount of resources is forwarded to the grid control. The grid control is operative for shifting such resources back to the grid environment 104 from the computer system 100 .
- a Can We finish step 420 a decision is made as to whether or not the recalculated query runtime may finish within the predefined time period given the available resources present at the moment. If the decision in step 420 is No, then the resources that were to be dynamically allocated earlier are to be withdrawn or subtracted from the Subtract Resource step 422 . Thereafter, the query is aborted in step 424 by the query governor. Alternatively, if the decision in the Can We Finish step 420 for the particular time segment or interval is Yes, then a Wait step 426 is performed for a predefined period of time. The wait is for all the segments created in the Divide into Segments step 410 to complete.
- the Did We Finish decision step 428 is performed.
- the Did We Finish decision step 428 a determination is made as to whether the new query estimate is finished within the predefined query time boundary or runtime. If No, then the process loops back to step 412 for a repetition of the process. Alternatively, if Yes is the decision in the Did We Finish decision step 428 , then additional resources not needed are removed or subtracted in the Subtract Resources step 430 . Following the Subtract Resources step 430 , the query managing method 400 terminates or exits in step 432 .
- FIG. 8 illustrates a graphical user interface (GUI) configuration screen 800 for allowing a system user to configure parameters that are utilized in the performance of the steps of the present invention.
- GUI graphical user interface
- a field 802 is provided in which values are input for parameters that control the Help query threshold.
- the Help query threshold may include values of time (e.g., seconds) which define a threshold value which if exceeded by the query running would cause the query governor to preempt running of the query.
- Field 804 is useful in terms of having the system user selecting increases in computer resources utilized in the query run that will improve query time performance so as to fit the query within the predefined time boundary. For example, these values may relate to percentage increases (10%, 20%, of etc.) of computer resources.
- Field 806 is useful in terms of having a user set a governor Helper flag. If the flag is set in the field 806 , the query scheduling manager 146 will allow the query governor to operate so as to allocate resources in relation to having the query run within the predefined time boundary. This will occur if the query's run is predicted to exceed the query governor time limit. In regard to the latter, a user may identify the maximum governor time limit for query runs in field 810 in terms of a time unit (e.g., seconds).
- the field 808 allows user input of added computer resources that will prevent a query from timing out. The amount of additional computer resources may be based on providing known percentages increases of computer resources, such as preselected percentage increases (e.g., 10%, 20%, etc.). Other algorithms may be utilized in terms increasing computer resources.
- One aspect of the invention is implemented as a program product for use with a computer system or environment.
- the program(s) of the program product defines functions of the embodiments (including the methods described herein) and may be contained on a variety of signal-bearing media.
- Illustrative signal-bearing media include, but are not limited to: (i) information permanently stored on non-writable storage media (e.g., read-only memory devices generally within a computer such as CD-ROM disks readable by a CD-ROM drive); (ii) alterable information stored on writable storage media (e.g., floppy disks generally within a diskette drive or hard-disk drive); and (iii) information conveyed to a computer by a communications medium, such as through a computer or telephone network, including wireless communications.
- a communications medium such as through a computer or telephone network, including wireless communications.
- the latter embodiment specifically includes information downloaded from the Internet and other networks.
- Such signal-bearing media when carrying computer
- routines executed to implement the embodiments of the invention may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions.
- routines executed to implement the embodiments of the invention may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions.
- the computer program of the present invention typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions.
- programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices.
- various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature utilized is merely for convenience. Thus, the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Operations Research (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Methods, systems, and computer program products for dynamically adjusting computer resources, as appropriate, in response to predictions of query runtimes as well as for rendering costs of the computer resources actually utilized, which costs are consistent with consumer demands.
Description
- The present invention is related to the following copending and commonly assigned U.S. patent application: ROC920030044US1; commonly filed herewith and incorporated herein by reference and made a part hereof.
- The present invention relates generally to computer-implemented data processing methods, systems, and computer program products. More particularly, it relates to dynamically optimizing database queries, as appropriate, so that query runtimes complete within query governing time boundaries.
- In typical database querying using SQL, query governors are mechanisms that perform several functions. Typically, query governors may be configured to allow all queries to run a predefined maximum amount of time, for example several seconds for all queries for all connections, or just the queries for a specific connection. One specific query governor function is to preempt or prevent long-running queries from executing before they start. This preemption is based on determinations of whether estimates of query runtime, as made by a query optimizer, will exceed predefined query time boundaries that have been set by the query governor. If a determination is made that the threshold may be exceeded then a warning may be issued and the query does not run. This is beneficial since it prevents system resources from being needlessly consumed.
- While query governors manage queries in the foregoing fashion, there are no known approaches for dynamically predicting the appropriate amount of computer resources needed for fitting otherwise long-running queries within predefined query time boundaries so that the queries are not preempted from running. Furthermore, no approaches are known for dynamically allocating the appropriate amount of computer resources to fit the otherwise long-running queries within the predefined query time boundaries wherein the allocations are based on the dynamic predictions. In addition, no approaches are known for use in systems wherein the allocated resources are made available from logically partitioned and/or grid environments for achieving the foregoing tasks. Moreover, no approaches are known for apportioning costs or fees to customers based on computer resources actually utilized to achieve the foregoing, let alone to satisfy the configurable costs and performance demands of customers.
- Accordingly there are needs for methods, systems, and computer program products for the benefit of providing query governors that: manage data by preventing long-running queries from executing; dynamically predict the appropriate amount of computer resources needed for fitting query runs so as to complete within predefined time boundaries; dynamically allocate the appropriate amount of computer resources for making query runs complete within the predefined query time boundaries based on such dynamic predictions; are applicable in logically partitioned and/or grid environments for apportioning resources; and, apportion costs to customers based on actually utilized computer resources, whereby configurable demands of customers are satisfied.
- Accordingly, without such needs being satisfied, the true potential of running queries with query governors will not be easily achieved.
- The present invention provides improvements in methods, systems, and computer program products for dynamically predicting an appropriate amount of computer resources that should be allocated to have queries complete within predefined query time boundaries which queries would not otherwise complete within such boundaries. Included are improvements for dynamically allocating the appropriate computer resources in accordance with these dynamic predictions without negative effect and that overcome many of the disadvantages of prior art processing arrangements.
- The aspects of the present invention include improvements in methods, systems, and computer program products with the advantages of having the dynamically allocated computer resources being derived from logically partitioned and/or grid environments.
- The aspects of the present invention include improvements in methods, systems, and computer program products with the advantages of apportioning costs to customers based on actually utilized computer resources whereby configurable demands of customers as to costs and performance are satisfied.
- Still another aspect of the present invention is that it provides for a reliable and efficient manner for query optimization.
- These and other features and aspects of the present invention will be more fully understood from the following detailed description of the exemplary embodiments, which should be read in light of the accompanying drawings. It should be understood that both the foregoing generalized description and the following detailed description are exemplary, and are not restrictive of the invention.
-
FIG. 1 is a block diagram of an environment having a provider of computing services through a grid environment, in accordance with the present invention. -
FIG. 2 is a block diagram of a computer system in accordance with one of the exemplary embodiments. -
FIG. 3 is a block diagram illustrating logical components in a logically partitioned computer system. -
FIG. 4 is an exemplary flow diagram illustrating the dynamic prediction of computer resources to be applied to queries, according to one embodiment of the present invention. -
FIG. 5 is an exemplary flow diagram illustrating the allocation and de-allocation of resources to one embodiment of the present invention. -
FIG. 6 is an exemplary flow diagram illustrating another aspect of the process being performed by the present invention. -
FIG. 7 is an exemplary flow diagram illustrating another aspect of the process being performed by the present invention. -
FIG. 8 is illustrative of a graphical user interface that is utilized for allowing a user to specify parameters for configuring system operations in order to meet the demands of customers. - The present invention is generally directed to systems, methods, and computer program products for dynamically predicting and allocating computer resources, as appropriate, for completing queries within predefined query time boundaries which queries would have been preempted from running because they were predicted to complete outside the predefined query time boundaries. Optimization may involve the dynamic allocation of computer resources from, stand-alone computer systems, and/or grid computing, and/or logically partitioned processor environments. As such, system users would be fairly charged for computer resources actually utilized, but not for unneeded resources.
-
FIGS. 1-3 illustrate one exemplary embodiment of adata processing system 100 for implementing query optimization methods in accordance with the present invention. The illustrated embodiment is but one example of a wide variety of systems that may be utilized. Referring now toFIG. 1 , adata processing environment 100 is shown in which the present invention is practiced. Generally, thedata processing environment 100 includes aprovider computer system 102 and a plurality of one or more computer systems 116 1-116 N (collectively 116). Theprovider computer system 102 is illustratively embodied as a server computer with respect to the system users (client)computer systems 116. Although all computers are illustrated as singular entities, in practice theprovider computer system 102 and theclient computer systems 116 may all be a network of computer systems configured to perform various functions, including those described herein. Further, the terms “client” and “server” are utilized herein merely for convenience and not by way of limitation. As such, theclient computer system 116, which may be clients relative to theprovider computer system 102 in some regards, may themselves be servers relative to one or more other clients (not shown). - The
provider computer system 102 and theclient computer systems 116 communicate through anetwork 106. Theprovider computer system 102 provides access to agrid computing environment 104. Access to various resources within thegrid computing environment 104 may also be provided by different service providers. Thegrid environment 104 may contain a plurality of different computing resources 120 1-120 N (collectively 120). The grid-computing environment 104 may include parallel and distributed computing systems that enable sharing, selection, and aggregation of geographically distributed resources at runtime depending on their availability, capability, performance, cost, and/or user's quality of service requirements. Thegrid computing environment 104 may be a network including diverse hardware and/or software computing resources. These resources may be available and accessible through anetwork medium 106, such as the Internet, to a wide variety of users and may be shared between them. - In the exemplary embodiment, the
network 106 may be any one of several suitable through which information may be transferred, such as, a local area network (LAN) or a wide area network (WAN). Theprovider computer system 102 may be configured with a hypertext transfer protocol (HTTP)server 122 for servicing requests from browser programs residing on theclient computer systems 116. The HTTPserver 122 and the browser programs provide convenient and well-known software components for establishing a network connection (e.g., a TCP/IP connection) via thenetwork 106. - Referring back to the
provider computer system 102, it may be configured with amanager 108 that requests grid resources for theclient computer systems 116. In an exemplary embodiment, themanager 108 manages routing requests from theclient computer systems 116 to the appropriate resources of thegrid environment 104. Such a grid computing system is described in copending and commonly assigned patent application Serial No Ser. No. 10/659,976 filed on May 2, 2003, and is incorporated herein and made a part hereof. Only those details considered necessary for implementing the present invention will be presented. - Some of the requests for grid resources are fulfilled on a fixed fee bases or fee bases dependent on parameter values. For example, fees are charged dependant on the time needed to process a query. The
manager 108 also monitors progress of these requests by keeping track of time spent on a particular request and calculating costs associated therewith. Although, themanager 108 is shown as a single entity, it should be noted that it may be representative of different functions implemented by different software and/or hardware components within theprovider computer system 102. The pricing is determined with respect to any variety of pricing criteria including, for example, time-based criteria, request-type or class criteria, priority criteria, historical information, system user identification criteria, and combinations thereof. These pricing criteria are applied to define pricing schedules or policies that themanager 108 may access to calculate a cost for a request. In one embodiment, pricing criteria is defined inservice contracts 112 stored in adatabase 110. Thedatabase 110 is a relational database. Thedatabase 110 may utilize a database management system (DBMS), such as in DB2, that is commercially available from International Business Machines Corporation, Armonk, N.Y. for use with data files 111. Thedatabase 110 may also containhistorical data 124 that include a log of requests received and processed in the past, with the corresponding amount of resources utilized and the time taken to process various aspects of the queries. A service contract may exist for each contractual system user of theprovider computer system 102. In another embodiment, pricing criteria may be specified ingeneric pricing schedules 114 for system users who do not have contractual agreements with the service provider. Differentgeneric pricing schedules 114 may exist for a variety of different pricing criteria including those mentioned above (e.g., request-time criteria, request-type or class criteria, priority criteria, historical information, system user identification criteria, and combinations thereof). - Historical information may also serve as criteria for determining a pricing schedule. Pricing schedules may exist that take account of a combination of the one or more pricing criteria. The historical information may be supplied by the
historical data 124 which includes information about the amount of resources and time taken to process a request in the past. Thehistorical data 124 may be searched to determine whether a similar or same request as the request received has been processed in the past. If a similar request is located in the historical data, the information about resources utilized and time taken to process the request may be utilized to select a different pricing schedule. Of course, each of the criteria mentioned above are optional, and may or may not be utilized in determining pricing schedules, in different embodiments. - Reference is made to
FIG. 2 for illustrating acomputer system 116, such as an eServer iSeries computer system commercially available from International Business Machines Corporation, Armonk, N.Y. It will be appreciated that other computer systems are envisioned for use in implementing the present invention and that the illustrated embodiment is exemplary of but one. Thecomputer system 116 comprises one or more processors 130 A-N (collectively 130) that are connected to amain memory 140, amass storage interface 150, adisplay interface 160, anetwork interface 170, and a plurality of I/O slots 180. Asystem bus 125 interconnects these components. Although only a single bus is utilized, those skilled in the art will appreciate that the present invention may utilize multiple buses. Each one of the processors may be constructed from one or more microprocessors and/or integrated circuits. The processors execute program instructions in the main memory. Themass storage interface 150 is utilized to connect to mass storage devices, such as a direct access storage device (DASD) 155, for example a suitable CD RW drive, to a computer system. Thedisplay interface 160 is utilized to directly connect one ormore displays 165 to the computer system. Thedisplays 165 may be non-intelligent terminals or fully programmable workstations. Thenetwork interface 170 is utilized to connect other computer systems and/orworkstations 175 tocomputer system 116 across a network. It is pointed out that the present invention applies no matter how many computer systems and/or workstations may be connected to other computer systems and/or workstations, regardless of the network connection technology that is utilized. - The
main memory 140 contains the data that may be read or written by any processor 130 or any other device that may access the main memory. Themain memory 140 may include anoperating system 141. Themain memory 140 stores programs and data that the processor may access and execute. Theoperating system 141 is a multitasking operating system, such as OS/400™, AIX™, or Linux™. Those skilled in the art will appreciate that the spirit and scope of the present invention is not limited to any one operating system. Theoperating system 141 manages the resources of the computer system including the processor 130,main memory 140,mass storage interface 150,display interface 160,network interface 170, and I/O slots 180. Any suitable operating system may be utilized. Theoperating system 141 includes applications for operating the system. Included in themain memory 140 is the database management system (DBMS) 142. Thedatabase management system 142 is an application for storing data into, retrieving data from, and modifying data stored in thedatabase 110 using a high-level query language, such as Standard Query Language (SQL). A system user may utilize queries involving SQL commands in aninteractive SQL program 143. The queries operate to retrieve data and display it. Also, included in thedatabase management system 142 is aquery optimizer 144, aquery governor 145, and, aquery scheduling manager 146. Thequery scheduling manager 146 manages the operation of thequery governor 145 in a manner to be described so as to effect dynamic predicting of computer resources needed to have queries executed within the predefined time. Thequery scheduling manager 146 also includes a computer resource allocator application ormodule 147, an actual computer resources meter application ormodule 148, and a query history mechanism ormodule 149 as will be described. Theresource allocator module 147 apportions the computer resources from the stand-alone, logical partitioned and grid environments, as appropriate, that are based on the predictions for completing query runtimes within the predefined query time boundaries that are set by the query governor. The actualusage metering module 148 is provided for use in determining costs based on actual utilization of computer resources. Aquery history module 149 is provided which creates history tables for new jobs and which updates history tables for known queries. The data base management system, the SQL application, the query optimizer, query scheduling manager, the query governor, the resource allocator, the actual usage meter, and the query history module may reside in the main memory, but, as is known, may reside elsewhere. - The
query optimizer 144 is an application that operates to select an efficient executable query plan for executing SQL queries applied to a database. A query plan is a method of executing a query. A query is a set of commands for retrieving data from a database. For example, a query plan may produce a requested result in which a query is run in the shortest period of time. Thequery optimizer 144 also enables predictions of running time periods in which the queries will execute, as well as indicates the hardware resources to be utilized for accomplishing the task. Thequery governor 145 is an application that receives from thequery optimizer 144 predicted values as to how long a query is expected to run in order to complete. Thequery governor 145 acts to disallow the running of a query should the query have a predicted running length exceeding a set time frame or predefined query time boundaries value of the query governor. The predefined query time boundaries of the query governor may be set to a minimum threshold value and a maximum time limit value. The minimum threshold time value (e.g., secs.) is determined to be a value which if the query exceeds, will cause the query governor to prevent the query from running. The maximum time limit value is a maximum value of time (e.g., secs.) which if the predicted query runtime exceeds, will cause the query governor to prevent the query from running. The predefined query time boundaries boundary values or time settings of thequery governor 145 may be established by system user or system configurations. - In accordance with the present invention, the
query scheduling manager 146 dynamically predicts an appropriate amount of computer resources for fitting or completing the predicted query runtime within the predefined query time boundaries set by the query governor based on the predicted query running time from thequery optimizer 144. This dynamic prediction takes into account available resources from the stand-alone, or from logically partitioned and/or grid computing environments. Thereafter, thequery scheduling manager 146 dynamically allocates/de-allocates. through the computerresources allocator module 147, the appropriate resources to have the query runtime fit or complete within the predefined query time boundaries set by the query governor. As a result, queries are allowed to execute which would otherwise be preempted from running because their predicted running time would have exceeded the predefined query time boundaries of the query governor. Also, costs may be apportioned to customers based on actually utilized computer resources, including having the configurable demands of customers being satisfied, to accomplish the task. - At this point, it is important to note that while the present invention has been and will continue to be described in the context of a fully functional computer system, those skilled in the art will appreciate that the present invention is capable of being distributed as a program product in a variety of forms, and that the present invention applies equally regardless of the particular type or class of computer readable signal bearing media utilized to actually carry out the distribution. The exemplary embodiments also extend to a logically partitioned computer system and/or a grid environment.
- In this regard, reference is made to copending U.S. patent application Ser. No. 10/616,676 filed Jul. 10, 2003, which is commonly assigned. However, only those aspects thereof which relate to understanding the present invention will be set forth. The logical partitions may provide completely different computing environments on the same physical computer system.
- Referring to
FIG. 3 , one specific implementation of a logically partitionedcomputer system 200 includes N logical partitions, with each logical partition executing its own respective operating system. InFIG. 3 , logical partitions 225 A-N (collectively 225) are shown executing their respective operating systems 226 A-N (collectively 226). The operating system 226 in each logical partition may be the same as the operating system in other partitions, or may be a completely different operating system. Thus, one partition may run the OS/400 operating system, while a different partition may run another instance of OS/400, possibly a different release. The operating systems in the logical partitions could even be different from OS/400, provided it is compatible with the hardware. The logical partitions 225 are managed by apartition manager 240. One example ofsuitable partition manager 240 is known as a “Hypervisor” that is commercially available from International Business Machine Corporation. Thepartition manager 240 manages resources 250, shown inFIG. 3 asresource 240. As used in the present application, a “resource” may be any hardware or software or combination thereof that may be controlled bypartition manager 240. Examples of hardware resources include processors, memory, and hard disk drives. Examples of software resources include a database, internal communications (such as a logical LAN), or applications (such as word processors, e-mail, etc.). Thepartition manager 240 controls which resources 250 may be allocated by the logical partitions 225. A resource, once made available to thepartition manager 240, is categorized as anavailable resource 260 if it has not yet been assigned to a logical partition, is categorized as a sharedresource 270 if multiple logical partitions may access the resource, and is categorized as a dedicated resource 280 A-N (collectively 280) if it has been exclusively assigned to a logical partition. - Referring now to
FIG. 4 , there are illustrated exemplary steps of aquery managing method 400 of the present invention that are implemented by thedata processing system 100 including thequery scheduling manager 146. Basically, thequery managing method 400 dynamically allocates/de-allocates computer resources, appropriately, so that queries may run that were otherwise preempted from running due to their runtimes being predicted to be too long; as determined by the query governor. The query governor may be configured to have a threshold value or a limit which if the runtime of the query exceeds; the query will not be allowed to run. In addition, thequery managing method 400 operates to apportion costs for computer resources that are actually utilized in accomplishing the tasks. Thequery managing method 400 starts instep 402. In aGet Event step 404, a query is an event forwarded from the query optimizer to the query governor and includes a time value that predicts a query run time (e.g., seconds) for the query. From theGet Event step 404, a querygovernor determination step 406 follows. - In the query
governor determination step 406, a decision is made by the query governor whether the query's predicted runtime, as obtained by the query optimizer, will fit within predefined query time boundaries or not. These predefined boundaries may be set, for example, by a user through a graphical user interface (GUI) screen 800 (FIG. 8 ) as will be explained. If the decision instep 406 is No, that is a query is not going to exceed a predefined time boundary, then thequery managing method 400 proceeds back to theGet Event step 404. Following this return, thequery managing method 400 awaits for another query to evaluate. Alternatively, if the determination in thestep 406 is Yes, that is indicative of query governor preemption due to the query's predicted runtime exceeding a predefined time boundary, then the calculate time to completestep 408 follows. Specifically, in the calculate time to completestep 408 an algorithm is applied that calculates a new query running time based on the allocation of resources to get the query to run faster. The new query running time may be selected so that the new query running time estimate does not exceed a predefined time boundary. Accordingly, the query would not be preempted by the query governor. - In particular, reference is made to
FIG. 5 for illustrating exemplary steps for accomplishing the task of calculating the new estimated query running time routine ormethod 500 that is performed instep 408. The query runningtime routine 500 may be performed by thescheduling module 146. These new estimates of query running time (e.g., seconds) are, preferably, indicative of the query running time getting faster and completing prior to the predefined time boundary being exceeded. For instance, the predefined time boundary may be ten (10) seconds as established by a user entering ten (10) seconds in the field 810 (FIG. 8 ). As a result, the query governor may only allow running of a query if the latter is estimated to finish in ten (10) seconds or less. As will be explained, the appropriate amounts of computer resources are dynamically allocated from other source(s) to assist in getting the query to finish in less than 10 seconds. - The query running
time routine 500 starts in thestep 502 whereat, the query's runtime estimate is obtained fromstep 504. Step 506 followsstep 504. Instep 506, a determination is made by the query governor as to whether or not the estimated duration of a query is greater than the time value, if any, entered by the system user in the Help Query Threshold field 802 (FIG. 8 ). By doing it this way, a user may set a predefined time boundary at which available resources will be sought for a query. The predefined time boundary value entered in the HelpQuery Threshold field 802 need not be coincidental with the query governor limit time boundary value that is entered in the field 810 (FIG. 8 ). It will be appreciated that when a user enters a value in the HelpQuery Threshold field 802, the user may enter a non-zero percentage value in the Help Query % field 804 (FIG. 8 ). - The value entered in the Help
Query % field 804 is based on a determination by the system user as to the percentages of available resources that the user would want to apply to get the query to run faster. For example, if a query is estimated to take longer than the value entered in the Help Query Threshold field 802 (e.g., 5 seconds), a user may desire to provide additional resources (CPU) from another partition or the like in a suitable amount to make the query run faster. The amount of additional CPU added would be based on a percentage value entered in the HelpQuery % field 804. For example, the system user may want to help the query runtime by providing an increase of 20% of additional available resources. Additionally, the invention envisions having the query governor take resources from the available resources if and only if a significant difference in query execution time can be reached, such as a 50% improvement, as added by the user in field 809 (FIG. 8 ). For example, if a query is estimated to run in 5 seconds the system user might want additional resources so as to define a 50% improvement. Other percentage values may be entered. The present invention contemplates that the percentage value may be based on fees and/or the type of applications, systems or jobs, etc. that are running. Additional resources may be added based on predictions of additional bottlenecks predicted to occur by the query governor. Thus, delays in processing time will be a factor in estimating the amount of runtime estimated by the governor. - Referring back to step 506, if there is a Yes decision that a query's estimated runtime exceeds the value in the Help
Query Threshold field 802, then a SetHelp % step 508 follows. Instep 508, a percentage value is entered by the user in HelpQuery % field 804. This value is utilized for determining the additional resources to make the query run faster. Specifically, an algorithm utilizes the value to define additional amounts of resources to be added to get the query runtime, preferably, within the predefined time boundary. The resources to be added are in predefined amounts for accomplishing the above task. The system itself may configure such values as well. Following thestep 508, aquery recalculate step 510 is performed in which a new estimated runtime for the query is utilized. Instep 510, a new predicted runtime for the query is recalculated based on the increased amount of resources to be allocated. Thereafter, the query runningtime routine 500 proceeds to exit instep 514; whereupon the recalculated query runtime is to be utilized instep 410 as will be described. - Alternatively, if No is decided in
step 506, then thestep 512 follows. In step 512 a determination is made about whether the query runtime is greater than the predefined governor time limit set, preferably, by a user infield 810 of theGUI screen 800. Instep 512, if a No decision is made, the routine exits asstep 514 and then proceeds to step 410. Alternatively, if Yes instep 512, then step 516 follows. Instep 516, a decision is made about whether a governor Help flag has been set. The Help flag is utilized if a system user is interested in getting help for a predicted long-running query. If No, a system user did not set a governor Help flag, then the routine 500 exits instep 514. If Yes, a system user did set a governor Help flag, as by setting an appropriate value in afield 804 in aGUI 800 inFIG. 8 , the computer resources are to be added. Instep 518, an algorithm establishes the amount of resources to be added, by preconfigured user selected parameters. This is done so as to avoid having the query governor prevent execution of the query. The preconfigured amounts to be added will result in the query runtime completing within the predefined time boundary. Instep 520, a new query runtime will be recalculated. Thereafter, the routine 500 exits instep 514, whereupon the reconfigured runtime estimate will be utilized instep 410. - Returning to
FIG. 4 , instep 410 the new estimated query runtime will be divided into an appropriate amount of segments; much as indicated in copending and commonly assigned patent application (Attorney Docket No. ROC920030044US1). For example, the new query time is divided into several time segments and intervals (e.g., 4 segments). Each of the intervals is to be processed to determine if available computer resources are adequate or not to process the query. Thereafter, a falling behind decision is made instep 412. The decision is made as to whether available resources will result in a query run which falls behind schedule. This decision takes into account the added query runtime including any other demands (such as bottlenecks) being made on the computer system during processing of the query. If the decision instep 412 is Yes, that the process would fall behind, additional resources are added appropriately instep 414. Alternatively, if the decision instep 412 is No, then the Is Too FarAhead decision step 416 follows. - Reference is made to
FIG. 6 for illustrating aresource allocation method 600 for allocating appropriate resources that may occur instep 414. In operation of theresource allocation method 600, appropriate resources are added to the current process in order for the queries fit within predefined query time boundaries. Instep 602, the adding resources process starts. Instep 604, a determination is made as to whether the processing is being done on a stand-alone or unpartitioned computer system. If Yes, then step 606 follows. Instep 606 an algorithm is applied to determine the amount of resources (e.g., extra CPU, memory) that should be allocated to reduce the query running time. Preferably, before the query will run, the amount of resources to be dynamically allocated is appropriate to speed up the query runtime. As such, the query is able to fit within the predefined time boundary. Following such allocation indication instep 606, then the routine 600 exits atstep 607, whereupon thequery managing method 400 continues. Alternatively, if No, then step 608 is performed. - In step 608 a decision is made as to whether the system is an LPAR system. If a Yes decision is made at
step 608 then a Can Resources be Takendecision step 612 follows. In the Can Resources be Takenstep 612, a determination is made as to whether or not partition(s) resources may be switched to the requesting partition to supply the resources that should be applied for getting the query to fit the time boundary. If a Yes decision is made in the Can Resources be Takenstep 612, the resources may be switched in the Switch Resources to RequestingPartition step 614 by an appropriate amount. Followingstep 614, theprocess 600 then proceeds to exitstep 607, whereuponmethod 400 resumes. Alternatively, if in the Can Resources be Taken step 612 a No or negative decision is made, then a Should We Waitstep 616 is performed. In the Should We Waitstep 616, a determination may be made as to whether the process should wait for a predefined period of time before requesting resources from other partition(s). If a decision is No in the Should We Waitstep 616, then exitstep 607 follows. Thereafter, thequery managing method 400 resumes. Alternatively, if the decision is Yes in the Should We Waitstep 616, then aWait step 618 is performed. In theWait step 618, a predetermined amount of time is allowed to elapse before sending the query resource request to the Can Resources be Takenstep 612. The time period of the waiting and the number of waiting cycles may be configured by the system. Alternatively, if a No determination is decided, then a Grid Compute decision is made instep 610. In the GridCompute decision step 610, a determination is made as to whether or not the system is in a grid computing environment. If the decision instep 610 is Yes, then the Is ResourceAvailable decision step 620 is performed. Instep 620, if the decision is Yes, then the Add additional resources step 622 is performed, and exits instep 607. If the decision in the Is ResourceAvailable decision step 620 is No, then the Should We Waitstep 624 is performed. If the decision in the Should We Waitstep 624 is No then the process exits instep 607. If the decision in the Should We Waitstep 624 is Yes then theWait step 625 is performed, whereby the process proceeds after a predefined time back to the Is ResourcesAvailable step 620. If after a predetermined time no resources are available then step 607 follows and thequery managing method 400 resumes instep 420. - As noted if the decision in the
step 412 is negative, then the Is TooFar Ahead step 416 performed. If the decision instep 416 is No then step 420 follows. If the decision instep 416 is Yes, then the SubtractResources step 418 follows. - Reference is made to
FIG. 7 for illustrating aresource removal method 700 for allocating appropriate resources that is to occur instep 418. In operation of themethod 700, appropriate resources are added to the current process in order for the queries to finish at or in close proximity to the predefined query window. Theresource removal process 700 starts instep 702. Instep 704, a determination is made as to whether the processing being performed is on a stand-alone or unpartitioned computer system or not. If Yes, then instep 706 an algorithm is applied to determine the amount of computer resources that may be de-allocated or removed without impacting negatively on the queries finishing its runtime at or in close proximity to the predefined query window. Specifically instep 706, it is determined if an appropriate amount of computer resources, such as CPU, may be de-allocated. The data fromstep 706 is forwarded to step 422. - Alternatively, if No is determined in
step 704, then step 708 may be performed in which it is determined if the machine that is running is a logically partitioned computer system. If instep 708, No is determined,step 712 may be performed. Instep 708, a determination is made whether or not the computer system being utilized is logically partitioned or not. If No, then step 712 is performed. Alternatively, if Yes is decided instep 708, then step 710 is performed. Instep 710, thepartition manager 240 is notified as to which appropriate resources may be shifted to other partitions from the partition performing the current query process. Such shifting is based on appropriate input. If No was determined instep 708, then step 712 is performed. Instep 712, a determination is made as to whether thegrid computing environment 104 is coupled to thecomputer system 100. If instep 712, the decision is No, then theprocess 700 proceeds to step 716. Alternatively, if the decision is Yes, then step 714 is performed in which data regarding the appropriate amount of resources is forwarded to the grid control. The grid control is operative for shifting such resources back to thegrid environment 104 from thecomputer system 100. - Reference is made back to
FIG. 4 for a continuation of the method. In a Can We finishstep 420, a decision is made as to whether or not the recalculated query runtime may finish within the predefined time period given the available resources present at the moment. If the decision instep 420 is No, then the resources that were to be dynamically allocated earlier are to be withdrawn or subtracted from the SubtractResource step 422. Thereafter, the query is aborted instep 424 by the query governor. Alternatively, if the decision in the Can We Finish step 420 for the particular time segment or interval is Yes, then aWait step 426 is performed for a predefined period of time. The wait is for all the segments created in the Divide into Segments step 410 to complete. After theWait step 426, then the Did We Finishdecision step 428 is performed. In the Did We Finishdecision step 428, a determination is made as to whether the new query estimate is finished within the predefined query time boundary or runtime. If No, then the process loops back to step 412 for a repetition of the process. Alternatively, if Yes is the decision in the Did We Finishdecision step 428, then additional resources not needed are removed or subtracted in the SubtractResources step 430. Following the SubtractResources step 430, thequery managing method 400 terminates or exits instep 432. -
FIG. 8 illustrates a graphical user interface (GUI)configuration screen 800 for allowing a system user to configure parameters that are utilized in the performance of the steps of the present invention. In this regard, afield 802 is provided in which values are input for parameters that control the Help query threshold. The Help query threshold may include values of time (e.g., seconds) which define a threshold value which if exceeded by the query running would cause the query governor to preempt running of the query.Field 804 is useful in terms of having the system user selecting increases in computer resources utilized in the query run that will improve query time performance so as to fit the query within the predefined time boundary. For example, these values may relate to percentage increases (10%, 20%, of etc.) of computer resources.Field 806 is useful in terms of having a user set a governor Helper flag. If the flag is set in thefield 806, thequery scheduling manager 146 will allow the query governor to operate so as to allocate resources in relation to having the query run within the predefined time boundary. This will occur if the query's run is predicted to exceed the query governor time limit. In regard to the latter, a user may identify the maximum governor time limit for query runs infield 810 in terms of a time unit (e.g., seconds). Thefield 808 allows user input of added computer resources that will prevent a query from timing out. The amount of additional computer resources may be based on providing known percentages increases of computer resources, such as preselected percentage increases (e.g., 10%, 20%, etc.). Other algorithms may be utilized in terms increasing computer resources. - At this point, while the present invention has been described in the context of a fully functional computer system, those skilled in the art will appreciate that the present invention is capable of being distributed as a program product. The present invention applies equally as well regardless of the particular type of computer readable signal bearing media utilized to actually carry out the distribution.
- One aspect of the invention is implemented as a program product for use with a computer system or environment. The program(s) of the program product defines functions of the embodiments (including the methods described herein) and may be contained on a variety of signal-bearing media. Illustrative signal-bearing media include, but are not limited to: (i) information permanently stored on non-writable storage media (e.g., read-only memory devices generally within a computer such as CD-ROM disks readable by a CD-ROM drive); (ii) alterable information stored on writable storage media (e.g., floppy disks generally within a diskette drive or hard-disk drive); and (iii) information conveyed to a computer by a communications medium, such as through a computer or telephone network, including wireless communications. The latter embodiment specifically includes information downloaded from the Internet and other networks. Such signal-bearing media, when carrying computer-readable instructions that direct the functions of the present invention, represent embodiments of the present invention.
- In general, the routines executed to implement the embodiments of the invention, may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions.
- At this point, while the present invention has been described in the context of a fully functional computer system, those skilled in the art will appreciate that the present invention is capable of being distributed as a program product. The present invention applies equally as well regardless of the particular type of computer readable signal bearing media utilized to actually carry out the distribution.
- In general, the routines executed to implement the embodiments of the invention, may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions. The computer program of the present invention typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature utilized is merely for convenience. Thus, the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
- The embodiments and examples set forth herein were presented to explain best the present invention and its practical applications, thereby enabling those skilled in the art to make and use the invention. However, those skilled in the art will recognize that the foregoing description and examples have been presented for the purposes of illustration and example only. The description set forth is not intended to be exhaustive or to limit the invention to the precise forms disclosed. In describing the above-exemplary embodiments illustrated in the drawings, specific terminology has been utilized for the sake of clarity. However, the invention is not intended to be limited to the specific terms selected. It is to be understood that each specific term includes all technical equivalents that operate in a similar manner to accomplish a similar purpose. Many modifications and variations are possible in light of the above teachings without departing from the spirit and scope of the appended claims.
Claims (34)
1. A system comprising:
one or more processors;
a memory coupled to at least the one processor; and,
a manager residing in the memory and executable by the at least one processor for evaluating a runtime of a query relative to a predefined query time boundaries, and, dynamically predicting an appropriate amount of computer resources for completing a query runtime within the predefined query time boundaries.
2. The system recited in claim 1 , wherein dynamic predicting includes the manager evaluating the query and the available computer resources to be allocated so that the query runtime executes within the predefined query time boundaries.
3. The system recited in claim 1 , wherein the manager allocates/de-allocates the appropriate amount of computer resources based on the dynamic prediction for having the query runtime complete within the predefined query time boundaries.
4. The system recited in claim 3 , wherein the manager further allocates/de-allocates the appropriate amount of computer resources before a query executes.
5. The system recited in claim 1 , wherein the manager stops running of the query during running if the query runtime exceeds the predefined query time boundaries.
6. The system recited in claim 1 , wherein the manager renders costs for computer resources actually utilized in having a query runtime complete within the predefined query time boundaries.
7. The system recited in claim 1 , wherein the manager further allocates/de-allocates computer resources that are provided by one or more processor partitions of the at least one processor.
8. The system recited in claim 1 , wherein the manager further allocates/de-allocates resources that are provided by a networked computing grid.
9. The system recited in claim 1 , wherein the manager further allocates/de-allocates resources that are provided by a networked computing grid and/or one or more processor partitions of the at least one processor.
10. The system recited in claim 1 , further comprising a user interface that allows a user establishing parameter values for the predicted allocation of the computer resources.
11. The system recited in claim 3 , wherein the manager increases the allocated resources based on by predefined levels of increases in accordance with a user policy.
12. A computer-implemented method in a system having at least one processor; a memory coupled to the at least one processor, and a manager residing in the memory and being executable, the method comprising: evaluating a runtime of a query relative to a predefined query time boundaries, and, dynamically predicting an appropriate amount of computer resources for completing a query runtime within the predefined query time boundaries.
13. The method recited in claim 12 , wherein dynamic predicting includes evaluating the query and the available computer resources.
14. The method recited in claim 12 , further comprising allocating the appropriate amount of computer resources for having the query complete its runtime within the predefined query time boundaries based on the dynamic prediction of computer resources.
15. The method recited in claim 12 , further comprising rendering costs to a customer for computer resources actually utilized in having a query complete its runtime within the predefined query time boundaries.
16. The method recited in claim 12 , wherein the allocating of resources is provided by a networked computing grid.
17. The method recited in claim 12 , wherein the allocating of resources is provided by one or morel processor partitions of the at least one processor.
18. The method recited in claim 12 , wherein the allocating of resources is provided by a networked computing grid and/or one or morel processor partitions of the at least one processor.
19. The method recited in claim 12 , further comprising allowing the utilization of a user interface for establishing parameter values for additional computer resources based on computer costs.
20. The method recited in claim 12 , wherein the computer resources are allocated are appropriately increased by predefined levels.
21. The method recited in claim 12 , wherein the resources are allocated before a query executes.
22. The method recited in claim 12 , wherein the query is prevented from running if the actual query running time exceeds the predefined query time boundaries.
23. A computer program product for implementing query optimization in a computer system including a processor, said computer program product including instructions which when executed comprise the steps of: evaluating a runtime of a query relative to a predefined query time boundaries, and, dynamically predicting an appropriate amount of computer resources for completing a query runtime within the predefined query time boundaries.
24. The computer program product recited by claim 23 further comprises: allocating the appropriate amount of computer resources for having the query complete its runtime within the predefined query time boundaries based on the dynamic prediction of computer resources.
25. The computer program product recited by claim 24 , further comprising rendering costs to a customer for computer resources actually utilized in having a query complete its runtime within the predefined query time boundaries.
26. The computer program product recited by claim 24 , wherein the allocating of computer resources is from a networked computing grid.
27. The computer program product recited by claim 24 , wherein the allocating of computer resources is from one or more additional partitions of the at least one processor.
28. The computer program product recited by claim 24 , wherein the allocating of computer resources is from a networked computing grid and/or one or more additional processor partitions of the at least one processor, and any combination thereof.
29. The computer program product recited by claim 24 , further comprising allowing the utilization of a graphical user interface for allowing a user to establish parameter values related to the costs of utilizing computer resources for having a query runtime complete within the predefined query time boundaries.
30. A networked environment, comprising:
a grid of computing resources;
a request manager of the grid to receive requests of one or more customers for utilization of computing resources of the grid;
one or more computer systems of a customer coupled to the request manager; the one computer system comprising one or more processors;
a memory coupled to at least the one processor of the one computer system; and,
a scheduling manager residing in the memory and executable by the at least one processor for evaluating a runtime of a query for data relative to a predefined time query runtime boundaries, and, dynamically predicting an appropriate amount of computer resources to be allocated for completing execution of the query within the predefined query time boundaries, wherein the request manager dynamically allocates/de-allocates computing resources of the grid computing resources based on the dynamic prediction.
31. A computer-implemented method for use in a networked environment including a grid of computing resources, and a request manager of the grid to receive requests of one or more customers for utilization of computing resources of the grid; wherein one or more computer systems of a customer is coupled to the request manager and include one or more processors; a memory coupled to at least the one processor; and, a scheduling manager residing in the memory and executable by the at least the one processor, comprising the steps of: evaluating a runtime of a query for data relative to a predefined time query runtime boundaries, and, dynamically predicting an appropriate amount of computer resources to be allocated for completing execution of the query within the predefined query time boundaries, wherein the request manager dynamically allocates/de-allocates computing resources of the grid computing resources based on the dynamic prediction.
32. A method of providing fee-based processing for query jobs in a processor system, whereby fees are based on actual utilization of computer resources in accordance with user configured parameters for completing processing of a query job at or in close proximity to a predefined servicing period of a query process; the processor system including at least one processor; a memory coupled to the at least one processor, and a query scheduling manager residing in the memory, the method comprising having the scheduling manager being executable for: enabling monitoring of a progress of execution of the query job in each one of a plurality of time segments to be monitored generally within the predefined servicing period of the query job; dynamically predicting an amount of computer resources needed to complete the query job generally at or in close proximity to the predefined servicing period; dynamically allocating computer resources for processing the query job based on the predicted amount of needed computer resources; and, metering actual utilization of the needed computer resources for rendering fees for processing the query job.
33. A method of providing fee-based dynamic allocation of computer resources for executing a query during a predefined servicing period, comprising the steps of:
providing a processing system for one or more users, wherein the system includes at least one resource providing variable computer resources; and,
establishing a plurality of time segments to be monitored generally within the predefined servicing period that is allocated for execution of the query, enabling monitoring of progress of execution of a query portion in each of the time segments; and, predicting if the query will execute generally within the predefined servicing period based on monitoring of progress of those portions of the query already executed in each of the time segments and an amount of computer resources of the processing system needed to complete the query within the predefined servicing period; and, metering actual utilization of the needed computer resources for rendering fees for processing the query.
34. A computer program product for use in a computer-implemented process for providing fee-based dynamic allocations of computer resources for executing a query at or reasonably close to a predefined servicing period, the computer program product comprising: a medium readable by a computer and having computer program code adapted for: providing a scheduling manager that manages dynamic allocation of at least one processor in the computer-implemented process that provides additional computer resources to a query process; wherein the scheduling manager resides in memory and is executable by the at least one processor so as to dynamically predict an amount of computer resources needed to complete the query at or in close proximity to the predefined servicing period; dynamically allocating computer resources in order to complete the query within the predefined servicing period, and, metering actual utilization of the needed computer resources for rendering fees for processing the query.
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/787,639 US20050192937A1 (en) | 2004-02-26 | 2004-02-26 | Dynamic query optimization |
PCT/EP2005/050798 WO2005083587A1 (en) | 2004-02-26 | 2005-02-24 | Methods, apparatus and computer programs for dynamic query optimization |
JP2007500218A JP5305649B2 (en) | 2004-02-26 | 2005-02-24 | Method, apparatus, and computer program for dynamic query optimization |
CNB2005800046377A CN100472519C (en) | 2004-02-26 | 2005-02-24 | Dynamic query optimization method, device and computer program |
EP05737473A EP1723567A1 (en) | 2004-02-26 | 2005-02-24 | Methods, apparatus and computer programs for dynamic query optimization |
US11/930,765 US8122010B2 (en) | 2004-02-26 | 2007-10-31 | Dynamic query optimization |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/787,639 US20050192937A1 (en) | 2004-02-26 | 2004-02-26 | Dynamic query optimization |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/930,765 Division US8122010B2 (en) | 2004-02-26 | 2007-10-31 | Dynamic query optimization |
Publications (1)
Publication Number | Publication Date |
---|---|
US20050192937A1 true US20050192937A1 (en) | 2005-09-01 |
Family
ID=34886822
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/787,639 Abandoned US20050192937A1 (en) | 2004-02-26 | 2004-02-26 | Dynamic query optimization |
US11/930,765 Expired - Fee Related US8122010B2 (en) | 2004-02-26 | 2007-10-31 | Dynamic query optimization |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/930,765 Expired - Fee Related US8122010B2 (en) | 2004-02-26 | 2007-10-31 | Dynamic query optimization |
Country Status (5)
Country | Link |
---|---|
US (2) | US20050192937A1 (en) |
EP (1) | EP1723567A1 (en) |
JP (1) | JP5305649B2 (en) |
CN (1) | CN100472519C (en) |
WO (1) | WO2005083587A1 (en) |
Cited By (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136448A1 (en) * | 2004-12-20 | 2006-06-22 | Enzo Cialini | Apparatus, system, and method for database provisioning |
US20060271504A1 (en) * | 2005-05-26 | 2006-11-30 | Inernational Business Machines Corporation | Performance data for query optimization of database partitions |
US20070016558A1 (en) * | 2005-07-14 | 2007-01-18 | International Business Machines Corporation | Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table |
US20070027860A1 (en) * | 2005-07-28 | 2007-02-01 | International Business Machines Corporation | Method and apparatus for eliminating partitions of a database table from a join query using implicit limitations on a partition key value |
US20070100793A1 (en) * | 2005-10-20 | 2007-05-03 | Brown Douglas P | Identifying database request sources |
US20080133459A1 (en) * | 2006-12-05 | 2008-06-05 | Barsness Eric L | Database Query Optimizer That Takes Network Choice Into Consideration |
US20090013325A1 (en) * | 2007-07-03 | 2009-01-08 | Kazuhito Kobayashi | Resource allocation method, resource allocation program and resource allocation apparatus |
US20090024572A1 (en) * | 2007-07-19 | 2009-01-22 | Abhay Mehta | Estimating the loaded execution runtime of a database query |
US20100088304A1 (en) * | 2008-10-03 | 2010-04-08 | Cluster Resources, Inc. | System and method for dynamically managing data centric searches |
US20100100877A1 (en) * | 2008-10-16 | 2010-04-22 | Palo Alto Research Center Incorporated | Statistical packing of resource requirements in data centers |
US20100257154A1 (en) * | 2009-04-01 | 2010-10-07 | Sybase, Inc. | Testing Efficiency and Stability of a Database Query Engine |
US20110010359A1 (en) * | 2009-07-07 | 2011-01-13 | Louis Burger | System, method, and computer-readable medium for enhancing query execution by an optimizer in a database system |
US20110022585A1 (en) * | 2006-12-05 | 2011-01-27 | International Business Machines Corp. | Multi-partition query governor in a computer database system |
US20110029506A1 (en) * | 2009-07-28 | 2011-02-03 | Fluke Corporation | Method and apparatus for bounding large query operations |
US20120110599A1 (en) * | 2010-11-03 | 2012-05-03 | Software Ag | Systems and/or methods for appropriately handling events |
US8332857B1 (en) * | 2008-12-30 | 2012-12-11 | Teradota Us, Inc. | Database system having a regulator that performs workload regulation based on optimizer estimates |
US8516488B1 (en) | 2010-11-09 | 2013-08-20 | Teradata Us, Inc. | Adjusting a resource estimate in response to progress of execution of a request |
US8694486B2 (en) | 2011-09-27 | 2014-04-08 | International Business Machines Corporation | Deadline-driven parallel execution of queries |
US8745032B1 (en) | 2010-11-23 | 2014-06-03 | Teradata Us, Inc. | Rejecting a request in a database system |
US20140380331A1 (en) * | 2012-06-06 | 2014-12-25 | General Electric Company | System and method for receiving analysis requests and configuring analytics systems |
US8924981B1 (en) | 2010-11-12 | 2014-12-30 | Teradat US, Inc. | Calculating priority indicators for requests in a queue |
US8966493B1 (en) * | 2010-11-09 | 2015-02-24 | Teradata Us, Inc. | Managing execution of multiple requests in a job using overall deadline for the job |
US20150199404A1 (en) * | 2014-01-10 | 2015-07-16 | Red Hat, Inc. | System and method for batch query processing |
EP3038018A1 (en) | 2014-12-27 | 2016-06-29 | Dassault Systèmes | Clustering database queries for runtime prediction |
US20170337275A1 (en) * | 2016-05-17 | 2017-11-23 | International Business Machines Corporation | Allocating computing resources |
WO2018099537A1 (en) * | 2016-11-29 | 2018-06-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Scheduling of operations for actor instances |
EP3340081A1 (en) * | 2016-12-22 | 2018-06-27 | NEC Corporation | Data search method, data search device, and data search program |
US10049133B2 (en) * | 2016-10-27 | 2018-08-14 | International Business Machines Corporation | Query governor across queries |
US10289721B2 (en) * | 2016-07-14 | 2019-05-14 | International Business Machines Corporation | Query management based on amount of data change |
US20190171677A1 (en) * | 2016-09-26 | 2019-06-06 | Splunk Inc. | Search service for a data fabric system |
US10409641B1 (en) | 2018-11-26 | 2019-09-10 | Palantir Technologies Inc. | Module assignment management |
US20190384845A1 (en) * | 2018-06-13 | 2019-12-19 | Amazon Technologies, Inc. | Using computing resources to perform database queries according to a dynamically determined query size |
US10606851B1 (en) * | 2018-09-10 | 2020-03-31 | Palantir Technologies Inc. | Intelligent compute request scoring and routing |
US20200117664A1 (en) * | 2018-10-15 | 2020-04-16 | Ocient Inc. | Generation of a query plan in a database system |
US10896182B2 (en) | 2017-09-25 | 2021-01-19 | Splunk Inc. | Multi-partitioning determination for combination operations |
US10901792B2 (en) | 2016-11-29 | 2021-01-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Distribution of resources among actor instances |
US10909116B2 (en) | 2018-02-20 | 2021-02-02 | International Business Machines Corporation | Optimizing query processing and routing in a hybrid workload optimized database system |
US10944814B1 (en) | 2017-12-04 | 2021-03-09 | Amazon Technologies, Inc. | Independent resource scheduling for distributed data processing programs |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US10977260B2 (en) | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
US10984044B1 (en) | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
US11003714B1 (en) | 2016-09-26 | 2021-05-11 | Splunk Inc. | Search node and bucket identification using a search node catalog and a data store catalog |
US11023463B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US11106734B1 (en) | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
US11120007B2 (en) | 2018-11-26 | 2021-09-14 | Palantir Technologies Inc. | Module expiration management |
US11128701B1 (en) * | 2019-03-28 | 2021-09-21 | Amazon Technologies, Inc. | Cooperative preemption in a distributed multi-tenant resource pool |
US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
US11151137B2 (en) | 2017-09-25 | 2021-10-19 | Splunk Inc. | Multi-partition operation in combination operations |
US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
US11216345B2 (en) * | 2016-06-01 | 2022-01-04 | Seagate Technology Llc | Technologies for limiting performance variation in a storage device |
US11222066B1 (en) | 2016-09-26 | 2022-01-11 | Splunk Inc. | Processing data using containerized state-free indexing nodes in a containerized scalable environment |
US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
US11250056B1 (en) | 2016-09-26 | 2022-02-15 | Splunk Inc. | Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system |
US11256693B2 (en) * | 2018-09-21 | 2022-02-22 | International Business Machines Corporation | GraphQL management layer |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11314753B2 (en) | 2016-09-26 | 2022-04-26 | Splunk Inc. | Execution of a query received from a data intake and query system |
US11321321B2 (en) | 2016-09-26 | 2022-05-03 | Splunk Inc. | Record expansion and reduction based on a processing task in a data intake and query system |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
US11416528B2 (en) | 2016-09-26 | 2022-08-16 | Splunk Inc. | Query acceleration data store |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
GB2571651B (en) * | 2016-10-21 | 2022-09-21 | Datarobot Inc | Systems for predictive data analytics, and related methods and apparatus |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
US11537616B1 (en) | 2020-06-29 | 2022-12-27 | Amazon Technologies, Inc. | Predicting query performance for prioritizing query execution |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
US11567993B1 (en) | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
US11586692B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Streaming data processing |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US11615087B2 (en) * | 2019-04-29 | 2023-03-28 | Splunk Inc. | Search time estimate in a data intake and query system |
US11620336B1 (en) | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
US11762860B1 (en) | 2020-12-10 | 2023-09-19 | Amazon Technologies, Inc. | Dynamic concurrency level management for database queries |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11868359B2 (en) | 2019-06-25 | 2024-01-09 | Amazon Technologies, Inc. | Dynamically assigning queries to secondary query processing resources |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US11880726B1 (en) | 2022-06-27 | 2024-01-23 | Amazon Technologies, Inc. | Fair queuing of request tasks spawned by requests to execute generative operations |
US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
US11962663B1 (en) | 2022-03-17 | 2024-04-16 | Amazon Technologies, Inc. | Server-specified filters for long-lived client requests to fetch data in response to events |
US11989194B2 (en) | 2017-07-31 | 2024-05-21 | Splunk Inc. | Addressing memory limits for partition tracking among worker nodes |
US12013895B2 (en) | 2016-09-26 | 2024-06-18 | Splunk Inc. | Processing data using containerized nodes in a containerized scalable environment |
US12072939B1 (en) | 2021-07-30 | 2024-08-27 | Splunk Inc. | Federated data enrichment objects |
US12093272B1 (en) | 2022-04-29 | 2024-09-17 | Splunk Inc. | Retrieving data identifiers from queue for search of external data system |
US12118009B2 (en) | 2017-07-31 | 2024-10-15 | Splunk Inc. | Supporting query languages through distributed execution of query engines |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613897B2 (en) * | 2005-03-30 | 2009-11-03 | International Business Machines Corporation | Allocating entitled processor cycles for preempted virtual processors |
US8548942B2 (en) | 2006-10-04 | 2013-10-01 | Salesforce.Com, Inc. | Methods and systems for recursive saving of hierarchical objects to a database |
US8161010B2 (en) | 2006-10-04 | 2012-04-17 | Salesforce.Com, Inc. | Methods and systems for providing fault recovery to side effects occurring during data processing |
US8682863B2 (en) | 2006-10-04 | 2014-03-25 | Salesforce.Com, Inc. | Methods and systems for bulk row save logic in an object relational mapping layer and application framework |
JP5000456B2 (en) * | 2007-10-31 | 2012-08-15 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | Resource management system, resource management apparatus and method |
JP2012504814A (en) * | 2008-10-03 | 2012-02-23 | アダプティブ コンピューティング エンタープライジズ インク | System and method for dynamic management of data centric search |
US9934261B2 (en) * | 2009-03-10 | 2018-04-03 | Hewlett Packard Enterprise Development Lp | Progress analyzer for database queries |
US8700752B2 (en) * | 2009-11-03 | 2014-04-15 | International Business Machines Corporation | Optimized efficient LPAR capacity consolidation |
US8566307B2 (en) * | 2010-04-30 | 2013-10-22 | International Business Machines Corporation | Database query governor with tailored thresholds |
US8818989B2 (en) * | 2010-11-30 | 2014-08-26 | International Business Machines Corporation | Memory usage query governor |
US8583608B2 (en) * | 2010-12-08 | 2013-11-12 | International Business Machines Corporation | Maximum allowable runtime query governor |
US20120215764A1 (en) * | 2011-02-17 | 2012-08-23 | International Business Machines Corporation | Energy usage and performance query governor |
US20130173586A1 (en) * | 2011-12-28 | 2013-07-04 | John Mark Morris | System, method, and computer-readable medium for reducing response time variation in a workload management system |
US9158814B2 (en) * | 2012-03-30 | 2015-10-13 | International Business Machines Corporation | Obtaining partial results from a database query |
US10552774B2 (en) * | 2013-02-11 | 2020-02-04 | Amazon Technologies, Inc. | Cost-minimizing task scheduler |
CN104750690B (en) * | 2013-12-25 | 2018-03-23 | 中国移动通信集团公司 | A kind of inquiry processing method, apparatus and system |
US10325032B2 (en) | 2014-02-19 | 2019-06-18 | Snowflake Inc. | Resource provisioning systems and methods |
US10114825B2 (en) * | 2014-03-14 | 2018-10-30 | Sap Se | Dynamic resource-based parallelization in distributed query execution frameworks |
US9990396B2 (en) * | 2015-02-03 | 2018-06-05 | International Business Machines Corporation | Forecasting query access plan obsolescence |
WO2016138616A1 (en) * | 2015-03-02 | 2016-09-09 | Microsoft Technology Licensing, Llc | Data query job submission management |
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 |
CN105786992A (en) * | 2016-02-17 | 2016-07-20 | 中国建设银行股份有限公司 | Data query method and device used for online transaction |
US10922623B2 (en) * | 2017-04-18 | 2021-02-16 | At&T Intellectual Property I, L.P. | Capacity planning, management, and engineering automation platform |
US11281625B1 (en) * | 2017-06-05 | 2022-03-22 | Amazon Technologies, Inc. | Resource management service |
Citations (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5093794A (en) * | 1989-08-22 | 1992-03-03 | United Technologies Corporation | Job scheduling system |
US5301317A (en) * | 1992-04-27 | 1994-04-05 | International Business Machines Corporation | System for adapting query optimization effort to expected execution time |
US5325525A (en) * | 1991-04-04 | 1994-06-28 | Hewlett-Packard Company | Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time |
US5465354A (en) * | 1992-03-19 | 1995-11-07 | Hitachi, Ltd. | Method and apparatus for job execution prediction and control and method for job execution situation display |
US5659786A (en) * | 1992-10-19 | 1997-08-19 | International Business Machines Corporation | System and method for dynamically performing resource reconfiguration in a logically partitioned data processing system |
US5784616A (en) * | 1997-05-02 | 1998-07-21 | Microsoft Corporation | Apparatus and methods for optimally using available computer resources for task execution during idle-time for future task instances exhibiting incremental value with computation |
US5872970A (en) * | 1996-06-28 | 1999-02-16 | Mciworldcom, Inc. | Integrated cross-platform batch management system |
US5918229A (en) * | 1996-11-22 | 1999-06-29 | Mangosoft Corporation | Structured data storage using globally addressable memory |
US6041354A (en) * | 1995-09-08 | 2000-03-21 | Lucent Technologies Inc. | Dynamic hierarchical network resource scheduling for continuous media |
US6101460A (en) * | 1998-03-23 | 2000-08-08 | Mci Communications Corporation | Method of forecasting resource needs |
US6260068B1 (en) * | 1998-06-10 | 2001-07-10 | Compaq Computer Corporation | Method and apparatus for migrating resources in a multi-processor computer system |
US6314446B1 (en) * | 1997-03-31 | 2001-11-06 | Stiles Inventions | Method and system for monitoring tasks in a computer system |
US6321373B1 (en) * | 1995-08-07 | 2001-11-20 | International Business Machines Corporation | Method for resource control in parallel environments using program organization and run-time support |
US6339773B1 (en) * | 1999-10-12 | 2002-01-15 | Naphtali Rishe | Data extractor |
US6353844B1 (en) * | 1996-12-23 | 2002-03-05 | Silicon Graphics, Inc. | Guaranteeing completion times for batch jobs without static partitioning |
US6353818B1 (en) * | 1998-08-19 | 2002-03-05 | Ncr Corporation | Plan-per-tuple optimizing of database queries with user-defined functions |
US20030065648A1 (en) * | 2001-10-03 | 2003-04-03 | International Business Machines Corporation | Reduce database monitor workload by employing predictive query threshold |
US20040030677A1 (en) * | 2002-08-12 | 2004-02-12 | Sybase, Inc. | Database System with Methodology for Distributing Query Optimization Effort Over Large Search Spaces |
US20040139202A1 (en) * | 2003-01-10 | 2004-07-15 | Vanish Talwar | Grid computing control system |
US6779016B1 (en) * | 1999-08-23 | 2004-08-17 | Terraspring, Inc. | Extensible computing system |
US6789074B1 (en) * | 1998-11-25 | 2004-09-07 | Hitachi, Ltd. | Database processing method and apparatus, and medium for recording processing program thereof |
US20050015504A1 (en) * | 2001-09-13 | 2005-01-20 | Dorne Raphael Jh | Resource management method and apparatus |
US20050022185A1 (en) * | 2003-07-10 | 2005-01-27 | Romero Francisco J. | Systems and methods for monitoring resource utilization and application performance |
US20050055446A1 (en) * | 2003-08-14 | 2005-03-10 | Oracle International Corporation | Incremental run-time session balancing in a multi-node system |
US20050076337A1 (en) * | 2003-01-10 | 2005-04-07 | Mangan Timothy Richard | Method and system of optimizing thread scheduling using quality objectives |
US20050177557A1 (en) * | 2003-09-06 | 2005-08-11 | Oracle International Corporation | Automatic prevention of run-away query execution |
US20050187935A1 (en) * | 2004-02-24 | 2005-08-25 | Kumar Saji C. | Method, system, and program for restricting modifications to allocations of computational resources |
US6952828B2 (en) * | 2001-09-26 | 2005-10-04 | The Boeing Company | System, method and computer program product for dynamic resource management |
US7065764B1 (en) * | 2001-07-20 | 2006-06-20 | Netrendered, Inc. | Dynamically allocated cluster system |
US7185333B1 (en) * | 1999-10-28 | 2007-02-27 | Yahoo! Inc. | Method and system for managing the resources of a toolbar application program |
US7188174B2 (en) * | 2002-12-30 | 2007-03-06 | Hewlett-Packard Development Company, L.P. | Admission control for applications in resource utility environments |
US7308687B2 (en) * | 2002-02-07 | 2007-12-11 | International Business Machines Corporation | Method and system for managing resources in a data center |
US7325234B2 (en) * | 2001-05-25 | 2008-01-29 | Siemens Medical Solutions Health Services Corporation | System and method for monitoring computer application and resource utilization |
US20080086731A1 (en) * | 2003-02-04 | 2008-04-10 | Andrew Trossman | Method and system for managing resources in a data center |
US7448037B2 (en) * | 2004-01-13 | 2008-11-04 | International Business Machines Corporation | Method and data processing system having dynamic profile-directed feedback at runtime |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7016977B1 (en) * | 1999-11-05 | 2006-03-21 | International Business Machines Corporation | Method and system for multilingual web server |
JP2001331362A (en) * | 2000-03-17 | 2001-11-30 | Sony Corp | File conversion method, data converter and file display system |
JP2002202959A (en) * | 2000-12-28 | 2002-07-19 | Hitachi Ltd | Virtual computer system for performing dynamic resource distribution |
US7171668B2 (en) * | 2001-12-17 | 2007-01-30 | International Business Machines Corporation | Automatic data interpretation and implementation using performance capacity management framework over many servers |
-
2004
- 2004-02-26 US US10/787,639 patent/US20050192937A1/en not_active Abandoned
-
2005
- 2005-02-24 WO PCT/EP2005/050798 patent/WO2005083587A1/en active Application Filing
- 2005-02-24 JP JP2007500218A patent/JP5305649B2/en not_active Expired - Fee Related
- 2005-02-24 CN CNB2005800046377A patent/CN100472519C/en not_active Expired - Fee Related
- 2005-02-24 EP EP05737473A patent/EP1723567A1/en not_active Withdrawn
-
2007
- 2007-10-31 US US11/930,765 patent/US8122010B2/en not_active Expired - Fee Related
Patent Citations (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5093794A (en) * | 1989-08-22 | 1992-03-03 | United Technologies Corporation | Job scheduling system |
US5325525A (en) * | 1991-04-04 | 1994-06-28 | Hewlett-Packard Company | Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time |
US5465354A (en) * | 1992-03-19 | 1995-11-07 | Hitachi, Ltd. | Method and apparatus for job execution prediction and control and method for job execution situation display |
US5301317A (en) * | 1992-04-27 | 1994-04-05 | International Business Machines Corporation | System for adapting query optimization effort to expected execution time |
US5659786A (en) * | 1992-10-19 | 1997-08-19 | International Business Machines Corporation | System and method for dynamically performing resource reconfiguration in a logically partitioned data processing system |
US6321373B1 (en) * | 1995-08-07 | 2001-11-20 | International Business Machines Corporation | Method for resource control in parallel environments using program organization and run-time support |
US6041354A (en) * | 1995-09-08 | 2000-03-21 | Lucent Technologies Inc. | Dynamic hierarchical network resource scheduling for continuous media |
US5872970A (en) * | 1996-06-28 | 1999-02-16 | Mciworldcom, Inc. | Integrated cross-platform batch management system |
US5918229A (en) * | 1996-11-22 | 1999-06-29 | Mangosoft Corporation | Structured data storage using globally addressable memory |
US6353844B1 (en) * | 1996-12-23 | 2002-03-05 | Silicon Graphics, Inc. | Guaranteeing completion times for batch jobs without static partitioning |
US6314446B1 (en) * | 1997-03-31 | 2001-11-06 | Stiles Inventions | Method and system for monitoring tasks in a computer system |
US5784616A (en) * | 1997-05-02 | 1998-07-21 | Microsoft Corporation | Apparatus and methods for optimally using available computer resources for task execution during idle-time for future task instances exhibiting incremental value with computation |
US6101460A (en) * | 1998-03-23 | 2000-08-08 | Mci Communications Corporation | Method of forecasting resource needs |
US6260068B1 (en) * | 1998-06-10 | 2001-07-10 | Compaq Computer Corporation | Method and apparatus for migrating resources in a multi-processor computer system |
US6353818B1 (en) * | 1998-08-19 | 2002-03-05 | Ncr Corporation | Plan-per-tuple optimizing of database queries with user-defined functions |
US6789074B1 (en) * | 1998-11-25 | 2004-09-07 | Hitachi, Ltd. | Database processing method and apparatus, and medium for recording processing program thereof |
US6779016B1 (en) * | 1999-08-23 | 2004-08-17 | Terraspring, Inc. | Extensible computing system |
US6339773B1 (en) * | 1999-10-12 | 2002-01-15 | Naphtali Rishe | Data extractor |
US7185333B1 (en) * | 1999-10-28 | 2007-02-27 | Yahoo! Inc. | Method and system for managing the resources of a toolbar application program |
US7325234B2 (en) * | 2001-05-25 | 2008-01-29 | Siemens Medical Solutions Health Services Corporation | System and method for monitoring computer application and resource utilization |
US7065764B1 (en) * | 2001-07-20 | 2006-06-20 | Netrendered, Inc. | Dynamically allocated cluster system |
US20050015504A1 (en) * | 2001-09-13 | 2005-01-20 | Dorne Raphael Jh | Resource management method and apparatus |
US6952828B2 (en) * | 2001-09-26 | 2005-10-04 | The Boeing Company | System, method and computer program product for dynamic resource management |
US20030065648A1 (en) * | 2001-10-03 | 2003-04-03 | International Business Machines Corporation | Reduce database monitor workload by employing predictive query threshold |
US7308687B2 (en) * | 2002-02-07 | 2007-12-11 | International Business Machines Corporation | Method and system for managing resources in a data center |
US20040030677A1 (en) * | 2002-08-12 | 2004-02-12 | Sybase, Inc. | Database System with Methodology for Distributing Query Optimization Effort Over Large Search Spaces |
US7188174B2 (en) * | 2002-12-30 | 2007-03-06 | Hewlett-Packard Development Company, L.P. | Admission control for applications in resource utility environments |
US20050076337A1 (en) * | 2003-01-10 | 2005-04-07 | Mangan Timothy Richard | Method and system of optimizing thread scheduling using quality objectives |
US20040139202A1 (en) * | 2003-01-10 | 2004-07-15 | Vanish Talwar | Grid computing control system |
US20080086731A1 (en) * | 2003-02-04 | 2008-04-10 | Andrew Trossman | Method and system for managing resources in a data center |
US20050022185A1 (en) * | 2003-07-10 | 2005-01-27 | Romero Francisco J. | Systems and methods for monitoring resource utilization and application performance |
US20050055446A1 (en) * | 2003-08-14 | 2005-03-10 | Oracle International Corporation | Incremental run-time session balancing in a multi-node system |
US20050177557A1 (en) * | 2003-09-06 | 2005-08-11 | Oracle International Corporation | Automatic prevention of run-away query execution |
US7448037B2 (en) * | 2004-01-13 | 2008-11-04 | International Business Machines Corporation | Method and data processing system having dynamic profile-directed feedback at runtime |
US20050187935A1 (en) * | 2004-02-24 | 2005-08-25 | Kumar Saji C. | Method, system, and program for restricting modifications to allocations of computational resources |
Cited By (134)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7680771B2 (en) * | 2004-12-20 | 2010-03-16 | International Business Machines Corporation | Apparatus, system, and method for database provisioning |
US20060136448A1 (en) * | 2004-12-20 | 2006-06-22 | Enzo Cialini | Apparatus, system, and method for database provisioning |
US8949213B2 (en) | 2005-03-11 | 2015-02-03 | Adaptive Computing Enterprises, Inc. | System and method for dynamically managing data centric searches |
US7734615B2 (en) * | 2005-05-26 | 2010-06-08 | International Business Machines Corporation | Performance data for query optimization of database partitions |
US20060271504A1 (en) * | 2005-05-26 | 2006-11-30 | Inernational Business Machines Corporation | Performance data for query optimization of database partitions |
US8386463B2 (en) | 2005-07-14 | 2013-02-26 | International Business Machines Corporation | Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table |
US9063982B2 (en) | 2005-07-14 | 2015-06-23 | International Business Machines Corporation | Dynamically associating different query execution strategies with selective portions of a database table |
US20070016558A1 (en) * | 2005-07-14 | 2007-01-18 | International Business Machines Corporation | Method and apparatus for dynamically associating different query execution strategies with selective portions of a database table |
US20070027860A1 (en) * | 2005-07-28 | 2007-02-01 | International Business Machines Corporation | Method and apparatus for eliminating partitions of a database table from a join query using implicit limitations on a partition key value |
US20070100793A1 (en) * | 2005-10-20 | 2007-05-03 | Brown Douglas P | Identifying database request sources |
US8280867B2 (en) * | 2005-10-20 | 2012-10-02 | Teradata Us, Inc. | Identifying database request sources |
US10452654B2 (en) | 2006-12-05 | 2019-10-22 | International Business Machines Corporation | Database query optimizer that takes network choice into consideration |
US8135703B2 (en) * | 2006-12-05 | 2012-03-13 | International Business Machines Corporation | Multi-partition query governor in a computer database system |
US9934271B2 (en) | 2006-12-05 | 2018-04-03 | International Business Machines Corporation | Database query optimizer that takes network choice into consideration |
US20080133459A1 (en) * | 2006-12-05 | 2008-06-05 | Barsness Eric L | Database Query Optimizer That Takes Network Choice Into Consideration |
US20110022585A1 (en) * | 2006-12-05 | 2011-01-27 | International Business Machines Corp. | Multi-partition query governor in a computer database system |
US8229955B2 (en) * | 2006-12-05 | 2012-07-24 | International Business Machines Corporation | Database query optimizer that takes network choice into consideration |
US20090013325A1 (en) * | 2007-07-03 | 2009-01-08 | Kazuhito Kobayashi | Resource allocation method, resource allocation program and resource allocation apparatus |
US8209697B2 (en) * | 2007-07-03 | 2012-06-26 | Hitachi, Ltd. | Resource allocation method for a physical computer used by a back end server including calculating database resource cost based on SQL process type |
US7895192B2 (en) * | 2007-07-19 | 2011-02-22 | Hewlett-Packard Development Company, L.P. | Estimating the loaded execution runtime of a database query |
US20090024572A1 (en) * | 2007-07-19 | 2009-01-22 | Abhay Mehta | Estimating the loaded execution runtime of a database query |
US8504548B2 (en) | 2008-10-03 | 2013-08-06 | Adaptive Computing Enterprises, Inc. | System and method for dynamically managing data centric searches |
US20100088304A1 (en) * | 2008-10-03 | 2010-04-08 | Cluster Resources, Inc. | System and method for dynamically managing data centric searches |
US20100100877A1 (en) * | 2008-10-16 | 2010-04-22 | Palo Alto Research Center Incorporated | Statistical packing of resource requirements in data centers |
US8656404B2 (en) * | 2008-10-16 | 2014-02-18 | Palo Alto Research Center Incorporated | Statistical packing of resource requirements in data centers |
US8332857B1 (en) * | 2008-12-30 | 2012-12-11 | Teradota Us, Inc. | Database system having a regulator that performs workload regulation based on optimizer estimates |
US20100257154A1 (en) * | 2009-04-01 | 2010-10-07 | Sybase, Inc. | Testing Efficiency and Stability of a Database Query Engine |
US20110010359A1 (en) * | 2009-07-07 | 2011-01-13 | Louis Burger | System, method, and computer-readable medium for enhancing query execution by an optimizer in a database system |
US8745036B2 (en) * | 2009-07-07 | 2014-06-03 | Teradata Us, Inc. | System, method, and computer-readable medium for enhancing query execution by an optimizer in a database system |
US20110029506A1 (en) * | 2009-07-28 | 2011-02-03 | Fluke Corporation | Method and apparatus for bounding large query operations |
US9542448B2 (en) * | 2010-11-03 | 2017-01-10 | Software Ag | Systems and/or methods for tailoring event processing in accordance with boundary conditions |
US20120110599A1 (en) * | 2010-11-03 | 2012-05-03 | Software Ag | Systems and/or methods for appropriately handling events |
US8516488B1 (en) | 2010-11-09 | 2013-08-20 | Teradata Us, Inc. | Adjusting a resource estimate in response to progress of execution of a request |
US8966493B1 (en) * | 2010-11-09 | 2015-02-24 | Teradata Us, Inc. | Managing execution of multiple requests in a job using overall deadline for the job |
US8924981B1 (en) | 2010-11-12 | 2014-12-30 | Teradat US, Inc. | Calculating priority indicators for requests in a queue |
US8745032B1 (en) | 2010-11-23 | 2014-06-03 | Teradata Us, Inc. | Rejecting a request in a database system |
US8694486B2 (en) | 2011-09-27 | 2014-04-08 | International Business Machines Corporation | Deadline-driven parallel execution of queries |
US8712998B2 (en) | 2011-09-27 | 2014-04-29 | International Business Machines Corporation | Deadline-driven parallel execution of queries |
US9552270B2 (en) * | 2012-06-06 | 2017-01-24 | General Electric Company | System and method for receiving analysis requests and configuring analytics systems |
US20140380331A1 (en) * | 2012-06-06 | 2014-12-25 | General Electric Company | System and method for receiving analysis requests and configuring analytics systems |
US9262476B2 (en) * | 2014-01-10 | 2016-02-16 | Red Hat, Inc. | System and method for batch query processing |
US20150199404A1 (en) * | 2014-01-10 | 2015-07-16 | Red Hat, Inc. | System and method for batch query processing |
EP3038018A1 (en) | 2014-12-27 | 2016-06-29 | Dassault Systèmes | Clustering database queries for runtime prediction |
US20170337275A1 (en) * | 2016-05-17 | 2017-11-23 | International Business Machines Corporation | Allocating computing resources |
US11216345B2 (en) * | 2016-06-01 | 2022-01-04 | Seagate Technology Llc | Technologies for limiting performance variation in a storage device |
US10289721B2 (en) * | 2016-07-14 | 2019-05-14 | International Business Machines Corporation | Query management based on amount of data change |
US11023539B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Data intake and query system search functionality in a data fabric service system |
US11392654B2 (en) | 2016-09-26 | 2022-07-19 | Splunk Inc. | Data fabric service system |
US20190171677A1 (en) * | 2016-09-26 | 2019-06-06 | Splunk Inc. | Search service for a data fabric system |
US12013895B2 (en) | 2016-09-26 | 2024-06-18 | Splunk Inc. | Processing data using containerized nodes in a containerized scalable environment |
US11995079B2 (en) | 2016-09-26 | 2024-05-28 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US11966391B2 (en) | 2016-09-26 | 2024-04-23 | Splunk Inc. | Using worker nodes to process results of a subquery |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11797618B2 (en) | 2016-09-26 | 2023-10-24 | Splunk Inc. | Data fabric service system deployment |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US11636105B2 (en) | 2016-09-26 | 2023-04-25 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US11620336B1 (en) | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US10977260B2 (en) | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
US10984044B1 (en) | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
US11003714B1 (en) | 2016-09-26 | 2021-05-11 | Splunk Inc. | Search node and bucket identification using a search node catalog and a data store catalog |
US11010435B2 (en) * | 2016-09-26 | 2021-05-18 | Splunk Inc. | Search service for a data fabric system |
US11023463B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US11080345B2 (en) | 2016-09-26 | 2021-08-03 | Splunk Inc. | Search functionality of worker nodes in a data fabric service system |
US11106734B1 (en) | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
US11586692B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Streaming data processing |
US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
US11176208B2 (en) | 2016-09-26 | 2021-11-16 | Splunk Inc. | Search functionality of a data intake and query system |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US11222066B1 (en) | 2016-09-26 | 2022-01-11 | Splunk Inc. | Processing data using containerized state-free indexing nodes in a containerized scalable environment |
US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US11238112B2 (en) | 2016-09-26 | 2022-02-01 | Splunk Inc. | Search service system monitoring |
US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
US11250056B1 (en) | 2016-09-26 | 2022-02-15 | Splunk Inc. | Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system |
US11567993B1 (en) | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11314753B2 (en) | 2016-09-26 | 2022-04-26 | Splunk Inc. | Execution of a query received from a data intake and query system |
US11321321B2 (en) | 2016-09-26 | 2022-05-03 | Splunk Inc. | Record expansion and reduction based on a processing task in a data intake and query system |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
US11341131B2 (en) | 2016-09-26 | 2022-05-24 | Splunk Inc. | Query scheduling based on a query-resource allocation and resource availability |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US11416528B2 (en) | 2016-09-26 | 2022-08-16 | Splunk Inc. | Query acceleration data store |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
GB2571651B (en) * | 2016-10-21 | 2022-09-21 | Datarobot Inc | Systems for predictive data analytics, and related methods and apparatus |
US10049133B2 (en) * | 2016-10-27 | 2018-08-14 | International Business Machines Corporation | Query governor across queries |
US10901792B2 (en) | 2016-11-29 | 2021-01-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Distribution of resources among actor instances |
WO2018099537A1 (en) * | 2016-11-29 | 2018-06-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Scheduling of operations for actor instances |
EP3340081A1 (en) * | 2016-12-22 | 2018-06-27 | NEC Corporation | Data search method, data search device, and data search program |
US20180181614A1 (en) * | 2016-12-22 | 2018-06-28 | Nec Corporation | Data search method, data search device, and data search program |
US10877965B2 (en) * | 2016-12-22 | 2020-12-29 | Nec Corporation | Data search method, data search device, and data search program |
US12118009B2 (en) | 2017-07-31 | 2024-10-15 | Splunk Inc. | Supporting query languages through distributed execution of query engines |
US11989194B2 (en) | 2017-07-31 | 2024-05-21 | Splunk Inc. | Addressing memory limits for partition tracking among worker nodes |
US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
US11151137B2 (en) | 2017-09-25 | 2021-10-19 | Splunk Inc. | Multi-partition operation in combination operations |
US11860874B2 (en) | 2017-09-25 | 2024-01-02 | Splunk Inc. | Multi-partitioning data for combination operations |
US10896182B2 (en) | 2017-09-25 | 2021-01-19 | Splunk Inc. | Multi-partitioning determination for combination operations |
US11500875B2 (en) | 2017-09-25 | 2022-11-15 | Splunk Inc. | Multi-partitioning for combination operations |
US10944814B1 (en) | 2017-12-04 | 2021-03-09 | Amazon Technologies, Inc. | Independent resource scheduling for distributed data processing programs |
US11907220B2 (en) | 2018-02-20 | 2024-02-20 | International Business Machines Corporation | Optimizing query processing and routing in a hybrid workload optimized database system |
US10909116B2 (en) | 2018-02-20 | 2021-02-02 | International Business Machines Corporation | Optimizing query processing and routing in a hybrid workload optimized database system |
US11720537B2 (en) | 2018-04-30 | 2023-08-08 | Splunk Inc. | Bucket merging for a data intake and query system using size thresholds |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
US20190384845A1 (en) * | 2018-06-13 | 2019-12-19 | Amazon Technologies, Inc. | Using computing resources to perform database queries according to a dynamically determined query size |
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 |
US10606851B1 (en) * | 2018-09-10 | 2020-03-31 | Palantir Technologies Inc. | Intelligent compute request scoring and routing |
US11256693B2 (en) * | 2018-09-21 | 2022-02-22 | International Business Machines Corporation | GraphQL management layer |
US11977545B2 (en) * | 2018-10-15 | 2024-05-07 | Oclient Inc. | Generation of an optimized query plan in a database system |
US20200117664A1 (en) * | 2018-10-15 | 2020-04-16 | Ocient Inc. | Generation of a query plan in a database system |
US11120007B2 (en) | 2018-11-26 | 2021-09-14 | Palantir Technologies Inc. | Module expiration management |
US10409641B1 (en) | 2018-11-26 | 2019-09-10 | Palantir Technologies Inc. | Module assignment management |
US11128701B1 (en) * | 2019-03-28 | 2021-09-21 | Amazon Technologies, Inc. | Cooperative preemption in a distributed multi-tenant resource pool |
US11615087B2 (en) * | 2019-04-29 | 2023-03-28 | Splunk Inc. | Search time estimate in a data intake and query system |
US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
US11868359B2 (en) | 2019-06-25 | 2024-01-09 | Amazon Technologies, Inc. | Dynamically assigning queries to secondary query processing resources |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
US12007996B2 (en) | 2019-10-18 | 2024-06-11 | Splunk Inc. | Management of distributed computing framework components |
US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
US11537616B1 (en) | 2020-06-29 | 2022-12-27 | Amazon Technologies, Inc. | Predicting query performance for prioritizing query execution |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
US11762860B1 (en) | 2020-12-10 | 2023-09-19 | Amazon Technologies, Inc. | Dynamic concurrency level management for database queries |
US12072939B1 (en) | 2021-07-30 | 2024-08-27 | Splunk Inc. | Federated data enrichment objects |
US11962663B1 (en) | 2022-03-17 | 2024-04-16 | Amazon Technologies, Inc. | Server-specified filters for long-lived client requests to fetch data in response to events |
US12093272B1 (en) | 2022-04-29 | 2024-09-17 | Splunk Inc. | Retrieving data identifiers from queue for search of external data system |
US11880726B1 (en) | 2022-06-27 | 2024-01-23 | Amazon Technologies, Inc. | Fair queuing of request tasks spawned by requests to execute generative operations |
Also Published As
Publication number | Publication date |
---|---|
CN100472519C (en) | 2009-03-25 |
EP1723567A1 (en) | 2006-11-22 |
WO2005083587A1 (en) | 2005-09-09 |
JP5305649B2 (en) | 2013-10-02 |
US8122010B2 (en) | 2012-02-21 |
CN1934566A (en) | 2007-03-21 |
US20080052720A1 (en) | 2008-02-28 |
JP2007524951A (en) | 2007-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8122010B2 (en) | Dynamic query optimization | |
US20050198636A1 (en) | Dynamic optimization of batch processing | |
US7925648B2 (en) | Dynamically selecting alternative query access plans | |
US11003502B2 (en) | Resource manager for managing the sharing of resources among multiple workloads in a distributed computing environment | |
US10445148B2 (en) | System and method of performing a pre-reservation analysis to yield an improved fit of workload with the compute environment | |
US9043787B2 (en) | System and method for automated assignment of virtual machines and physical machines to hosts | |
US9218213B2 (en) | Dynamic placement of heterogeneous workloads | |
US7941427B2 (en) | Dynamically managing computer resources based on valuations of work items being processed | |
US20180074855A1 (en) | Utilization-aware resource scheduling in a distributed computing cluster | |
US8689227B2 (en) | System and method for integrating capacity planning and workload management | |
US20110154353A1 (en) | Demand-Driven Workload Scheduling Optimization on Shared Computing Resources | |
US20140019964A1 (en) | System and method for automated assignment of virtual machines and physical machines to hosts using interval analysis | |
US20070016907A1 (en) | Method, system and computer program for automatic provisioning of resources to scheduled jobs | |
US20140019966A1 (en) | System and method for continuous optimization of computing systems with automated assignment of virtual machines and physical machines to hosts | |
Chard et al. | Cost-aware cloud provisioning | |
JP2005141605A (en) | Method for distributing computer resource based on prediction | |
HoseinyFarahabady et al. | Q-flink: A qos-aware controller for apache flink | |
Chiu-We et al. | A performance model of MVS | |
EP3611620B1 (en) | Cost optimization in dynamic workload capping | |
Röblitz et al. | Resource reservations with fuzzy requests | |
US20160188638A1 (en) | Apparatus and method for managing usage of a database system resources by concurrent database users of a database system | |
Kandi et al. | An integer linear-programming based resource allocation method for SQL-like queries in the cloud | |
Yu et al. | CERES: Container-based elastic resource management system for mixed workloads | |
Kamatar et al. | GreenFaaS: Maximizing Energy Efficiency of HPC Workloads with FaaS | |
Mustyala et al. | Cost Optimization Strategies for Kubernetes Deployments in Cloud Environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BARSNESS, ERIC LAWRENCE;MAJD, MAHDAD;RUHLOW, RANDY WILLIAM;AND OTHERS;REEL/FRAME:015033/0221;SIGNING DATES FROM 20040219 TO 20040223 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |