ncshaw [Thu, 3 Jun 2021 21:43:06 +0000 (17:43 -0400)]
Remove rebar
ncshaw [Mon, 24 May 2021 15:22:19 +0000 (11:22 -0400)]
Change random to rand
Nick Vatamaniuc [Tue, 21 Jan 2020 14:31:10 +0000 (09:31 -0500)]
Merge pull request #5 from apache/remove-triq-dependency
Remove runtime triq dependency
Nick Vatamaniuc [Mon, 20 Jan 2020 23:40:57 +0000 (18:40 -0500)]
Remove runtime triq dependency
This was the only place that was bringing in triq even for CouchDB's own tests,
we never added it to the main list of deps. Trying to switch to PropEr so
seeing if we can remove it and make a new release without it.
Joan Touzet [Wed, 18 Jul 2018 16:13:30 +0000 (12:13 -0400)]
Merge pull request #4 from apache/fix-windows-build
Fix hyper build for Windows
Joan Touzet [Wed, 18 Jul 2018 15:19:11 +0000 (11:19 -0400)]
Fix hyper build for win32
Nick Vatamaniuc [Thu, 31 May 2018 04:13:09 +0000 (00:13 -0400)]
Merge pull request #3 from apache/use-matching-tags-for-triq-deps
Use exactly matching tags for triq dependencies
Nick Vatamaniuc [Thu, 31 May 2018 04:05:23 +0000 (00:05 -0400)]
Use exactly matching tags for triq dependencies
Otherwise rebar thinks there is a conflict:
```
ERROR: Conflicting dependencies for triq: [{"From: hyper",
{[],
{git,
"https://github.com/apache/couchdb-triq",
{tag,"v1.2.0"}}}},
{"From: asf2",
{".*",
{git,
"https://github.com/apache/couchdb-triq.git",
{tag,"v1.2.0"}}}}]
```
Nick Vatamaniuc [Thu, 31 May 2018 03:18:20 +0000 (23:18 -0400)]
Merge pull request #2 from apache/fix-tests-to-run-with-triq
Fix tests to run with Triq
Adam Kocoloski [Thu, 31 May 2018 00:32:21 +0000 (20:32 -0400)]
Comment out broken Makefile target
Adam Kocoloski [Thu, 31 May 2018 00:31:29 +0000 (20:31 -0400)]
Disable failing test on R20
Nick Vatamaniuc [Wed, 30 May 2018 23:15:40 +0000 (19:15 -0400)]
Fix tests to run with Triq
Used CouchDB's Triq port
Had to uncomment a bunch of bisect module checks. That made the diff kind of
ugly.
Adam Kocoloski [Wed, 30 May 2018 21:52:04 +0000 (17:52 -0400)]
Merge pull request #1 from apache/remove-bisect
Remove bisect implementation
Adam Kocoloski [Wed, 30 May 2018 21:42:38 +0000 (17:42 -0400)]
Remove bisect implementation
We're not using this backend, and it requires R17 (we are still
supporting R16 as of this writing).
renjith-ga [Tue, 11 Oct 2016 09:39:13 +0000 (10:39 +0100)]
Merge pull request #16 from elverkilde/fix/carray
Fix/carray - Merging the pull request from @elverkilde as the permission has been given by all three contributors @elverkilde @chrisavl and @johannesh to change license to MIT
Jon Elverkilde [Tue, 11 Oct 2016 09:09:23 +0000 (11:09 +0200)]
Switch to MIT license for carray
Fred Dushin [Tue, 27 Sep 2016 18:03:53 +0000 (14:03 -0400)]
Removed use of tgmath.h for pow function (assuming C99 compiler)
Jon Elverkilde [Wed, 27 Jul 2016 14:38:41 +0000 (16:38 +0200)]
Merge pull request #14 from savonarola/fix-deprecated-time-functions
Updated usage of time functions
av [Wed, 27 Jul 2016 13:45:12 +0000 (16:45 +0300)]
Updated usage of time functions (removed usage of deprecated erlang:now())
Johannes Huning [Mon, 29 Jun 2015 10:41:23 +0000 (12:41 +0200)]
Merge pull request #11 from knutin/master
Pull in hyper:is_hyper/1 from Knut
Johannes Huning [Mon, 29 Jun 2015 10:38:39 +0000 (12:38 +0200)]
add note about `indent` to C source file
Johannes Huning [Mon, 29 Jun 2015 10:37:25 +0000 (12:37 +0200)]
add contributors to C source file
Chris de Vries [Mon, 29 Jun 2015 10:02:28 +0000 (12:02 +0200)]
Merge pull request #10 from GameAnalytics/fix_merge_leak
Release resource created for merge result
cmdevries [Mon, 29 Jun 2015 08:55:14 +0000 (10:55 +0200)]
Remove unnecessary enif_make_resource.
Jon Elverkilde [Sat, 27 Jun 2015 21:52:19 +0000 (23:52 +0200)]
Release resource created for merge result
Knut Nesheim [Thu, 28 May 2015 10:04:51 +0000 (12:04 +0200)]
Added hyper:is_hyper/1.
Johannes Huning [Tue, 28 Apr 2015 07:56:41 +0000 (09:56 +0200)]
Merge pull request #9 from GameAnalytics/remove_alloc
Remove unecessary alloc from hyper c array.
Johannes Huning [Tue, 28 Apr 2015 07:55:03 +0000 (09:55 +0200)]
run indent
cmdevries [Tue, 28 Apr 2015 07:46:04 +0000 (09:46 +0200)]
Remove unecessary alloc from hyper c array.
The last commit allocated an array for pointers to the hyper c array
structure. This is not necessary for improved performance. This change
still leaves the union time at 0.01 to 0.02 ms.
Johannes Huning [Mon, 27 Apr 2015 12:33:22 +0000 (14:33 +0200)]
Merge pull request #8 from GameAnalytics/faster_merge
Faster merging of hyper c arrays.
Chris de Vries [Mon, 27 Apr 2015 10:36:25 +0000 (12:36 +0200)]
Faster merging of hyper c arrays.
I tried implementing 3 different approaches to merging the arrays. This was by
far the fastest at (0.01ms to 0.02ms for the union benchmark). It seems
when the ternary operator is inside the inner loop compiler does something that
is fast such as an operation with no branching.
The other approaches were,
* processing a 64-bit integer at a time and unpacking the bytes (0.16ms)
* branching rather than a ternary operator for the max value which is
similar to the original code (0.10ms to 0.40ms)
Benchmark before,
module P card fill bytes insert us union ms card ms json ms
hyper_carray 15 1 0.00 32784 1.80 0.10 0.33 0.21
hyper_carray 15 100 0.00 32784 0.54 0.11 0.34 0.28
hyper_carray 15 500 0.02 32784 0.50 0.10 0.38 0.47
hyper_carray 15 1000 0.03 32784 0.51 0.11 0.38 0.74
hyper_carray 15 2500 0.07 32784 0.50 0.11 0.43 1.41
hyper_carray 15 5000 0.14 32784 0.51 0.12 0.51 2.38
hyper_carray 15 10000 0.26 32784 0.51 0.14 0.65 4.17
hyper_carray 15 15000 0.37 32784 0.51 0.16 0.82 5.32
hyper_carray 15 25000 0.53 32784 0.51 0.20 1.05 6.10
hyper_carray 15 50000 0.78 32784 0.51 0.26 1.31 5.77
hyper_carray 15 100000 0.95 32784 0.51 0.33 1.65 5.18
hyper_carray 15
1000000 1.00 32784 0.53 0.43 1.83 5.23
Benchmark after,
module P card fill bytes insert us union ms card ms json ms
hyper_carray 15 1 0.00 32784 2.30 0.02 0.32 0.22
hyper_carray 15 100 0.00 32784 0.53 0.02 0.33 0.22
hyper_carray 15 500 0.02 32784 0.51 0.02 0.35 0.43
hyper_carray 15 1000 0.03 32784 0.50 0.02 0.37 0.68
hyper_carray 15 2500 0.07 32784 0.51 0.02 0.42 1.34
hyper_carray 15 5000 0.14 32784 0.50 0.01 0.50 2.33
hyper_carray 15 10000 0.26 32784 0.52 0.01 0.65 4.10
hyper_carray 15 15000 0.37 32784 0.51 0.02 0.79 5.33
hyper_carray 15 25000 0.53 32784 0.51 0.02 1.01 6.11
hyper_carray 15 50000 0.78 32784 0.51 0.02 1.30 5.77
hyper_carray 15 100000 0.95 32784 0.51 0.02 1.63 5.23
hyper_carray 15
1000000 1.00 32784 0.53 0.02 1.82 5.32
Johannes Huning [Wed, 22 Apr 2015 08:28:33 +0000 (10:28 +0200)]
Merge pull request #7 from GameAnalytics/carray_tests
Test hyper_carray backend
Christian Lundgren [Mon, 20 Apr 2015 08:03:26 +0000 (10:03 +0200)]
Fix hyper_carray register encoding
Don't include anything else than the registers in the returned binary
Christian Lundgren [Mon, 20 Apr 2015 08:01:11 +0000 (10:01 +0200)]
Support single hll input for hyper_carray:union/1
This function still creates a new hll, could be optimized to simply return
it's input.
Christian Lundgren [Mon, 20 Apr 2015 08:00:28 +0000 (10:00 +0200)]
Include hyper_carray in performance report
Christian Lundgren [Mon, 20 Apr 2015 07:52:35 +0000 (09:52 +0200)]
Add hyper_carray to test suite
Knut Nesheim [Thu, 20 Nov 2014 10:17:47 +0000 (11:17 +0100)]
Fixed bug in merging of filters with the hyper_bisect backend.
Knut Nesheim [Thu, 20 Nov 2014 10:17:32 +0000 (11:17 +0100)]
Optimization to hyper_binary backend for sequential changes to the same index.
Knut Nesheim [Thu, 16 Oct 2014 14:35:50 +0000 (16:35 +0200)]
Merge pull request #6 from martinrehfeld/folding
Support mixed-precision union
Martin Rehfeld [Thu, 16 Oct 2014 14:28:59 +0000 (14:28 +0000)]
Demonstrate error rate of reduced-precision HLLs
Martin Rehfeld [Thu, 16 Oct 2014 11:38:54 +0000 (11:38 +0000)]
Support mixed-precision union
... for the hyper_binary default backend only, sorry ;-)
Christian Lundgren [Wed, 15 Oct 2014 07:58:09 +0000 (09:58 +0200)]
Merge pull request #5 from martinrehfeld/master
Add hyper:precision/1
Martin Rehfeld [Tue, 14 Oct 2014 14:26:07 +0000 (16:26 +0200)]
Add hyper:precision/1
Provide a getter for the precision of a HyperLogLog filter.
Knut Nesheim [Tue, 12 Aug 2014 09:25:08 +0000 (11:25 +0200)]
Merge pull request #4 from GameAnalytics/clang_compile
Make compile work with clang
Christian Lundgren [Mon, 11 Aug 2014 15:42:11 +0000 (17:42 +0200)]
Make compile work with clang
Knut Nesheim [Fri, 11 Jul 2014 15:25:24 +0000 (17:25 +0200)]
Merge pull request #3 from johannesh/hyper_carray
hyper_carray, a hyper_register implemented by a C-array
Johannes Huning [Tue, 11 Mar 2014 22:19:46 +0000 (23:19 +0100)]
[hyper_carray] K&R and kernel style, added docs
Johannes Huning [Mon, 10 Mar 2014 19:49:22 +0000 (20:49 +0100)]
hyper_carray, a hyper_register implemented by a C-array
Knut Nesheim [Fri, 7 Mar 2014 08:58:35 +0000 (09:58 +0100)]
Merge pull request #2 from johannesh/master
Typo in documentation of register_sum callback
Johannes [Thu, 6 Mar 2014 21:30:38 +0000 (22:30 +0100)]
Typo for @doc of register_sum callback
Knut Nesheim [Wed, 26 Feb 2014 16:54:13 +0000 (17:54 +0100)]
Added output from make perf_report.
Knut Nesheim [Fri, 24 Jan 2014 16:22:49 +0000 (17:22 +0100)]
Added the MIT license.
Knut Nesheim [Mon, 20 Jan 2014 15:01:46 +0000 (16:01 +0100)]
Cleanup of README.
Knut Nesheim [Mon, 20 Jan 2014 14:50:36 +0000 (15:50 +0100)]
Cleanup of estimate graphs.
Knut Nesheim [Mon, 20 Jan 2014 14:50:22 +0000 (15:50 +0100)]
Measure time of 5 unions.
Knut Nesheim [Mon, 20 Jan 2014 14:49:48 +0000 (15:49 +0100)]
Run parts of estimate report in parallel.
Knut Nesheim [Mon, 20 Jan 2014 14:49:18 +0000 (15:49 +0100)]
Don't force compaction before union to allow for more optimizations. Property of unions.
Knut Nesheim [Mon, 20 Jan 2014 08:46:22 +0000 (09:46 +0100)]
Clean up of README.
Knut Nesheim [Fri, 17 Jan 2014 17:02:47 +0000 (18:02 +0100)]
Roll v1.0
Knut Nesheim [Fri, 17 Jan 2014 16:59:01 +0000 (17:59 +0100)]
Cleaned up the estimate report.
Knut Nesheim [Fri, 17 Jan 2014 11:37:08 +0000 (12:37 +0100)]
Apply the same optimization to other merges.
Knut Nesheim [Fri, 17 Jan 2014 11:13:49 +0000 (12:13 +0100)]
Postpone actual merge if merging two buffers results in a small enough new buffer.
Knut Nesheim [Fri, 17 Jan 2014 11:13:16 +0000 (12:13 +0100)]
Disable native compilation of hyper_binary as it crashes when reloading.
Knut Nesheim [Fri, 17 Jan 2014 08:44:51 +0000 (09:44 +0100)]
Also merge buffers when merging dense binaries.
Knut Nesheim [Thu, 16 Jan 2014 19:46:59 +0000 (20:46 +0100)]
In hyper_binary, merge the buffers to allow for more efficient merges of small into big filters.
Knut Nesheim [Thu, 16 Jan 2014 17:44:01 +0000 (18:44 +0100)]
Run estimate report from Makefile.
Knut Nesheim [Thu, 16 Jan 2014 17:38:57 +0000 (18:38 +0100)]
Added more documentation to README.
Knut Nesheim [Thu, 16 Jan 2014 17:38:41 +0000 (18:38 +0100)]
Better tests.
Knut Nesheim [Thu, 16 Jan 2014 17:38:19 +0000 (18:38 +0100)]
Avoid useless conversion from list to tuple.
Knut Nesheim [Thu, 16 Jan 2014 17:37:17 +0000 (18:37 +0100)]
Updated behaviour and cleaned up backends.
Knut Nesheim [Thu, 16 Jan 2014 17:36:33 +0000 (18:36 +0100)]
More optimizations to hyper_binary. Use an explicit buffer to allow for fast inserts and fast unions for low fill rates.
Knut Nesheim [Tue, 14 Jan 2014 17:59:48 +0000 (18:59 +0100)]
Better quickcheck properties. Added first version of hyper_binary_rle backend.
Knut Nesheim [Mon, 13 Jan 2014 14:53:20 +0000 (15:53 +0100)]
Optimizations for buffering writes in hyper_binary.
Knut Nesheim [Mon, 13 Jan 2014 11:06:49 +0000 (12:06 +0100)]
Use (now bug-free) bisect:bulk_insert/2 for merging two bisects.
Knut Nesheim [Sat, 11 Jan 2014 04:28:57 +0000 (05:28 +0100)]
In case on extra 0 byte in old serialized filters, ignore it in hyper_bisect and hyper_binary.
Knut Nesheim [Fri, 10 Jan 2014 17:51:26 +0000 (18:51 +0100)]
Compact the binary structure when it makes sense.
Knut Nesheim [Fri, 10 Jan 2014 16:41:26 +0000 (17:41 +0100)]
Serialization tests.
Knut Nesheim [Fri, 10 Jan 2014 14:53:25 +0000 (15:53 +0100)]
Moved tests into separate folder. Added PropEr test of encoding. Moved more logic into backends to allow for more optimizations.
Knut Nesheim [Fri, 10 Jan 2014 10:38:35 +0000 (11:38 +0100)]
Moved more heavy lifting into the backend module to allow for more optimizations. Introduced hyper_binary, using a fixed size binary as an array.
Knut Nesheim [Thu, 9 Jan 2014 08:48:13 +0000 (09:48 +0100)]
Fixed incorrect merge.
Knut Nesheim [Thu, 9 Jan 2014 08:36:26 +0000 (09:36 +0100)]
Faster unions for bisect, repeated runs of timed tests.
Knut Nesheim [Wed, 8 Jan 2014 12:42:00 +0000 (13:42 +0100)]
More tests of backends.
Knut Nesheim [Wed, 8 Jan 2014 11:26:37 +0000 (12:26 +0100)]
Export from_json/2
Knut Nesheim [Wed, 8 Jan 2014 11:11:49 +0000 (12:11 +0100)]
Size in bytes.
Knut Nesheim [Wed, 8 Jan 2014 10:23:44 +0000 (11:23 +0100)]
Smarter union for dense and sparse bisect.
Knut Nesheim [Tue, 7 Jan 2014 18:33:35 +0000 (19:33 +0100)]
Measure card/1
Knut Nesheim [Tue, 7 Jan 2014 18:14:46 +0000 (19:14 +0100)]
Start of README.
Knut Nesheim [Tue, 7 Jan 2014 18:14:41 +0000 (19:14 +0100)]
Union test with bigger cardinality.
Knut Nesheim [Tue, 7 Jan 2014 17:59:36 +0000 (18:59 +0100)]
More cardinalities, use the same seed.
Knut Nesheim [Tue, 7 Jan 2014 17:45:22 +0000 (18:45 +0100)]
Switch to plain dense representation when it would use less memory.
Knut Nesheim [Tue, 7 Jan 2014 16:10:59 +0000 (17:10 +0100)]
Let backend decide on merge strategy.
Knut Nesheim [Tue, 7 Jan 2014 14:25:27 +0000 (15:25 +0100)]
perf report.
Knut Nesheim [Tue, 7 Jan 2014 14:25:12 +0000 (15:25 +0100)]
bisect backend.
Knut Nesheim [Tue, 7 Jan 2014 13:42:06 +0000 (14:42 +0100)]
make size_report
Knut Nesheim [Tue, 7 Jan 2014 13:41:52 +0000 (14:41 +0100)]
Array backend.
Knut Nesheim [Tue, 7 Jan 2014 13:03:32 +0000 (14:03 +0100)]
Pluggable register data structure.
Knut Nesheim [Tue, 7 Jan 2014 12:31:20 +0000 (13:31 +0100)]
Minor cleanup of tests.
Christian Lundgren [Mon, 9 Dec 2013 22:14:39 +0000 (23:14 +0100)]
Use tail recursive helper functions instead of lists:map + lists:seq
Knut Nesheim [Mon, 18 Nov 2013 10:53:22 +0000 (11:53 +0100)]
Registers using gb_trees.
Knut Nesheim [Fri, 15 Nov 2013 16:37:16 +0000 (17:37 +0100)]
Performance improvement to union: don't write back the same value.