IP Library Granted Patent US 10,827,039
Granted Patent B1
US 10,827,039 · App. 14/886,884 · Granted Nov 3, 2020

Systems and methods for dynamic compression of time-series data

Inventors: Shree A. Dandekar (Cedar Park, TX); Mark William Davis (Tracy, CA)
Assignee: QUEST SOFTWARE INC.
H04L69/04H04L67/12
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,827,039
App. No.
14/886,884
Granted
Nov 3, 2020
Kind
B1
Abstract

In an embodiment, a method includes receiving, from a data source, time-series data of a time-series data stream produced by the data source. The method further includes identifying a target compression algorithm for the time-series data, wherein the target compression algorithm is linked to the data source in memory pursuant to a dynamically-variable assignment. The method also includes compressing the time-series data using the target compression algorithm and transmitting the compressed time-series data to a destination. Furthermore the method includes periodically optimizing the dynamically-variable assignment in real-time as the time-series data is received.

Claims (72)

1. A method comprising, by a computer system:

receiving, from a data source, time-series data of a time-series data stream produced by the data source;

identifying a target compression algorithm for the time-series data, wherein the target compression algorithm is linked to the data source in memory pursuant to a dynamically-variable assignment;

compressing the time-series data using the target compression algorithm;

transmitting the compressed time-series data to a destination;

accessing a sample of the time-series data stream in relation to a sample period;

determining a time density of time-series data production by the data source over one or more intervals of the sample period, wherein the time density of time-series data production refers to a frequency with which the time-series data is produced for compression such that greater production over the one or more intervals constitutes a greater time density and less production over the one or more intervals constitutes a lower time density;

generating a time-series profile of the sample using the time density;

comparing attributes of the time-series profile to stored algorithm signatures comprising attributes of candidate compression algorithms, the comparing comprising identifying similarities between the time-series profile and the attributes of the candidate compression algorithms;

selecting a compression algorithm from among a plurality of compression algorithms based at least in part on a result of the comparing; and

causing subsequent time-series data received from the data source to be compressed using the selected compression algorithm.

2. The method of claim 1 wherein, responsive to the selected compression algorithm being different from the target compression algorithm, the causing comprises dynamically modifying the dynamically-variable assignment such that the selected compression algorithm is assigned to the data source.

3. The method of claim 1 , wherein, responsive to the selected compression algorithm being the target compression algorithm, the causing comprises compressing the subsequent time-series data using the target compression algorithm.

4. The method of claim 1 , comprising:

transmitting a request for algorithm experience data to a data processor, wherein the transmitting comprises the time-series profile;

responsive to the request, receiving algorithm performance data in relation to at least one compression algorithm;

comparing the received algorithm performance data to algorithm performance data for the target compression algorithm;

identifying based, at least in part, on a sampling and profiling of the time-series data that the at least one compression algorithm results in at least one of a higher compression ratio, a lower time to compress and a lower time to decompress; and

responsive to the identifying, causing subsequent time-series data received from the data source to be compressed using the at least one compression algorithm.

5. The method of claim 1 , wherein the method is performed in parallel with respect to a plurality of data sources.

6. The method of claim 1 , wherein:

the attributes of the time-series profile and the stored attributes of each of the candidate compression algorithms are each represented as a feature vector; and

the comparing attributes comprises determining a similarity between the feature vector of the time-series profile and the feature vector of each of the candidate compression algorithms.

7. The method of claim 6 , wherein:

the attributes of the time-series profile comprise at least one of a burst frequency and a burst size.

8. An information handling system comprising a processor, wherein the processor is operable to implement a method comprising:

receiving, from a data source, time-series data of a time-series data stream produced by the data source;

identifying a target compression algorithm for the time-series data, wherein the target compression algorithm is linked to the data source in memory pursuant to a dynamically-variable assignment;

compressing the time-series data using the target compression algorithm;

transmitting the compressed time-series data to a destination;

accessing a sample of the time-series data stream in relation to a sample period;

determining a time density of time-series data production by the data source over one or more intervals of the sample period, wherein the time density of time-series data production refers to a frequency with which the time-series data is produced for compression such that greater production over the one or more intervals constitutes a greater time density and less production over the one or more intervals constitutes a lower time density;

generating a time-series profile of the sample using the time density;

comparing attributes of the time-series profile to stored algorithm signatures comprising attributes of candidate compression algorithms, the comparing comprising identifying similarities between the time-series profile and the attributes of the candidate compression algorithms;

selecting a compression algorithm from among a plurality of compression algorithms based at least in part on a result of the comparing; and

causing subsequent time-series data received from the data source to be compressed using the selected compression algorithm.

