IP Library Granted Patent US 11,520,759
Granted Patent B2
US 11,520,759 · App. 16/396,516 · Granted Dec 6, 2022

Processing time series metrics data

Inventors: Christian Bayer (Cambridge, MA); Sergei Babovich (Arlington, MA); Dmitry Babenko (Shrewsbury, MA); Ben Susman (Waltham, MA); Shanmugavel Ponnusamy (Lexington, MA)
Assignee: salesforce.com, inc.
G06F16/219G06F16/2246G06F16/2477G06F16/24564
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 11,520,759
App. No.
16/396,516
Granted
Dec 6, 2022
Kind
B2
Abstract

Embodiments of the present invention include a method of processing time series metrics (TSM) data. The method includes receiving a TSM data point for a metric, the TSM data point indicating an identifier (ID) of the metric, getting a persistence policy associated with the metric, selecting a first resolution database according to the persistence policy, storing the TSM data point in the first resolution database, selecting a second resolution database according to the persistence policy; and when the second resolution database is defined, storing the TSM data point in a staging file for the second resolution database.

Claims (61)

1. A computing device comprising:

one or more processors; and

a non-transitory machine-readable storage medium having instructions stored therein, which when executed by the one or more processors, causes the computing device to:

receive a time series metric (TSM) data point for a metric, the TSM data point indicating an identifier (ID) of the metric;

get a persistence policy associated with the metric;

select a first resolution database according to the persistence policy;

store the TSM data point in the first resolution database;

select a second resolution database according to the persistence policy; and

store, responsive to the selecting of the second resolution database, the TSM data point in a staging file for the second resolution database, the staging file identifying one or more TSM data points to be aggregated.

2. The computing device of claim 1 , comprising instructions stored therein, which when executed by the one or more processors, causes the computing device to repeat the storing of TSM data points in the first resolution database and the storing of TSM data points in the staging file for the second resolution database for a plurality of TSM data points received in a time interval.

3. The computing device of claim 2 , comprising instructions stored therein, which when executed by the one or more processors, causes the computing device to, at the end of the time interval,

sort the staging file for the second resolution database to group TSM data points by metric ID;

aggregate the TSM data points for the metric ID from the second staging file using an aggregation rule for the metric;

store the aggregated TSM data points in the second resolution database using sequential input/output (I/O) operations;

select a third resolution database using the persistence policy; and

when the third resolution database is defined, store the aggregated TSM data points in a staging file for the third resolution database.

4. The computing device of claim 3 , wherein the persistence policy defines one or more of a first time resolution and a first retention time for the first resolution database, a second time resolution and a second retention time for the second resolution database, and a third time resolution and a third retention time for the third resolution database.

5. The computing device of claim 4 , wherein the first time resolution is smaller than the second time resolution, and the second time resolution is smaller than the third time resolution.

6. The computing device of claim 4 , wherein the first resolution database, the second resolution database, and the third resolution database are log-structured-merge (LSM) trees.

7. The computing device of claim 4 , comprising instructions stored therein, which when executed by the one or more processors, causes the computing device to store the staging files, the resolution databases, and the persistence policies in a shard, using a names pace of the metric as a sharding key.

8. The computing device of claim 1 , wherein a TSM data point comprises a metric name, a timestamp, and a value.

9. The computing device of claim 8 , wherein a resolution database entry comprises a key field and a value field, the key field comprising the metric ID and the timestamp, and the value field comprising a TSM data point value.

10. The computing device of claim 3 , comprising instructions stored therein, which when executed by the one or more processors, causes the computing device to process TSM data points received during an outage of the computing device after a restart of the computing device in parallel with processing TSM data points received after the outage.

11. A method of operating a computing device comprising:

receiving a time series metric (TSM) data point for a metric, the TSM data point indicating an identifier (ID) of the metric;

getting a persistence policy associated with the metric;

selecting a first resolution database according to the persistence policy;

storing the TSM data point in the first resolution database;

selecting a second resolution database according to the persistence policy; and

storing, responsive to the selecting of the second resolution database, the TSM data point in a staging file for the second resolution database, the staging file identifying one or more TSM data points to be aggregated.

