IP Library Granted Patent US 9,760,605
Granted Patent B2
US 9,760,605 · App. 14/481,211 · Granted Sep 12, 2017

System and method for precise quantile determination

Inventors: Daniel Schreck (Saarbrücken, DE); Sebastian Millies (Gersheim, DE); Patrick Utter (Püttlingen, DE)
Assignee: Software AG
G06F17/30477
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 9,760,605
App. No.
14/481,211
Granted
Sep 12, 2017
Kind
B2
Abstract

A system for precise quantile determination derives a maximum relative error value ε that guarantees that an exact result for every quantile can be determined in no more than two passes. The system computes a quantile summary of the datapoints, that specifies lower and upper bounds of the quantile ranks for selected datapoints, and determines for each quantile rank, the lower and upper bounds for values between which the quantile must occur. The system filters out in a second pass those datapoints that are not within the bounds to provide subsets; and computes from the quantile ranks and the subsets, the precise quantiles.

Claims (62)

1. A method for precise quantile determination comprising:

receiving, by a processor, datapoints and one or more quantiles to be computed;

determining, by the processor, from the datapoints and the one or more quantiles to be computed, a maximum relative error value e so that a rank distance between two adjacent elements in all of the one or more quantiles is at most 2ε, wherein the maximum relative error value ε guarantees that an exact result for every quantile is determined in no more than two passes;

computing, by the processor, in a first pass of the datapoints using an approximation algorithm and the maximum relative error value ε, a quantile summary of the datapoints that specifies lower and upper bounds of the quantile ranks for selected datapoints;

determining, by the processor, for each quantile rank, the lower and upper bounds for values between which the quantile must occur;

filtering out, by the processor, in a second pass over the datapoints those datapoints that are not between the lower and upper bounds to provide subsets within the lower and upper bounds; and

computing, by the processor, from the quantile ranks and the subsets which were provided by the filtering out within the lower and upper bounds which were specified using the maximum relative error value ε, the precise quantiles.

2. The method of claim 1 , wherein the value for the maximum relative error ε is determined by solving the following equations:

M approx =( b+ 3)3 dL+hL

M exact =4ε NdM

M approx =M exact ,

such that M approx and M exact are memory consumptions, M is the number of requested quantiles, b is a block size for partitioning input buffers, d is memory per entry, L is a number of levels in the quantile summary, h is additional overhead for pointers that connect the levels in the quantile summary, and N is an amount of the datapoints.

3. The method of claim 1 , wherein when the lower and upper bounds for all quantiles are identical, then the precise quantile determination is complete.

4. The method of claim 1 , wherein the filtering out step further comprises:

collecting, by the processor, the datapoints that lie between the lower and upper bounds;

counting/excluding, by the processor, the datapoints that are on or below the lower bound;

sorting, by the processor, the datapoints that lie between the lower and upper bounds;

selecting, by the processor, a datapoint of a requested rank from the sorted datapoints; and

simultaneously correcting, by the processor, the requested rank by the number of datapoints on or below the lower bound.

5. The method of claim 1 , wherein the algorithm has a runtime complexity of O(N log(1/ε log(εN))), such that N is the size of the input.

6. A system for precise quantile determination comprising:

a memory; and

a processor cooperatively operable with the memory, and configured to, based on instructions stored in the memory,

receive datapoints and one or more quantiles to be computed;

determine from the datapoints and the one or more quantiles to be computed, a maximum relative error value ε so that a rank distance between two adjacent elements in all of the one or more quantiles is at most 2ε, wherein the maximum relative error value ε guarantees that an exact result for every quantile is determined in no more than two passes;

compute in a first pass of the datapoints using an approximation algorithm and the maximum relative error value ε, a quantile summary of the datapoints that specifies lower and upper bounds of the quantile ranks for selected datapoints;

determine for each quantile rank, the lower and upper bounds for values between which the quantile must occur;

filter out in a second pass over the datapoints those datapoints that are not between the lower and upper bounds to provide subsets within the lower and upper bounds; and

compute from the quantile ranks and the subsets which were provided by the filtering out within the lower and upper bounds which were specified using the maximum relative error value ε, the precise quantiles.