9. The information handling system of claim 8 , wherein, responsive to the selected compression algorithm being different from the target compression algorithm, the causing comprises dynamically modifying the dynamically-variable assignment such that the selected compression algorithm is assigned to the data source.

10. The information handling system of claim 8 , wherein, responsive to the selected compression algorithm being the target compression algorithm, the causing comprises compressing the subsequent time-series data using the target compression algorithm.

11. The information handling system of claim 8 , the method comprising:

transmitting a request for algorithm experience data to a data processor, wherein the transmitting comprises the time-series profile;

responsive to the request, receiving algorithm performance data in relation to at least one compression algorithm;

comparing the received algorithm performance data to algorithm performance data for the target compression algorithm;

identifying based, at least in part, on a sampling and profiling of the time-series data that the at least one compression algorithm results in at least one of a higher compression ratio, a lower time to compress and a lower time to decompress; and

responsive to the identifying, causing subsequent time-series data received from the data source to be compressed using the at least one compression algorithm.

12. The information handling system of claim 8 , wherein the method is performed in parallel with respect to a plurality of data sources.

13. The information handling system of claim 8 , wherein:

the attributes of the time-series profile and the stored attributes of each of the candidate compression algorithms are each represented as a feature vector; and

the comparing attributes comprises determining a similarity between the feature vector of the time-series profile and the feature vector of each of the candidate compression algorithms.

14. The information handling system of claim 13 , wherein:

the attributes of the time-series profile comprise at least one of a burst frequency and a burst size.

15. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:

receiving, from a data source, time-series data of a time-series data stream produced by the data source;

identifying a target compression algorithm for the time-series data, wherein the target compression algorithm is linked to the data source in memory pursuant to a dynamically-variable assignment;

compressing the time-series data using the target compression algorithm;

transmitting the compressed time-series data to a destination;

periodically optimizing, at least as measured by compression ratio, the dynamically-variable assignment in real-time as the time-series data is received, the periodically optimizing comprising:

accessing a sample of the time-series data stream in relation to a sample period;

determining a time density of time-series data production by the data source over one or more intervals of the sample period, wherein the time density of time-series data production refers to a frequency with which the time-series data is produced for compression such that greater production over the one or more intervals constitutes a greater time density and less production over the one or more intervals constitutes a lower time density;

generating a time-series profile of the sample using the time density;

comparing attributes of the time-series profile to stored algorithm signatures comprising attributes of candidate compression algorithms, the comparing comprising identifying similarities between the time-series profile and the attributes of the candidate compression algorithms;

selecting a compression algorithm from among a plurality of compression algorithms based at least in part on a result of the comparing; and

causing subsequent time-series data received from the data source to be compressed using the selected compression algorithm.

16. The computer-program product of claim 15 , wherein, responsive to the selected compression algorithm being different from the target compression algorithm, the causing comprises dynamically modifying the dynamically-variable assignment such that the selected compression algorithm is assigned to the data source.

17. The computer-program product of claim 15 , wherein, responsive to the selected compression algorithm being the target compression algorithm, the causing comprises compressing the subsequent time-series data using the target compression algorithm.

18. The computer-program product of claim 15 , the method comprising:

transmitting a request for algorithm experience data to a data processor, wherein the transmitting comprises the time-series profile;

responsive to the request, receiving algorithm performance data in relation to at least one compression algorithm;

comparing the received algorithm performance data to algorithm performance data for the target compression algorithm;

identifying based, at least in part, on a sampling and profiling of the time-series data that the at least one compression algorithm results in at least one of a higher compression ratio, a lower time to compress and a lower time to decompress; and

responsive to the identifying, causing subsequent time-series data received from the data source to be compressed using the at least one compression algorithm.

19. The computer-program product of claim 15 , wherein the method is performed in parallel with respect to a plurality of data sources.

20. The computer-program product of claim 15 , wherein the attributes of the time-series profile and the stored attributes of each of the candidate compression algorithms are each represented as a feature vector.

Assignments (26)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044719/0565 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 037160 FRAME 0142 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0812 →
RELEASE OF REEL 037160 FRAME 0239 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0115 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 037160 FRAME 0171 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0253 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - TERM LOAN Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037160/0239 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - ABL Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037160/0171 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - NOTES Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 037160/0142 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2015
From: DANDEKAR, SHREE A.; DAVIS, MARK WILLIAM
To: DELL SOFTWARE INC.
Reel/Frame 036931/0577 →
Cited By (10)
US 12,199,643 US 12,217,256 US 12,299,601 US 12,314,839 US 12,373,739 US 12,375,101 US 12,438,554 US 12,443,360 US 12,699,892 US 12,700,875