12. The method of claim 11 , comprising repeating the storing of TSM data points in the first resolution database and the storing of TSM data points in the staging file for the second resolution database for a plurality of TSM data points received in a time interval.

13. The method of claim 12 , comprising, at the end of the time interval,

sorting the staging file for the second resolution database to group TSM data points by metric ID;

aggregating the TSM data points for the metric ID from the second staging file using an aggregation rule for the metric;

storing the aggregated TSM data points in the second resolution database using sequential input/output (I/O) operations;

selecting a third resolution database using the persistence policy; and

when the third resolution database is defined, storing the aggregated TSM data points in a staging file for the third resolution database.

14. The method of claim 13 , wherein the persistence policy defines one or more of a first time resolution and a first retention time for the first resolution database, a second time resolution and a second retention time for the second resolution database, and a third time resolution and a third retention time for the third resolution database.

15. The method of claim 14 , wherein the first time resolution is smaller than the second time resolution, and the second time resolution is smaller than the third time resolution.

16. The method of claim 14 , wherein the first resolution database, the second resolution database, and the third resolution database are log-structured-merge (LSM) trees.

17. The method of claim 14 , comprising storing the staging files, the resolution databases, and the persistence policies in a shard, using a names pace of the metric as a sharding key.

18. The method of claim 11 , wherein a TSM data point comprises a metric name, a timestamp, and a value.

19. The method of claim 18 , wherein a resolution database entry comprises a key field and a value field, the key field comprising the metric ID and the timestamp, and the value field comprising a TSM data point value.

20. The method of claim 13 , comprising processing TSM data points received during an outage of the computing device after a restart of the computing device in parallel with processing TSM data points received after the outage.

21. A non-transitory machine-readable storage medium having instructions stored therein, which when executed by one or more processors of a computing device, causes the computing device to:

receive a time series metric (TSM) data point for a metric, the TSM data point indicating an identifier (ID) of the metric;

get a persistence policy associated with the metric;

select a first resolution database according to the persistence policy;

store the TSM data point in the first resolution database;

select a second resolution database according to the persistence policy; and

store, responsive to the selectin of the second resolution database, the TSM data point in a staging file for the second resolution database, the staging file identifying one or more TSM data points to be aggregated.

22. The non-transitory machine-readable storage medium of claim 21 , comprising instructions stored therein, which when executed by the one or more processors, causes the computing device to repeat the storing of TSM data points in the first resolution database and the storing of TSM data points in the staging file for the second resolution database for a plurality of TSM data points received in a time interval.

23. The non-transitory machine-readable storage medium of claim 21 , comprising instructions stored therein, which when executed by the one or more processors, causes the computing device to, at the end of the time interval,

sort the staging file for the second resolution database to group TSM data points by metric ID;

aggregate the TSM data points for the metric ID from the second staging file using an aggregation rule for the metric;

store the aggregated TSM data points in the second resolution database using sequential input/output (I/O) operations;

select a third resolution database using the persistence policy; and

when the third resolution database is defined, store the aggregated TSM data points in a staging file for the third resolution database.

24. The non-transitory machine-readable storage medium of claim 23 , wherein the persistence policy defines one or more of a first time resolution and a first retention time for the first resolution database, a second time resolution and a second retention time for the second resolution database, and a third time resolution and a third retention time for the third resolution database.

25. The non-transitory machine-readable storage medium of claim 23 , wherein the first time resolution is smaller than the second time resolution, and the second time resolution is smaller than the third time resolution.

26. The non-transitory machine-readable storage medium of claim 24 , wherein the first resolution database, the second resolution database, and the third resolution database are log-structured-merge (LSM) trees.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2019
From: BABOVICH, SERGEI; BAYER, CHRISTIAN; BABENKO, DMITRY; SUSMAN, BEN; PONNUSAMY, SHANMUGAVEL
To: SALESFORCE.COM, INC.
Reel/Frame 049584/0394 →
Continuity (1)
Related Publication 20200341956A1 · Oct 29, 2020