IP Library Granted Patent US 10,642,851
Granted Patent B2
US 10,642,851 · App. 15/165,397 · Granted May 5, 2020

Caching time series data

Inventors: Dilip Devaraj (Colma, CA); Bhinav Sura (San Mateo, CA); Kirankumar Kakanuru Gowdru (Sunnyvale, CA); Thomas Nicholas Valine (San Jose, CA); Rajavardhan Sarkapally (San Francisco, CA)
Assignee: salesforce.com, inc.
G06F16/2477G06F16/24552
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 10,642,851
App. No.
15/165,397
Granted
May 5, 2020
Kind
B2
Abstract

A time series database system receives a request from a user device for first time series data within a first time range, the first time series data being a subset of second time series data within a second time range, the second time series data being stored in a persistent storage. The system determines whether all of the first time series data is stored in a memory. The system retrieves the second time series data from the persistent storage if all of the first time series data is not stored in the memory. The system stores the second time series data, excluding any part of the second time series data associated with a current time period, into the memory. The system causes the first time series data, being a subset of the second time series data retrieved from the persistent storage, to be outputted to the user device.

Claims (49)

1. A system for caching time series data, the system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

receive, by a time series database system, a request from a user device for first time series data within a first time range, the first time series data being a subset of second time series data within a second time range, the second time series data being stored in a persistent storage and the second time range being a superset of the first time range;

determine, by the time series database system, whether all of the first time series data is stored in a cache memory;

retrieve, by the time series database system, all the second time series data within the second time range from the persistent storage when all of the first time series data is not stored in the cache memory in response to receiving the request for the first time series data, the second time series data including all the requested first time series data within the first time range and remaining unrequested second time series data within the second time range;

store, by the time series database system, the second time series data into the memory, excluding any part of the second time series data that is associated with a current time period; and

cause, by the time series database system, the first time series data to be outputted to the user device, the outputted first time series data being a subset of the second time series data retrieved from the persistent storage.

2. The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to:

retrieve, by the time series database system, all of the first time series data from the memory in response to a determination that all of the first time series data is stored in the memory; and

cause, by the time series database system, all of the first time series data retrieved from the memory to be outputted to the user device.

3. The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to:

determine, by the time series database system, whether a part of the first time series data is stored in the memory in response to a determination that all of the first time series data is not stored in the memory; and

retrieve, by the time series database system, the part of the first time series data that is stored in the memory in response to a determination that the part of the first time series data is stored in the memory.

4. The system of claim 3 , wherein the first time series data to be outputted to the user device comprises the part of the first time series data that is retrieved from the memory.

5. The system of claim 1 , wherein the second time range is based on the first time range and a time period boundary that precedes the first time range.

6. The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to store, by the time series database system, third time series data associated with the second time series data and associated with the current time period into the memory in response to an expiration of the current time period.

7. The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to evict, by the time series database system, at least a part of the second time series data from the memory based on at least one of a request time and a request frequency associated with the second time series data.

8. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to:

receive, by a time series database system, a request from a user device for first time series data within a first time range, the first time series data being a subset of second time series data within a second time range, the second time series data being stored in a persistent storage and the second time range being a superset of the first time range;

determine, by the time series database system, whether all of the first time series data is stored in a cache memory;

retrieve, by the time series database system, all the second time series data within the second time range from the persistent storage when all of the first time series data is not stored in the cache memory in response to receiving the request for the first time series data, the second time series data including all the requested first time series data within the first time range and remaining unrequested second time series data within the second time range;

store, by the time series database system, the second time series data into the memory, excluding any part of the second time series data that is associated with a current time period; and

cause, by the time series database system, the first time series data to be outputted to the user device, the outputted first time series data being a subset of the second time series data retrieved from the persistent storage.

9. The computer program product of claim 8 , wherein the program code comprises further instructions to:

retrieve, by the time series database system, all of the first time series data from the memory in response to a determination that all of the first time series data is stored in the memory; and

cause, by the time series database system, all of the first time series data retrieved from the memory to be outputted to the user device.

10. The computer program product of claim 8 , wherein the program code comprises further instructions to:

determine, by the time series database system, whether a part of the first time series data is stored in the memory in response to a determination that all of the first time series data is not stored in the memory; and

retrieve, by the time series database system, the part of the first time series data that is stored in the memory in response to a determination that the part of the first time series data is stored in the memory, wherein the first time series data outputted to the user device comprises the part of the first time series data that is retrieved from the memory.

11. The computer program product of claim 8 , wherein the second time range is based on the first time range and a time period boundary that precedes the first time range.

12. The computer program product of claim 8 , wherein the program code comprises further instructions to store, by the time series database system, third time series data associated with the second time series data and associated with the current time period into the memory in response to an expiration of the current time period.

13. The computer program product of claim 8 , wherein the program code comprises further instructions to evict, by the time series database system, at least a part of the second time series data from the memory based on at least one of a request time and a request frequency associated with the second time series data.

14. A method comprising:

receiving, by a time series database system, a request from a user device for first time series data within a first time range, the first time series data being a subset of second time series data within a second time range, the second time series data being stored in a persistent storage and the second time range being a superset of the first time range;

determining, by the time series database system, whether all of the first time series data is stored in a cache memory;

retrieving, by the time series database system, all the second time series data within the second time range from the persistent storage when all of the first time series data is not stored in the cache memory in response to receiving the request for the first time series data, the second time series data including all the requested first time series data within the first time range and remaining unrequested second time series data within the second time range;

storing, by the time series database system, the second time series data into the memory, excluding any part of the second time series data that is associated with a current time period; and

causing, by the time series database system, the first time series data to be outputted to the user device, the outputted first time series data being a subset of the second time series data retrieved from the persistent storage.

15. The method of claim 14 , wherein the method further comprises:

retrieving, by the time series database system, all of the first time series data from the memory in response to a determination that all of the first time series data is stored in the memory; and

causing, by the time series database system, all of the first time series data retrieved from the memory to be outputted to the user device.

16. The method of claim 14 , wherein the method further comprises:

determining, by the time series database system, whether a part of the first time series data is stored in the memory in response to a determination that all of the first time series data is not stored in the memory; and

retrieving, by the time series database system, the part of the first time series data that is stored in the memory in response to a determination that the part of the first time series data is stored in the memory.

17. The method of claim 16 , wherein the first time series data outputted to the user device comprises the part of the first time series data that is retrieved from the memory.

18. The method of claim 14 , wherein the second time range is based on the first time range and a time period boundary that precedes the first time range.

19. The method of claim 14 , wherein the method further comprises storing, by the time series database system, third time series data associated with the second time series data and associated with the current time period into the memory in response to an expiration of the current time period.

20. The method of claim 14 , wherein the method further comprises evicting, by the time series database system, at least a part of the second time series data from the memory based on at least one of a request time and a request frequency associated with the second time series data.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2016
From: DEVARAJ, DILIP; SURA, BHINAV; KAKANURU GOWDRU, KIRANKUMAR; VALINE, THOMAS NICHOLAS; SARKAPALLY, RAJAVARDHAN
To: SALESFORCE.COM, INC.
Reel/Frame 038728/0257 →
Continuity (1)
Related Publication 20170344614A1 · Nov 30, 2017