Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
04d901ae
Commit
04d901ae
authored
May 19, 2014
by
Salvatore Sanfilippo
Browse files
Merge pull request #1762 from trink/unstable
Correct the HyperLogLog stale cache flag to prevent unnecessary computat...
parents
194b7805
ba52cd06
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/hyperloglog.c
View file @
04d901ae
...
@@ -188,8 +188,8 @@ struct hllhdr {
...
@@ -188,8 +188,8 @@ struct hllhdr {
};
};
/* The cached cardinality MSB is used to signal validity of the cached value. */
/* The cached cardinality MSB is used to signal validity of the cached value. */
#define HLL_INVALIDATE_CACHE(hdr) (hdr)->card[
0
] |= (1<<7)
#define HLL_INVALIDATE_CACHE(hdr) (hdr)->card[
7
] |= (1<<7)
#define HLL_VALID_CACHE(hdr) (((hdr)->card[
0
] & (1<<7)) == 0)
#define HLL_VALID_CACHE(hdr) (((hdr)->card[
7
] & (1<<7)) == 0)
#define HLL_P 14
/* The greater is P, the smaller the error. */
#define HLL_P 14
/* The greater is P, the smaller the error. */
#define HLL_REGISTERS (1<<HLL_P)
/* With P=14, 16384 registers. */
#define HLL_REGISTERS (1<<HLL_P)
/* With P=14, 16384 registers. */
...
@@ -953,7 +953,7 @@ double hllRawSum(uint8_t *registers, double *PE, int *ezp) {
...
@@ -953,7 +953,7 @@ double hllRawSum(uint8_t *registers, double *PE, int *ezp) {
return
E
;
return
E
;
}
}
/* Return the approximated cardinality of the set based on the armonic
/* Return the approximated cardinality of the set based on the
h
armonic
* mean of the registers values. 'hdr' points to the start of the SDS
* mean of the registers values. 'hdr' points to the start of the SDS
* representing the String object holding the HLL representation.
* representing the String object holding the HLL representation.
*
*
...
@@ -1385,7 +1385,7 @@ void pfselftestCommand(redisClient *c) {
...
@@ -1385,7 +1385,7 @@ void pfselftestCommand(redisClient *c) {
/* Test 2: approximation error.
/* Test 2: approximation error.
* The test adds unique elements and check that the estimated value
* The test adds unique elements and check that the estimated value
* is always reasonable bounds.
* is always reasonable bounds.
*
*
* We check that the error is smaller than 4 times than the expected
* We check that the error is smaller than 4 times than the expected
* standard error, to make it very unlikely for the test to fail because
* standard error, to make it very unlikely for the test to fail because
* of a "bad" run.
* of a "bad" run.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment