IP Library Granted Patent US 12,254,352
Granted Patent B2
US 12,254,352 · App. 17/513,028 · Granted Mar 18, 2025

Reduced memory utilization for data analytics procedures

Inventors: Vignesh Salem Ramamurthy (Hyderabad, IN); Gayatri Kamarajugadda (Hyderabad, IN); Lav Jaitak (Hyderabad, IN); Vamshi Sandhireddy (Hyderabad, IN); Kyle Barron-Kraus (East Lansing, MI); Aiswarya (Hyderabad, IN); Radhika Khandelwal (Hyderabad, IN); Rahul Borkar (Hyderabad, IN); Abhijith Nagarajan (Hyderabad, IN); Benedetto Fiorelli (Amsterdam, NL); Aravind Racharla (Hyderabad, IN)
Assignee: ServiceNow, Inc.
G06F9/5016
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,254,352
App. No.
17/513,028
Granted
Mar 18, 2025
Kind
B2
Abstract

An example embodiment may involve a main database; a main memory; and one or more processors configured to: retrieve, by a data collector application, records from the main database, wherein the data collector application includes an embedded database; aggregate, by the data collector application, values in the records relating to a key performance indicator (KPI) to form partial KPI data stored in one or more blocks of the main memory; determine, by the data collector application, that utilization of the main memory exceeds a pre-defined threshold; in response to the utilization of the main memory exceeding the pre-defined threshold, write, by the data collector application, the partial KPI data to a row of the embedded database; and release, by the data collector application, the one or more blocks of the main memory used to store the partial KPI data.

Claims (71)

1. A system comprising:

a main database;

a main memory; and

one or more processors configured to:

retrieve, by a data collector application, records from the main database into the main memory, wherein the data collector application includes an embedded database, wherein the embedded database is separate from the main database, wherein the main memory is volatile storage, wherein the embedded database is in non-volatile storage;

aggregate, by the data collector application, values in the records relating to a key performance indicator (KPI) to form partial KPI data stored in one or more blocks of the main memory;

determine, by the data collector application, that utilization of the main memory exceeds a pre-defined threshold;

in response to the utilization of the main memory exceeding the pre-defined threshold, write, by the data collector application, the partial KPI data to a row of the embedded database, wherein writing the partial KPI data to the row of the embedded database comprises combining the partial KPI data with other partial KPI data already stored in the row of the embedded database;

determine that an end of the records has been reached;

in response to determining that the end of the records has been reached, write values from the row of the embedded database to the main database as final KPI data;

delete the row of the embedded database relating to the KPI; and

release, by the data collector application, the one or more blocks of the main memory used to store the partial KPI data.

2. The system of claim 1 , wherein the non-volatile storage includes a hard disk drive or a solid state drive, and wherein the volatile storage is random access memory (RAM).

3. The system of claim 1 , wherein determining that the utilization of the main memory exceeds the pre-defined threshold comprises determining that the data collector application is using more than a pre-defined amount of the main memory.

4. The system of claim 1 , wherein the partial KPI data is related to a plurality of KPIs, and wherein determining that the utilization of the main memory exceeds the pre-defined threshold comprises determining that a number of KPIs represented in the partial KPI data exceeds a pre-defined amount.

5. The system of claim 1 , wherein determining that the utilization of the main memory exceeds the pre-defined threshold comprises determining that a number of the records used to form the partial KPI data exceeds a pre-defined amount.

6. The system of claim 1 , wherein the one or more processors are further configured to:

retrieve further records from the main database;

aggregate further values in the further records relating to the KPI to form further partial KPI data stored in one or more further blocks of the main memory;

determine that further utilization of the main memory exceeds the pre-defined threshold;

in response to the further utilization of the main memory exceeding the pre- defined threshold, aggregate the further partial KPI data with the partial KPI data in the row of the embedded database; and

release, by the data collector application, the one or more further blocks of the main memory used to store the further partial KPI data.

7. The system of claim 1 , wherein the one or more processors are further configured to:

aggregate the values in the records relating to a further KPI to form further partial KPI data stored in one or more further blocks of the main memory;

