rdingankar opened a new pull request, #5486:
URL: https://github.com/apache/hadoop/pull/5486

   …ic value is better
   
   <!--
     Thanks for sending a pull request!
       1. If this is your first time, please read our contributor guidelines: 
https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute
       2. Make sure your PR title starts with JIRA issue id, e.g., 
'HADOOP-17799. Your PR title ...'.
   -->
   
   ### Description of PR
   
   Currently quantiles are used for latencies, where lower numeric value is 
better.
   
   Hence p90 gives us a value val(p90) such that 90% of our sample set has a 
value better (lower) than val(p90)
   
    
   
   However for metrics such as calculating transfer rates (eg : 
[HDFS-16917](https://issues.apache.org/jira/browse/HDFS-16917) ) higher numeric 
value is better. Thus for such metrics the current quantiles dont work.
   
   For these metrics in order for p90 to give a value val(p90) where 90% of the 
sample set is better (higher) than val(p90) we need to inverse the selection by 
choosing a value at the (100 - 90)th location instead of the usual 90th 
position.
   
   Note: There will be error guarantees for percentiles as our quantile 
implementation following [Cormode, Korn, Muthukrishnan, and Srivastava 
algorithm](http://dimacs.rutgers.edu/~graham/pubs/papers/bquant-icde.pdf)
   
   ### How was this patch tested?
   
   Results from UT testInverseQuantiles
   Starting run 0
   For quantile 0.500000 Expected 50000 with error 5000, estimated 50502
   For quantile 0.750000 Expected 25000 with error 7500, estimated 27103
   For quantile 0.900000 Expected 9999 with error 9000, estimated 12125
   For quantile 0.950000 Expected 5000 with error 9500, estimated 8024
   For quantile 0.990000 Expected 1000 with error 9900, estimated 5971
   Starting run 1
   For quantile 0.500000 Expected 50000 with error 5000, estimated 50796
   For quantile 0.750000 Expected 25000 with error 7500, estimated 26340
   For quantile 0.900000 Expected 9999 with error 9000, estimated 11428
   For quantile 0.950000 Expected 5000 with error 9500, estimated 7980
   For quantile 0.990000 Expected 1000 with error 9900, estimated 5421
   Starting run 2
   For quantile 0.500000 Expected 50000 with error 5000, estimated 50743
   For quantile 0.750000 Expected 25000 with error 7500, estimated 26328
   For quantile 0.900000 Expected 9999 with error 9000, estimated 12007
   For quantile 0.950000 Expected 5000 with error 9500, estimated 7287
   For quantile 0.990000 Expected 1000 with error 9900, estimated 5492
   Starting run 3
   For quantile 0.500000 Expected 50000 with error 5000, estimated 51313
   For quantile 0.750000 Expected 25000 with error 7500, estimated 26258
   For quantile 0.900000 Expected 9999 with error 9000, estimated 12024
   For quantile 0.950000 Expected 5000 with error 9500, estimated 8160
   For quantile 0.990000 Expected 1000 with error 9900, estimated 5570
   Starting run 4
   For quantile 0.500000 Expected 50000 with error 5000, estimated 50258
   For quantile 0.750000 Expected 25000 with error 7500, estimated 25645
   For quantile 0.900000 Expected 9999 with error 9000, estimated 11501
   For quantile 0.950000 Expected 5000 with error 9500, estimated 7376
   For quantile 0.990000 Expected 1000 with error 9900, estimated 5174
   Starting run 5
   For quantile 0.500000 Expected 50000 with error 5000, estimated 50718
   For quantile 0.750000 Expected 25000 with error 7500, estimated 26589
   For quantile 0.900000 Expected 9999 with error 9000, estimated 12808
   For quantile 0.950000 Expected 5000 with error 9500, estimated 7920
   For quantile 0.990000 Expected 1000 with error 9900, estimated 5635
   Starting run 6
   For quantile 0.500000 Expected 50000 with error 5000, estimated 50203
   For quantile 0.750000 Expected 25000 with error 7500, estimated 25996
   For quantile 0.900000 Expected 9999 with error 9000, estimated 12232
   For quantile 0.950000 Expected 5000 with error 9500, estimated 7880
   For quantile 0.990000 Expected 1000 with error 9900, estimated 5875
   Starting run 7
   For quantile 0.500000 Expected 50000 with error 5000, estimated 50423
   For quantile 0.750000 Expected 25000 with error 7500, estimated 25862
   For quantile 0.900000 Expected 9999 with error 9000, estimated 10842
   For quantile 0.950000 Expected 5000 with error 9500, estimated 7702
   For quantile 0.990000 Expected 1000 with error 9900, estimated 5371
   Starting run 8
   For quantile 0.500000 Expected 50000 with error 5000, estimated 50380
   For quantile 0.750000 Expected 25000 with error 7500, estimated 26115
   For quantile 0.900000 Expected 9999 with error 9000, estimated 12687
   For quantile 0.950000 Expected 5000 with error 9500, estimated 8189
   For quantile 0.990000 Expected 1000 with error 9900, estimated 6029
   Starting run 9
   For quantile 0.500000 Expected 50000 with error 5000, estimated 50548
   For quantile 0.750000 Expected 25000 with error 7500, estimated 26427
   For quantile 0.900000 Expected 9999 with error 9000, estimated 11489
   For quantile 0.950000 Expected 5000 with error 9500, estimated 7639
   For quantile 0.990000 Expected 1000 with error 9900, estimated 5315
   ### For code changes:
   
   - [ ] Does the title or this PR starts with the corresponding JIRA issue id 
(e.g. 'HADOOP-17799. Your PR title ...')?
   - [ ] Object storage: have the integration tests been executed and the 
endpoint declared according to the connector-specific documentation?
   - [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)?
   - [ ] If applicable, have you updated the `LICENSE`, `LICENSE-binary`, 
`NOTICE-binary` files?
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to