[ 
https://issues.apache.org/jira/browse/PHOENIX-4160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16154912#comment-16154912
 ] 

James Taylor commented on PHOENIX-4160:
---------------------------------------

[~lhofhansl] - likely a duplicate of PHOENIX-4164? [~aertoria] has some great 
pointers - what's your opinion on the best way to go?

> research for a proper hash size set for APPROX_COUNT_DISTINCT
> -------------------------------------------------------------
>
>                 Key: PHOENIX-4160
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4160
>             Project: Phoenix
>          Issue Type: Improvement
>         Environment: 
>            Reporter: Ethan Wang
>
> Now after -PHOENIX-418- finishes, we want to study to find a proper default 
> size for hll hash. Currently the hash size is hard coded as 25/16 bits by 
> default (a design we follow Apache Druid. discussion see CALCITE-1588).
> Note:
> 1, the std error of hyperloglog is bound by 1/sqrt(size of hash). i.e.,  
> {code:java}sqrt(3\*ln(2)-1)/sqrt(2^precision){code} Detail see the page 129 
> of this [paper|http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf].
> To try on a bigger size, the performance of hll under different bucket/hash 
> size has been studied here: 
> https://metron.apache.org/current-book/metron-analytics/metron-statistics/HLLP.html
> 2, When the estimate cardinalities is large enough, as Timok and Flajolet et 
> al found out, this performance of hll will become problematic because the 
> hash collisions (saturation). In fact, Timok proposed that any number larger 
> than {code}2^{32}/30{code} should consider "to large" for a 32 bit hash. See 
> study [Google’s Take On Engineering 
> HLL|https://research.neustar.biz/2013/01/24/hyperloglog-googles-take-on-engineering-hll/]
>  and suggested by the Figure 8 of this 
> [paper|https://stefanheule.com/papers/edbt13-hyperloglog.pdf]



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to