in response to the utilization of the main memory exceeding the pre-defined threshold, write the further partial KPI data to a further row of the embedded database; and

release the one or more further blocks of the main memory used to store the further partial KPI data.

8. The system of claim 1 , wherein aggregating the values in the records relating to the KPI to form partial KPI data comprises summing or averaging the values.

9. A computer-implemented method comprising:

retrieving, by a data collector application, records from a main database into a main memory, wherein the data collector application includes an embedded database, wherein the embedded database is separate from the main database, wherein the main memory is volatile storage, wherein the embedded database is in non-volatile storage;

aggregating, by the data collector application, values in the records relating to a key performance indicator (KPI) to form partial KPI data stored in one or more blocks of the main memory;

determining, by the data collector application, that utilization of the main memory exceeds a pre-defined threshold;

in response to the utilization of the main memory exceeding the pre-defined threshold, writing, by the data collector application, the partial KPI data to a row of the embedded database, wherein writing the partial KPI data to the row of the embedded database comprises combining the partial KPI data with other partial KPI data already stored in the row of the embedded database;

determining that an end of the records has been reached;

in response to determining that the end of the records has been reached, writing values from the row of the embedded database to the main database as final KPI data;

deleting the row of the embedded database relating to the KPI; and

releasing, by the data collector application, the one or more blocks of the main memory used to store the partial KPI data.

10. The computer-implemented method of claim 9 , wherein determining that the utilization of the main memory exceeds the pre-defined threshold comprises determining that the data collector application is using more than a pre-defined amount of the main memory.

11. The computer-implemented method of claim 9 , wherein the partial KPI data is related to a plurality of KPIs, and wherein determining that the utilization of the main memory exceeds the pre-defined threshold comprises determining that a number of KPIs represented in the partial KPI data exceeds a pre-defined amount.

12. The computer-implemented method of claim 9 , wherein determining that the utilization of the main memory exceeds the pre-defined threshold comprises determining that a number of the records used to form the partial KPI data exceeds a pre-defined amount.

13. The computer-implemented method of claim 9 , further comprising:

retrieving further records from the main database;

aggregating further values in the further records relating to the KPI to form further partial KPI data stored in one or more further blocks of the main memory;

determining that further utilization of the main memory exceeds the pre-defined threshold;

in response to the further utilization of the main memory exceeding the pre- defined threshold, aggregating the further partial KPI data with the partial KPI data in the row of the embedded database; and

releasing, by the data collector application, the one or more further blocks of the main memory used to store the further partial KPI data.

14. The computer-implemented method of claim 9 , further comprising:

aggregating the values in the records relating to a further KPI to form further partial KPI data stored in one or more further blocks of the main memory;

in response to the utilization of the main memory exceeding the pre-defined threshold, writing the further partial KPI data to a further row of the embedded database; and

releasing the one or more further blocks of the main memory used to store the further partial KPI data.

15. An article of manufacture including a non-transitory computer-readable medium, having stored thereon program instructions that, upon execution by a computing system, cause the computing system to perform operations comprising:

retrieving, by a data collector application, records from a main database into a main memory, wherein the data collector application includes an embedded database, wherein the embedded database is separate from the main database, wherein the main memory is volatile storage, wherein the embedded database is in non-volatile storage;

aggregating, by the data collector application, values in the records relating to a key performance indicator (KPI) to form partial KPI data stored in one or more blocks of the main memory;

determining, by the data collector application, that utilization of the main memory exceeds a pre-defined threshold;

in response to the utilization of the main memory exceeding the pre-defined threshold, writing, by the data collector application, the partial KPI data to a row of the embedded database, wherein writing the partial KPI data to the row of the embedded database comprises combining the partial KPI data with other partial KPI data already stored in the row of the embedded database;

determining that an end of the records has been reached;

in response to determining that the end of the records has been reached, writing values from the row of the embedded database to the main database as final KPI data;

deleting the row of the embedded database relating to the KP; and

releasing, by the data collector application, the one or more blocks of the main memory used to store the partial KPI data.

