IP Library Granted Patent US 10,685,018
Granted Patent B1
US 10,685,018 · App. 15/192,165 · Granted Jun 16, 2020

Methods and apparatus for computing estimated quantiles for streaming data over sliding windows

Inventors: Marcelo Blatt (Modiin, IL); Rafael Shachar (Tel Aviv, IL)
Assignee: EMC IP Holding Company LLC
G06F16/24539G06F16/2474
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,685,018
App. No.
15/192,165
Granted
Jun 16, 2020
Kind
B1
Abstract

Estimated quantiles and/or percentiles for streaming data are computed over a sliding window. An exemplary method comprises obtaining a stream of data values; obtaining a summary of a distribution of previously processed data values; adding streamed data values to a buffer; and when the buffer reaches a predefined fullness threshold, performing the following steps: processing tuples in the summary to apply a decay function to each tuple using the number of items in the stream in the stream at the time the tuple is created and a minimal rank bound; for each item in the buffer, creating a tuple; adding the tuple to the summary, and removing the item from the buffer; and building a search tree that is used to process one or more of percentile queries and quantile queries. The summary is optionally compressed by merging consecutive tuples that satisfy a predefined invariant constraint. The decay function maintains, for example, one or more of a predefined recent number of items or a predefined recent time window of items in the summary.

Claims (38)

1. A method, comprising the steps of:

obtaining a stream of data values;

obtaining a summary of a distribution of processed data values, wherein the processed data values correspond to data values of said stream that were previously: (i) streamed to a buffer and (ii) removed from the buffer, wherein said data values are stored in said summary as a tuple, wherein a given tuple, t i , comprises a given data value, an item count, a difference value based on a size of said summary at a time said tuple is created, a number of items in said stream at said time said tuple is created, and a minimal rank bound of tuple i−1;

adding streamed data values of said stream to said buffer; and

when the buffer reaches a predefined fullness threshold, performing the following steps:

processing tuples in the summary to apply a decay function to each tuple using said number of items in said stream and said minimal rank bound;

for each item in the buffer: (i) creating a tuple, (ii) adding the tuple to the summary, and (iii) removing the item from the buffer; and

building a search tree that is used to process one or more of percentile queries and quantile queries, wherein building said search tree comprises adding an entry to the search tree for each tuple in the summary.

2. The method of claim 1 , wherein, for each tuple in the summary, having a given data value, v i , the entry to the search tree is of the form (v i , percentile(v i )).

3. The method of claim 1 , wherein, for a given data value, v, a percentile of the given data value is the percentile(v i ) where v i is a largest value that is smaller than v.

4. The method of claim 1 , wherein, for a given percentile, a quantile is the value, v, at which the given percentile of the observations are less than v.

5. The method of claim 1 , wherein a result of said one or more of said percentile queries and said quantile queries is provided to one or more of a downstream system and an analyst to allow said given data value to be further analyzed.

6. The method of claim 1 , further comprising the step of compressing said summary by merging consecutive tuples that satisfy a predefined invariant constraint.

7. The method of claim 1 , wherein said decay function maintains one or more of a predefined recent number of items and items or a predefined recent time window of items in said summary.

8. The method of claim 1 , wherein said decay function comprises an exponential decay function based on a window size and a time since a last update of said summary.

9. The method of claim 1 , wherein said stream of data values comprises a stream of risk scores for a plurality of transactions.

10. A computer program product, comprising a non-transitory machine-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by at least one processing device perform the following steps: obtaining a stream of data values; obtaining a summary of a distribution of processed data values, wherein the processed data values correspond to data values of said stream that were previously: (i) streamed to a buffer and (ii) removed from the buffer, wherein said data values are stored in said summary as a tuple, wherein a given tuple, t comprises a given data value, an item count, a difference value based on a size of said summary at a time said tuple is created, a number of items in said stream at said time said tuple is created, and a minimal rank bound of tuple i−1; adding streamed data values of said steam to said buffer; and when the buffer reaches a predefined fullness threshold, performing the following steps: processing tuples in the summary to apply a decay function to each tuple using said number of items in said stream and said minimal rank bound; for each item in the buffer: (i) creating a tuple, (ii) adding the tuple to the summary, and (iii) removing the item from the buffer; and building a search tree that is used to process one or more of percentile queries and quantile queries, wherein building said search tree comprises adding an entry to the search tree for each tuple ii the summary.

11. The computer program product of claim 10 , wherein, for each tuple in the summary, having a given data value, v i , the entry to the search tree is of the form (v i , percentile (v i )).

