US 11,741,096 B1
Granular performance analysis for database queries
Partha V. Kanuparthy, Sunnyvale, CA (US); Bhaven Avalani, Cupertino, CA (US); Yousuf Hussain Syed Mohammad, Seattle, WA (US); James Thomas Kiraly, Seattle, WA (US); Kaituo Li, Seattle, WA (US); Joydeep Sinha, Seattle, WA (US); and John Benjamin Tobler, San Jose, CA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Feb. 5, 2018, as Appl. No. 15/889,106.
Int. Cl. G06F 16/00 (2019.01); G06F 16/2453 (2019.01); G06F 16/951 (2019.01)
CPC G06F 16/2453 (2019.01) [G06F 16/951 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
at least one processor; and
a memory that stores program instructions that when executed by the at least one processor, cause the at least one processor to:
collect metrics of database query performance for a previously performed database query by a query engine, wherein the database query comprises a plurality of different portions, and wherein the metrics describe the database query performance of respective units of work of the plurality of units of work that perform respective portions of the database query;
generate a directed graph of the database query performance, wherein the graph comprises a plurality of nodes, wherein each of the plurality of nodes represents different ones of the plurality of units of work, wherein the graph comprises edges between the plurality of nodes that represent causality between the units of work;
determine, for the database query, a critical path along respective ones of the edges through two or more of the plurality of nodes of the graph according to an idle time of critical path;
for those respective units of work corresponding to the two or more nodes of the determined critical path, compare the metrics of the those respective units of work to one or more corresponding performance goals for the respective units of work according to an application of respective models for those respective units of work;
identify an anomalous unit of work of those units of work corresponding to the two or more nodes of the determined critical path according to a determination from the comparison that the anomalous unit of work does not meet or exceed the one or more corresponding performance goals;
determine the anomalous unit of work as a root cause of a performance anomaly for the database query, wherein the determination is based, at least in a part, on a frequency in which the anomalous unit of work is identified as a root cause for performance anomalies in a plurality of database queries; and
provide an indication of the performance anomaly for the portion of the database query performance, wherein the indication identified the root cause of the performance anomaly of the database query performance.