16. The article of manufacture of claim 15 , wherein determining that the utilization of the main memory exceeds the pre-defined threshold comprises determining that the data collector application is using more than a pre-defined amount of the main memory.

17. The article of manufacture of claim 15 , wherein the partial KPI data is related to a plurality of KPIs, and wherein determining that the utilization of the main memory exceeds the pre-defined threshold comprises determining that a number of KPIs represented in the partial KPI data exceeds a pre-defined amount.

18. The article of manufacture of claim 15 , wherein determining that the utilization of the main memory exceeds the pre-defined threshold comprises determining that a number of the records used to form the partial KPI data exceeds a pre-defined amount.

19. The article of manufacture of claim 15 , wherein the operations further comprise:

retrieving further records from the main database;

aggregating further values in the further records relating to the KPI to form further partial KPI data stored in one or more further blocks of the main memory;

determining that further utilization of the main memory exceeds the pre-defined threshold;

in response to the further utilization of the main memory exceeding the pre- defined threshold, aggregating the further partial KPI data with the partial KPI data in the row of the embedded database; and

releasing, by the data collector application, the one or more further blocks of the main memory used to store the further partial KPI data.

20. The article of manufacture of claim 15 , wherein the operations further comprise:

aggregating the values in the records relating to a further KPI to form further partial KPI data stored in one or more further blocks of the main memory;

in response to the utilization of the main memory exceeding the pre-defined threshold, writing the further partial KPI data to a further row of the embedded database; and

