hyperloglog
hyperloglog copied to clipboard
HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction) brought to you by Axiom
```go var Counter *hyperloglog.Sketch ... Counter = hyperloglog.New16() ... bpk := make([]byte, 8) binary.LittleEndian.PutUint64(bpk, pk) Counter.Insert(bpk) ``` ``` fatal error: concurrent map writes goroutine 458 [running]: runtime.throw(0x788fc0, 0x15) /Go/src/runtime/panic.go:1114 +0x79...
I see options for both [16384 and 65536](https://github.com/axiomhq/hyperloglog/blob/a4c4c47bc57fa695d962fbd4abdb04d9cc62513a/hyperloglog.go#L36-L45) registers. How much memory does each instance actually use? The read-me says each register 4-bits, what about the sketch structure overhead?
It would be good to provide some documentation about what properties are expected of the input hash for `InsertHash`. For example, a reasonable question is: if my data is a...
…pressedList initialization 1. Fix issue in test: Avoid copying the address of buf in tests, preventing the generated arrays from pointing to the same address. 2. Enhance compressedList initialization: Introduce...
### Problem When creating a `compressedList` using the `newCompressedList` function, the current implementation lacks the ability to specify the initial size of the list. This results in multiple memory allocations...
I need a bit of help following TestHLLTC_Merge_Complex in `hyperloglog_test.go`: Lines 374 and 384: why is ratio calculated against sk1? Lines 391 and 395: I tried inserting the 500000 records...
Allows public access to newSketch to allow for the creation of arbitrary precision sparse or non-sparse HLL graphs. Provides capabilities requested in https://github.com/axiomhq/hyperloglog/issues/32
The public constructors at present allow only 14 or 16 registers. ``` func New() *Sketch func New14() *Sketch func New16() *Sketch func New16NoSparse() *Sketch ``` The private constructor `newSketch` looks...
I found some logical errors in the `TestHLL_Merge_Complex`. My PR has fixed it. Please check it.