US 12,189,626 B1
Automatic query optimization
Manjunath Chinni, Saratoga, CA (US); Gabriel Adrian Lam, Mercer Island, WA (US); Travis Willem Morrissey, Pleasanton, CA (US); Hang Yang, Redwood City, CA (US); Rajorshi Kumar Sen, Redmond, WA (US); and Abhishek Kumar, San Jose, CA (US)
Assigned to Rubrik, Inc., Palo Alto, CA (US)
Filed by Rubrik, Inc., Palo Alto, CA (US)
Filed on Aug. 8, 2023, as Appl. No. 18/231,680.
Int. Cl. G06F 16/2453 (2019.01); G06F 11/34 (2006.01); G06F 16/22 (2019.01)
CPC G06F 16/24539 (2019.01) [G06F 11/3419 (2013.01); G06F 11/3428 (2013.01); G06F 16/2255 (2019.01)] 17 Claims
OG exemplary drawing
 
1. A method, comprising:
executing a query, in response to receiving a first instance of the query, to obtain, from a database, first information that is responsive to the query, wherein a first execution time associated with execution of the query is greater than a threshold amount of time;
identifying, in response to the first execution time being greater than the threshold amount of time, an improved version of the query, the improved version associated with a second execution time that is less than or equal to the threshold amount of time;
executing the improved version of the query after identifying the improved version of the query;
verifying the improved version of the query based at least in part on second information obtained by executing the improved version of the query and based at least in part on the first information, wherein the verifying the improved version of the query comprises identifying the second execution time of the improved version of the query based at least in part on executing the improved version of the query;
storing the improved version of the query based at least in part on the verifying the improved version of the query;
retrieving, in response to receiving a second instance of the query, the improved version of the query from storage, wherein at least one of storing the improved version of the query or retrieving the improved version of the query in response to receiving the second instance of the query is based at least in part on the second execution time being less than or equal to the threshold amount of time; and
executing, after the retrieving the improved version of the query from storage, the improved version of the query to obtain the second information from the database that is responsive to the query.