7. The system of claim 6 , wherein the value for the maximum relative error ε is determined by solving the following equations:

M approx =( b+ 3)3 dL+hL

M exact =4ε NdM

M approx =M exact ,

such that M approx and M exact are memory consumptions, M is the number of requested quantiles, b is a block size for partitioning input buffers, d is memory per entry, L is a number of levels in the quantile summary, h is additional overhead for pointers that connect the levels in the quantile summary, and N is an amount of datapoints.

8. The system of claim 6 , wherein when the lower and upper bounds for all quantiles are identical, then the precise quantile determination is complete.

9. The system of claim 6 , wherein the processor filters out from the datapoints those datapoints that are not between the lower and upper bounds by:

collecting the datapoints that lie between the lower and upper bounds;

counting/excluding the datapoints that are on or below the lower bound;

sorting the datapoints that lie between the lower and upper bounds;

selecting a datapoint of a requested rank from the sorted datapoints; and

simultaneously correcting the requested rank by the number of datapoints on or below the lower bound.

10. The system of claim 6 , wherein the algorithm has a runtime complexity of O(N log(1/ε log(εN))), such that N is the size of the input.

11. A non-transitory computer readable medium comprising executable instructions for a method for precise quantile determination, the instructions being executed on a processor to perform:

receiving datapoints and one or more quantiles to be computed;

determining from the datapoints and the one or more quantiles to be computed, a maximum relative error value ε so that a rank distance between two adjacent elements in all of the one or more quantiles is at most 2ε, wherein the maximum relative error value ε guarantees that an exact result for every quantile is determined in no more than two passes;

computing in a first pass of the datapoints using an approximation algorithm and the maximum relative error value ε, a quantile summary of the datapoints that specifies lower and upper bounds of the quantile ranks for selected datapoints;

determining for each quantile rank, the lower and upper bounds for values between which the quantile must occur;

filtering out in a second pass over the datapoints those datapoints that are not between the lower and upper bounds to provide subsets within the lower and upper bounds; and

computing from the quantile ranks and the subsets which were provided by the filtering out within the lower and upper bounds which were specified using the maximum relative error value ε, the precise quantiles.

12. The non-transitory computer readable medium of claim 11 , wherein the value for the maximum relative error ε is determined by solving the following equations:

M approx =( b+ 3)3 dL+hL

M exact =4ε NdM

M approx =M exact ,

such that M approx and M exact are memory consumptions, M is the number of requested quantiles, b is a block size for partitioning input buffers, d is memory per entry, L is a number of levels in the quantile summary, h is additional overhead for pointers that connect the levels in the quantile summary, and N is an amount of the datapoints.

13. The non-transitory computer readable medium of claim 11 , wherein when the lower and upper bounds for all quantiles are identical, then the precise quantile determination is complete.

14. The non-transitory computer readable medium of claim 11 , wherein the filtering out step further comprises:

collecting, by the processor, the datapoints that lie between the lower and upper bounds;

counting/excluding, by the processor, the datapoints that are on or below the lower bound;

sorting, by the processor, the datapoints that lie between the lower and upper bounds;

selecting, by the processor, a datapoint of a requested rank from the sorted datapoints; and

simultaneously correcting, by the processor, the requested rank by the number of datapoints on or below the lower bound.

15. The non-transitory computer readable medium of claim 11 , wherein the algorithm has a runtime complexity of O(N log(1/ε log(εN))), such that N is the size of the input.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2025
From: SOFTWARE GMBH
To: SAG ARIS GMBH
Reel/Frame 072867/0138 →
MERGER Recorded Dec 17, 2024
From: SOFTWARE AG
To: MOSEL BIDCO AG
Reel/Frame 069888/0666 →
CHANGE OF NAME Recorded Dec 17, 2024
From: MOSEL BIDCO AG
To: SOFTWARE GMBH
Reel/Frame 069888/0673 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2014
From: SCHRECK, DANIEL; MILLIES, SEBASTIAN; UTTER, PATRICK
To: SOFTWARE AG
Reel/Frame 033700/0857 →
Continuity (2)
Provisional Application 62043543 · Aug 29, 2014
Related Publication 20160062999A1 · Mar 3, 2016