12. The computer program product of claim 10 , wherein a result of said one or more of said percentile queries and said quantile queries is provided to one or more of a downstream system and an analyst to allow said given data value to be further analyzed.

13. The computer program product of claim 10 , further comprising the step of compressing said summary by merging consecutive tuples that satisfy a predefined invariant constraint.

14. The computer program product of claim 10 , wherein said decay function maintains one or more of a predefined recent number of items and a predefined recent time window of items in said summary.

15. The computer program product of claim 10 , wherein said decay function comprises an exponential decay function based on a window size and a time since a last update of said summary.

16. A system, comprising:

a memory; and

at least one processing device, coupled to the memory, operative to implement the following steps:

obtaining a stream of data values;

obtaining a summary of a distribution of processed data values, wherein the processed data values correspond to data values of said stream that were previously: (i) streamed to a buffer and (ii) removed from the buffer, wherein said data values are stored in said summary as a tuple, wherein a given tuple, t i , comprises a given data value, an item count, a difference value based on a size of said summary at a time said tuple is created, a number of items in said stream at said time said tuple is created, and a minimal rank bound of tuple i−1;

adding streamed data values of said stream to said buffer; and

when the buffer reaches a predefined fullness threshold, performing the following steps:

processing tuples in the summary to apply a decay function to each tuple using said number of items in said stream and said minimal rank bound;

for each item in the buffer: (i) creating a tuple, (ii) adding the tuple to the summary, and (iii) removing the item from the buffer; and

building a search tree that is used to process one or more of percentile queries and quantile queries, wherein building said search tree comprises adding an entry to the search tree for each tuple in the summary.

17. The system of claim 16 , wherein, for each tuple in the summary, having a given data value, v i , the entry to the search tree is of the form (v i , percentile(v i )).

18. The system of claim 16 , wherein a result of said one or more of said percentile queries and said quantile queries is provided to one or more of a downstream system and an analyst to allow said given data value to be further analyzed.

19. The system of claim 16 , further comprising the step of compressing said summary by merging consecutive tuples that satisfy a predefined invariant constraint.

20. The system of claim 16 , wherein said decay function maintains one or more of a predefined recent number of items or items and a predefined recent time window of items in said summary.

21. The system of claim 16 , wherein said decay function comprises an exponential decay function based on a window size and a time since a last update of said summary.

22. The system of claim 16 , wherein said stream of data values comprises a stream of risk scores for a plurality of transactions.

Assignments (18)
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 56098/0534 Recorded Mar 5, 2026
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: RSA SECURITY LLC
Reel/Frame 075041/0175 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 56096/0525 Recorded Mar 5, 2026
From: JPMORGAN CHASE BANK, N.A.
To: RSA SECURITY LLC; RSA SECURITY USA LLC
Reel/Frame 075030/0744 →
NOTICE OF PARTIAL TERMINATION AND RELEASE OF FIRST LIEN SECURITY INTEREST IN TRADEMARK RIGHTS AND PATENT RIGHTS RECORDED AT REEL/FRAME: 056096/0525 Recorded Jun 3, 2025
From: JPMORGAN CHASE BANK, N.A.
To: RSA SECURITY LLC
Reel/Frame 071482/0733 →
NOTICE OF PARTIAL TERMINATION AND RELEASE OF SECOND LIEN SECURITY INTEREST IN TRADEMARK RIGHTS AND PATENT RIGHTS RECORDED AT REEL/FRAME: 056098/0534 Recorded Jun 3, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: RSA SECURITY LLC
Reel/Frame 071484/0819 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2025
From: RSA SECURITY LLC
To: NETWITNESS SECURITY LLC
Reel/Frame 071495/0168 →
TERMINATION AND RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS RECORDED AT REEL 053666, FRAME 0767 Recorded Apr 29, 2021
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: RSA SECURITY LLC
Reel/Frame 056095/0574 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2021
From: RSA SECURITY LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 056096/0525 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 29, 2021
From: RSA SECURITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 056098/0534 →
TERMINATION AND RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT REEL 054155, FRAME 0815 Recorded Apr 29, 2021
From: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
To: RSA SECURITY LLC
Reel/Frame 056104/0841 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2020
From: EMC IP HOLDING COMPANY LLC
To: RSA SECURITY LLC
Reel/Frame 053717/0020 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (049452/0223) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054250/0372 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Sep 3, 2020
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS AGENT
To: DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 054191/0287 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: RSA SECURITY LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 053666/0767 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 1, 2020
From: RSA SECURITY LLC
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 054155/0815 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2020
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052401/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2016
From: BLATT, MARCELO; SHACHAR, RAFAEL
To: EMC CORPORATION
Reel/Frame 039196/0822 →