IP Library › Granted Patent US 12,694,009
Granted Patent B2
US 12,694,009 · App. 18/678,357 · Granted Jul 28, 2026

Tracking evaluation of workload stability through performance indexing

Inventors: Vlad Bunescu (Morgan Hill, CA); Joshua Klahr (San Carlos, CA); Louis Magarshack (San Francisco, CA); Shiyu Qu (Bellevue, WA); Zerui Wei (San Mateo, CA); Jiaqi Yan (Menlo Park, CA)
Assignee: Snowflake Inc.
G06F16/2228G06F16/254
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,694,009
App. No.
18/678,357
Filed
May 30, 2024
Granted
Jul 28, 2026
Kind
B2
Examiner
LE, HUNG D
Art Unit
2161
USPC
707/602
Abstract

Methods, systems, and computer programs are described for tracking evaluation of workload stability through performance indexing. A plurality of metric source data is received by at least one hardware processor. Based on this data, a workload is identified as a stable workload candidate. A performance index is then generated, reflecting the characteristics of the identified stable workload candidate. The performance index is continuously tracked over a period of time, enabling the detection and analysis of any modifications to the workload and the subsequent impact on system performance.

Claims (101)

1 . A method comprising:

receiving, by at least one hardware processor, a plurality of metric source data;

identifying a workload, based at least in part on the plurality of metric source data, as a stable workload candidate, the stable workload candidate comprising a workload that satisfies at least one predefined stability threshold for one or more production metrics over a running time window;

generating a performance index based on the workload being identified as the stable workload candidate, the performance index comprising at least one of: a global performance index or a performance sub-index associated with the workload; and

tracking the performance index over a period of time.

2 . The method of claim 1 , wherein:

the performance sub-index is generated based on a subcategory of the workload; and

the global performance index comprises one or more performance sub-indexes.

3 . The method of claim 1 , wherein identifying the workload as the stable workload candidate further comprises:

identifying the workload based on production workloads; and

defining the stable workload candidate to isolate impacts associated with changes to the production workloads from impacts associated with changes to a data platform.

4 . The method of claim 1 , wherein tracking the performance index over the period of time further comprises:

detecting, in an automatic manner, a definition change in the workload;

regenerating the performance index based on the definition change in the workload;

assessing an impact of the definition change in the workload; and

identifying the impact to the workload as a performance regression or a performance improvement.

5 . The method of claim 1 , wherein tracking the performance index over the period of time further comprises:

identifying adjacent comparison windows of the performance index, wherein the adjacent comparison windows include a first comparison window and a second comparison window;

generating a first performance index based on the workload during the first comparison window;

generating a second performance index based on the workload during the second comparison window; and

identifying overlapping workloads between the first performance index and the second performance index to measure relative performance of the workload over the period of time.

6 . The method of claim 5 , wherein tracking the performance index comprises:

comparing a value of the first performance index to a value of the second performance index, wherein the value of the first performance index and the value of the second performance index are based on one of: a previous period of time, a previous parameter setting, a previous metric, or a previous definition.

7 . The method of claim 6 , further comprising:

generating a next performance index based on a result of the comparing of the value of the first performance index and the value of the second performance index.

8 . The method of claim 1 , wherein identifying the stable workload candidate further comprises:

identifying a stable warehouse;

identifying a stable recurrent query;

identifying stable data sources; and

categorizing the workload as a stable workload, based on at least one of the identified stable warehouse, the identified stable recurrent query, or the identified stable data sources.

9 . The method of claim 8 , wherein the stable workload is automatically detected based on production query patterns.

10 . The method of claim 1 , further comprising:

causing the performance index to be displayed in a user interface.

11 . A system comprising:

one or more hardware processors of a machine; and

at least one memory storing instructions that, when executed by the one or more hardware processors, cause the system to perform operations comprising:

receiving a plurality of metric source data;

identifying a workload, based at least in part on the plurality of metric source data, as a stable workload candidate, the stable workload candidate comprising a workload that satisfies at least one predefined stability threshold for one or more production metrics over a running time window;

generating a performance index based on the workload being identified as the stable workload candidate, the performance index comprising at least one of: a global performance index or a performance sub-index associated with the workload; and

tracking the performance index over a period of time.

12 . The system of claim 11 , wherein:

the performance sub-index is generated based on a subcategory of the workload; and

