From e887c62e451e94dfb096a31f95888615cd2d7291 Mon Sep 17 00:00:00 2001 From: antirez Date: Mon, 31 Mar 2014 19:16:47 +0200 Subject: [PATCH] HyperLogLog: make API use the P prefix in honor of Philippe Flajolet. --- src/hyperloglog.c | 14 +++++++------- src/redis.c | 8 ++++---- src/redis.h | 8 ++++---- utils/hyperloglog/hll-err.rb | 4 ++-- utils/hyperloglog/hll-gnuplot-graph.rb | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/hyperloglog.c b/src/hyperloglog.c index f62a05d1d..3fbca201d 100644 --- a/src/hyperloglog.c +++ b/src/hyperloglog.c @@ -435,8 +435,8 @@ uint64_t hllCount(uint8_t *registers) { /* ========================== HyperLogLog commands ========================== */ -/* HLLADD var ele ele ele ... ele => :0 or :1 */ -void hllAddCommand(redisClient *c) { +/* PADD var ele ele ele ... ele => :0 or :1 */ +void paddCommand(redisClient *c) { robj *o = lookupKeyWrite(c->db,c->argv[1]); uint8_t *registers; int updated = 0, j; @@ -482,8 +482,8 @@ void hllAddCommand(redisClient *c) { addReply(c, updated ? shared.cone : shared.czero); } -/* HLLCOUNT var -> approximated cardinality of set. */ -void hllCountCommand(redisClient *c) { +/* PCOUNT var -> approximated cardinality of set. */ +void pcountCommand(redisClient *c) { robj *o = lookupKeyRead(c->db,c->argv[1]); uint8_t *registers; uint64_t card; @@ -540,8 +540,8 @@ void hllCountCommand(redisClient *c) { } } -/* HLLMERGE dest src1 src2 src3 ... srcN => OK */ -void hllMergeCommand(redisClient *c) { +/* PMERGE dest src1 src2 src3 ... srcN => OK */ +void pmergeCommand(redisClient *c) { uint8_t max[REDIS_HLL_REGISTERS]; uint8_t *registers; int j, i; @@ -614,7 +614,7 @@ void hllMergeCommand(redisClient *c) { * the correct value to be retained and not affect adjacent values. */ #define REDIS_HLL_TEST_CYCLES 1000 -void hllSelftestCommand(redisClient *c) { +void pselftestCommand(redisClient *c) { int j, i; sds bitcounters = sdsnewlen(NULL,REDIS_HLL_SIZE); uint8_t bytecounters[REDIS_HLL_REGISTERS]; diff --git a/src/redis.c b/src/redis.c index e248e5df9..dbcf561fe 100644 --- a/src/redis.c +++ b/src/redis.c @@ -268,10 +268,10 @@ struct redisCommand redisCommandTable[] = { {"bitcount",bitcountCommand,-2,"r",0,NULL,1,1,1,0,0}, {"bitpos",bitposCommand,-3,"r",0,NULL,1,1,1,0,0}, {"wait",waitCommand,3,"rs",0,NULL,0,0,0,0,0}, - {"hllselftest",hllSelftestCommand,1,"r",0,NULL,0,0,0,0,0}, - {"hlladd",hllAddCommand,-2,"wm",0,NULL,1,1,1,0,0}, - {"hllcount",hllCountCommand,2,"w",0,NULL,1,1,1,0,0}, - {"hllmerge",hllMergeCommand,-2,"wm",0,NULL,1,-1,1,0,0} + {"pselftest",pselftestCommand,1,"r",0,NULL,0,0,0,0,0}, + {"padd",paddCommand,-2,"wm",0,NULL,1,1,1,0,0}, + {"pcount",pcountCommand,2,"w",0,NULL,1,1,1,0,0}, + {"pmerge",pmergeCommand,-2,"wm",0,NULL,1,-1,1,0,0} }; struct evictionPoolEntry *evictionPoolAlloc(void); diff --git a/src/redis.h b/src/redis.h index b091ff3d6..b7857dfa8 100644 --- a/src/redis.h +++ b/src/redis.h @@ -1448,10 +1448,10 @@ void bitcountCommand(redisClient *c); void bitposCommand(redisClient *c); void replconfCommand(redisClient *c); void waitCommand(redisClient *c); -void hllSelftestCommand(redisClient *c); -void hllAddCommand(redisClient *c); -void hllCountCommand(redisClient *c); -void hllMergeCommand(redisClient *c); +void pselftestCommand(redisClient *c); +void paddCommand(redisClient *c); +void pcountCommand(redisClient *c); +void pmergeCommand(redisClient *c); #if defined(__GNUC__) void *calloc(size_t count, size_t size) __attribute__ ((deprecated)); diff --git a/utils/hyperloglog/hll-err.rb b/utils/hyperloglog/hll-err.rb index c40cfc7c3..8481844bc 100644 --- a/utils/hyperloglog/hll-err.rb +++ b/utils/hyperloglog/hll-err.rb @@ -18,9 +18,9 @@ while true do elements << ele i += 1 } - r.hlladd('hll',*elements) + r.padd('hll',*elements) } - approx = r.hllcount('hll') + approx = r.pcount('hll') abs_err = (approx-i).abs rel_err = 100.to_f*abs_err/i puts "#{i} vs #{approx}: #{rel_err}%" diff --git a/utils/hyperloglog/hll-gnuplot-graph.rb b/utils/hyperloglog/hll-gnuplot-graph.rb index 20d7b35aa..41e7f717a 100644 --- a/utils/hyperloglog/hll-gnuplot-graph.rb +++ b/utils/hyperloglog/hll-gnuplot-graph.rb @@ -30,9 +30,9 @@ def run_experiment(r,seed,max,step) elements << ele i += 1 } - r.hlladd('hll',*elements) + r.padd('hll',*elements) } - approx = r.hllcount('hll') + approx = r.pcount('hll') err = approx-i rel_err = 100.to_f*err/i samples << [i,rel_err]