releasing the one or more further blocks of the main memory used to store the further partial KPI data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2021
From: SALEM RAMAMURTHY, VIGNESH; KAMARAJUGADDA, GAYATRI; JAITAK, LAV; SANDHIREDDY, VAMSHI; BARRON-KRAUS, KYLE; KHANDELWAL, RADHIKA; BORKAR, RAHUL; NAGARAJAN, ABHIJITH; FIORELLI, BENEDETTO; RACHARLA, ARAVIND; AISWARYA, .
To: SERVICENOW, INC.
Reel/Frame 057960/0411 →
Continuity (1)
Related Publication 20230140179A1 · May 4, 2023
References Cited (138)
US 4941084A · Terada et al. · 1990 [cited by applicant]
US 5185860A · Wu · 1993 [cited by applicant]
US 5237518A · Sztipanovits et al. · 1993 [cited by applicant]
US 5261097A · Saxon · 1993 [cited by applicant]
US 5265252A · Rawson, III et al. · 1993 [cited by applicant]
US 5367685A · Gosling · 1994 [cited by applicant]
US 5390297A · Barber et al. · 1995 [cited by applicant]
US 5442791A · Wrabetz et al. · 1995 [cited by applicant]
US 5452415A · Hotka · 1995 [cited by applicant]
US 5522042A · Fee et al. · 1996 [cited by applicant]
US 5533116A · Vesterinen · 1996 [cited by applicant]
US 5655081A · Bonnell et al. · 1997 [cited by applicant]
US 5659736A · Hasegawa et al. · 1997 [cited by applicant]
US 5671412A · Christiano · 1997 [cited by applicant]
US 5696701A · Burgess et al. · 1997 [cited by applicant]
US 5715463A · Merkin · 1998 [cited by applicant]
US 5745879A · Wyman · 1998 [cited by applicant]
US 5761502A · Jacobs · 1998 [cited by applicant]
US 5764913A · Jancke et al. · 1998 [cited by applicant]
US 5887139A · Madison, Jr. et al. · 1999 [cited by applicant]
US 5909217A · Bereiter · 1999 [cited by applicant]
US 5937165A · Schwaller et al. · 1999 [cited by applicant]
US 5949976A · Chappelle · 1999 [cited by applicant]
US 5978594A · Bonnell et al. · 1999 [cited by applicant]
US 6021437A · Chen et al. · 2000 [cited by applicant]
US 6041347A · Harsham et al. · 2000 [cited by applicant]
US 6088717A · Reed et al. · 2000 [cited by applicant]
US 6101500A · Lau · 2000 [cited by applicant]
US 6128016A · Coelho et al. · 2000 [cited by applicant]
US 6131118A · Stupek, Jr. et al. · 2000 [cited by applicant]
US 6134581A · Ismael et al. · 2000 [cited by applicant]
US 6138122A · Smith et al. · 2000 [cited by applicant]
US 6148335A · Haggard et al. · 2000 [cited by applicant]
US 6166732A · Mitchell et al. · 2000 [cited by applicant]
US 6167448A · Hemphill et al. · 2000 [cited by applicant]
US 6175866B1 · Holloway et al. · 2001 [cited by applicant]
US 6175878B1 · Seaman et al. · 2001 [cited by applicant]
US 6260050B1 · Yost et al. · 2001 [cited by applicant]
US 6263457B1 · Anderson et al. · 2001 [cited by applicant]
US 6272150B1 · Hrastar et al. · 2001 [cited by applicant]
US 6336138B1 · Caswell et al. · 2002 [cited by applicant]
US 6363421B2 · Barker et al. · 2002 [cited by applicant]
US 6393386B1 · Zager et al. · 2002 [cited by applicant]
US 6397245B1 · Johnson, II et al. · 2002 [cited by applicant]
US 6434626B1 · Prakash et al. · 2002 [cited by applicant]
US 6438592B1 · Killian · 2002 [cited by applicant]
US 6456306B1 · Chin et al. · 2002 [cited by applicant]
US 6466932B1 · Dennis et al. · 2002 [cited by applicant]
US 6487590B1 · Foley et al. · 2002 [cited by applicant]
US 6505248B1 · Casper et al. · 2003 [cited by applicant]
US 6526442B1 · Stupek, Jr. et al. · 2003 [cited by applicant]
US 6621823B1 · Mellquist et al. · 2003 [cited by applicant]
US 6707795B1 · Noorhosseini et al. · 2004 [cited by applicant]
US 6742015B1 · Bowman-Amuah · 2004 [cited by applicant]
US 6763380B1 · Mayton et al. · 2004 [cited by applicant]
US 6816898B1 · Scarpelli et al. · 2004 [cited by applicant]
US 6895586B1 · Brasher et al. · 2005 [cited by applicant]
US 6948175B1 · Fong et al. · 2005 [cited by applicant]
US 6985901B1 · Sachse et al. · 2006 [cited by applicant]
US 7003564B2 · Greuel et al. · 2006 [cited by applicant]
US 7028228B1 · Lovy et al. · 2006 [cited by applicant]
US 7043537B1 · Pratt · 2006 [cited by applicant]
US 7043661B2 · Valadarsky et al. · 2006 [cited by applicant]
US 7062683B2 · Warpenburg et al. · 2006 [cited by applicant]
US 7096459B2 · Keller et al. · 2006 [cited by applicant]
US 7146574B2 · Goldthwaite et al. · 2006 [cited by applicant]
US 7197466B1 · Peterson et al. · 2007 [cited by applicant]
US 7215360B2 · Gupta · 2007 [cited by applicant]
US 7216304B1 · Gourdol et al. · 2007 [cited by applicant]
US 7222147B1 · Black et al. · 2007 [cited by applicant]
US 7281170B2 · Taylor et al. · 2007 [cited by applicant]
US 7412502B2 · Fearn et al. · 2008 [cited by applicant]
US 7505872B2 · Keller et al. · 2009 [cited by applicant]
US 7593013B2 · Agutter et al. · 2009 [cited by applicant]
US 7596716B2 · Frost et al. · 2009 [cited by applicant]
US 7617073B2 · Trinon et al. · 2009 [cited by applicant]
US 7660731B2 · Chaddha et al. · 2010 [cited by applicant]
US 7676294B2 · Baier et al. · 2010 [cited by applicant]
US 7676437B2 · Satkunanathan et al. · 2010 [cited by applicant]
US 7840490B1 · Sellers et al. · 2010 [cited by applicant]
US 7877783B1 · Cline et al. · 2011 [cited by applicant]
US 7890869B1 · Mayer et al. · 2011 [cited by applicant]
US 7966398B2 · Wiles, Jr. · 2011 [cited by applicant]
US 8060396B1 · Bessler et al. · 2011 [cited by applicant]
US 8196210B2 · Sterin · 2012 [cited by applicant]
US 8321948B2 · Robinson et al. · 2012 [cited by applicant]
US 8407669B2 · Yee et al. · 2013 [cited by applicant]
US 8554750B2 · Rangarajan et al. · 2013 [cited by applicant]
US 8595647B2 · Sabin et al. · 2013 [cited by applicant]
US 8620818B2 · Hughes et al. · 2013 [cited by applicant]
US 8646093B2 · Myers et al. · 2014 [cited by applicant]
US 8674992B2 · Poston et al. · 2014 [cited by applicant]
US 8725647B2 · Disciascio et al. · 2014 [cited by applicant]
US 9053460B2 · Gilbert et al. · 2015 [cited by applicant]
US 10673963B1 · Feiguine et al. · 2020 [cited by applicant]
US 10749943B1 · Feiguine et al. · 2020 [cited by applicant]
US 10771344B2 · Bitterfeld et al. · 2020 [cited by applicant]
US 10824650B2 · Bar Oz et al. · 2020 [cited by applicant]
US 10944654B2 · Rimar et al. · 2021 [cited by applicant]
US 11089115B2 · Garty et al. · 2021 [cited by applicant]
US 11095506B1 · Erblat et al. · 2021 [cited by applicant]
US 11675767B1 · Behm · 2023 [cited by examiner]
US 20020116340A1 · Hellberg et al. · 2002 [cited by applicant]
US 20020133584A1 · Greuel et al. · 2002 [cited by applicant]
US 20020158969A1 · Gupta · 2002 [cited by applicant]
US 20030118087A1 · Goldthwaite et al. · 2003 [cited by applicant]
US 20030200293A1 · Fearn et al. · 2003 [cited by applicant]
US 20050015217A1 · Weidl et al. · 2005 [cited by applicant]
US 20050091356A1 · Izzo · 2005 [cited by applicant]
US 20060026453A1 · Frost et al. · 2006 [cited by applicant]
US 20060095461A1 · Raymond · 2006 [cited by applicant]
US 20060179058A1 · Bram et al. · 2006 [cited by applicant]
US 20060293942A1 · Chaddha et al. · 2006 [cited by applicant]
US 20070033279A1 · Battat et al. · 2007 [cited by applicant]
US 20070188494A1 · Agutter et al. · 2007 [cited by applicant]
US 20070288389A1 · Vaughan et al. · 2007 [cited by applicant]
US 20080133289A1 · Armour et al. · 2008 [cited by applicant]
US 20080148253A1 · Badwe et al. · 2008 [cited by applicant]
US 20080319779A1 · Hughes et al. · 2008 [cited by applicant]
US 20090088875A1 · Baier et al. · 2009 [cited by applicant]
US 20090228984A1 · Sterin · 2009 [cited by applicant]
US 20100110932A1 · Doran et al. · 2010 [cited by applicant]
US 20160142352A1 · Skudlark · 2016 [cited by examiner]
US 20180123940A1 · Rimar et al. · 2018 [cited by applicant]
US 20180253467A1 · Gurajada · 2018 [cited by examiner]
US 20190104398A1 · Owen et al. · 2019 [cited by applicant]
US 20200050689A1 · Tal et al. · 2020 [cited by applicant]
US 20200204443A1 · Bar Oz et al. · 2020 [cited by applicant]
US 20210194764A1 · Badyan et al. · 2021 [cited by applicant]
US 20220004480A1 · Fan · 2022 [cited by examiner]
US 20220283875A1 · Ukawa · 2022 [cited by examiner]
EP 0433979 · 1991 [cited by applicant]
EP 1607824 · 2005 [cited by applicant]
WO WO9934285 · 1999 [cited by applicant]
WO WO0052559 · 2000 [cited by applicant]
WO WO0179970 · 2001 [cited by applicant]
“Rome Now Intelligence,” ServiceNow, Oct. 4, 2021. [cited by applicant]
“Embedded database,” Wikipedia, https://en.wikipedia.org/wiki/Embedded_database, printed from the World Wide Web Oct. 10, 2021. [cited by applicant]