the global performance index comprises one or more performance sub-indexes.

13 . The system of claim 11 , wherein identifying the workload as the stable workload candidate further comprises:

identifying the workload based on production workloads; and

defining the stable workload candidate to isolate impacts associated with changes to the production workloads from impacts associated with changes to a data platform.

14 . The system of claim 11 , wherein tracking the performance index over the period of the time further comprises:

detecting, in an automatic manner, a definition change in the workload;

regenerating the performance index based on the definition change in the workload;

assessing an impact of the definition change in the workload; and

identifying the impact to the workload as a performance regression or a performance improvement.

15 . The system of claim 11 , wherein tracking the performance index over the period of time further comprises:

identifying adjacent comparison windows of the performance index, wherein the adjacent comparison windows include a first comparison window and a second comparison window;

generating a first performance index based on the workload during the first comparison window;

generating a second performance index based on the workload during the second comparison window; and

identifying overlapping workloads between the first performance index and the second performance index to measure relative performance of the workload over the period of time.

16 . The system of claim 15 , wherein tracking the performance index comprises:

comparing a value of the first performance index to a value of the second performance index, wherein the value of the first performance index and the value of the second performance index are based on one of: a previous period of time, a previous parameter setting, a previous metric, or a previous definition.

17 . The system of claim 16 , the operations further comprising:

generating a next performance index based on a result of the comparing of the value of the first performance index and the value of the second performance index.

18 . The system of claim 11 , wherein identifying the stable workload candidate further comprises:

identifying a stable warehouse;

identifying a stable recurrent query;

identifying stable data sources; and

categorizing the workload as a stable workload, based on at least one of the identified stable warehouse, the identified stable recurrent query, or the identified stable data sources.

19 . The system of claim 11 , wherein the stable workload is automatically detected based on production query patterns.

20 . The system of claim 11 , the operations further comprising:

causing the performance index to be displayed in a user interface.

21 . A computer-storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:

receiving a plurality of metric source data;

identifying a workload, based at least in part on the plurality of metric source data, as a stable workload candidate, the stable workload candidate comprising a workload that satisfies at least one predefined stability threshold for one or more production metrics over a running time window;

generating a performance index based on the workload being identified as the stable workload candidate, the performance index comprising at least one of: a global performance index or a performance sub-index associated with the workload; and

tracking the performance index over a period of time.

22 . The computer-storage medium of claim 21 , wherein:

the performance sub-index is generated based on a subcategory of the workload; and

the global performance index comprises one or more performance sub-indexes.

23 . The computer-storage medium of claim 21 , wherein identifying the workload as the stable workload candidate further comprises:

identifying the workload based on production workloads; and

defining the stable workload candidate to isolate impacts associated with changes to the production workloads from impacts associated with changes to a data platform.

24 . The computer-storage medium of claim 21 , wherein tracking the performance index over the period of the time further comprises:

detecting, in an automatic manner, a definition change in the workload;

regenerating the performance index based on the definition change in the workload;

assessing an impact of the definition change in the workload; and

identifying the impact to the workload as a performance regression or a performance improvement.

25 . The computer-storage medium of claim 21 , wherein tracking the performance index over the period of time further comprises:

identifying adjacent comparison windows of the performance index, wherein the adjacent comparison windows include a first comparison window and a second comparison window;

generating a first performance index based on the workload during the first comparison window;

generating a second performance index based on the workload during the second comparison window; and

identifying overlapping workloads between the first performance index and the second performance index to measure relative performance of the workload over the period of time.

26 . The computer-storage medium of claim 25 , wherein tracking the performance index comprises:

comparing a value of the first performance index to a value of the second performance index, wherein the value of the first performance index and the value of the second performance index are based on one of: a previous period of time, a previous parameter setting, a previous metric, or a previous definition.

27 . The computer-storage medium of claim 26 , the operations further comprising:

generating a next performance index based on a result of the comparing of the value of the first performance index and the value of the second performance index.

28 . The computer-storage medium of claim 21 , wherein identifying the stable workload candidate further comprises:

identifying a stable warehouse;

identifying a stable recurrent query;

identifying stable data sources; and

categorizing the workload as a stable workload, based on at least one of the identified stable warehouse, the identified stable recurrent query, or the identified stable data sources.

29 . The computer-storage medium of claim 28 , wherein the stable workload is automatically detected based on production query patterns.

30 . The computer-storage medium of claim 21 , the operations further comprising:

causing the performance index to be displayed in a user interface.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2024
From: BUNESCU, VLAD; KLAHR, JOSHUA; MAGARSHACK, LOUIS; QU, SHIYU; WEI, ZERUI; YAN, JIAQI
To: SNOWFLAKE INC.
Reel/Frame 067565/0832 →
Continuity (2)
Continuation 18112198 · Feb 21, 2023
Related Publication 20240320202A1 · Sep 26, 2024
References Cited (48)
US 7191174B2 · Day et al. · 2007 [cited by applicant]
US 8285709B2 · Candea et al. · 2012 [cited by applicant]
US 8418089B2 · Higuchi · 2013 [cited by examiner]
US 9027000B2 · Guerrera · 2015 [cited by examiner]
US 9208053B2 · Kejariwal · 2015 [cited by examiner]
US 10135703B1 · Gupta · 2018 [cited by examiner]
US 10496643B2 · Kandula · 2019 [cited by examiner]
US 10554771B2 · Park · 2020 [cited by examiner]
US 10922313B2 · Collins · 2021 [cited by examiner]
US 11429627B2 · Burnett · 2022 [cited by examiner]
US 11928513B1 · Jiang · 2024 [cited by examiner]
US 20020059229A1 · Natsumeda et al. · 2002 [cited by applicant]
US 20030046203A1 · Ichihari et al. · 2003 [cited by applicant]
US 20050187950A1 · Parker et al. · 2005 [cited by applicant]
US 20070100720A1 · Bonvouloir · 2007 [cited by applicant]
US 20080071906A1 · Thoennes et al. · 2008 [cited by applicant]
US 20090037238A1 · Macgregor · 2009 [cited by applicant]
US 20090327030A1 · Collins · 2009 [cited by applicant]
US 20110055201A1 · Burger · 2011 [cited by applicant]
US 20120066148A1 · Sagi et al. · 2012 [cited by applicant]
US 20120197426A1 · Murphy et al. · 2012 [cited by applicant]
US 20120265670A1 · Abiola et al. · 2012 [cited by applicant]
US 20130036122A1 · Cohen · 2013 [cited by examiner]
US 20150032758A1 · Schneider · 2015 [cited by examiner]
US 20150066900A1 · Schneider · 2015 [cited by examiner]
US 20150134265A1 · Kohlbrecher · 2015 [cited by examiner]
US 20150277831A1 · Kuranoshita · 2015 [cited by examiner]
US 20150278731A1 · Schwaber · 2015 [cited by examiner]
US 20160098020A1 · Salsbury · 2016 [cited by examiner]
US 20160127921A1 · Bhatia · 2016 [cited by examiner]
US 20160342447A1 · Richter · 2016 [cited by examiner]
US 20170091276A1 · Hawton · 2017 [cited by examiner]
US 20170181013A1 · Toka · 2017 [cited by examiner]
US 20170300538A1 · Seuss · 2017 [cited by examiner]
US 20190066243A1 · Watkins, Jr. · 2019 [cited by examiner]
US 20190253015A1 · He et al. · 2019 [cited by applicant]
US 20190339132A1 · Hofleitner · 2019 [cited by examiner]
US 20200104401A1 · Burnett · 2020 [cited by examiner]
US 20200356579A1 · Anderson · 2020 [cited by examiner]
US 20220197235A1 · Warake · 2022 [cited by examiner]
US 20230068216A1 · Gottin · 2023 [cited by examiner]
US 20230177052A1 · Li · 2023 [cited by examiner]
US 20230195710A1 · Wang · 2023 [cited by examiner]
US 20230385261A1 · Siddiqui · 2023 [cited by examiner]
US 20240232042A1 · McCarthy · 2024 [cited by examiner]
“U.S. Appl. No. 18/112,198, Non Final Office Action mailed Jan. 2, 2024”, 9 pgs. [cited by applicant]
“U.S. Appl. No. 18/112,198, Notice of Allowance mailed Mar. 27, 2024”, 19 pgs. [cited by applicant]
“U.S. Appl. No. 18/112,198, Response filed Jan. 31, 2024 to Non Final Office Action mailed Jan. 2, 2024”, 12 pgs. [cited by applicant]