From daeb9d1a0610c105b025018da0da52720bdc0c20 Mon Sep 17 00:00:00 2001 From: Kane York Date: Wed, 23 Dec 2015 23:36:10 -0800 Subject: [PATCH] try gob.registername?? --- socketserver/cmd/mergecounts/mergecounts.go | 10 ++++++++-- socketserver/server/usercount.go | 7 ++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/socketserver/cmd/mergecounts/mergecounts.go b/socketserver/cmd/mergecounts/mergecounts.go index cb503c08..2a63a893 100644 --- a/socketserver/cmd/mergecounts/mergecounts.go +++ b/socketserver/cmd/mergecounts/mergecounts.go @@ -8,6 +8,7 @@ import ( "net/http" "encoding/gob" "os" + "github.com/satori/go.uuid" ) var SERVERS = []string{ @@ -37,6 +38,7 @@ func main() { os.Exit(2) return } + gob.RegisterName("hyperloglog", hyperloglog.HyperLogLogPlus{}) filename := flag.Arg(1) hll, err := DownloadAll(filename) @@ -70,9 +72,13 @@ func DownloadHLL(url string) (*hyperloglog.HyperLogLogPlus, error) { if err != nil { return nil, err } + defer resp.Body.Close() dec := gob.NewDecoder(resp.Body) - dec.Decode(result) - resp.Body.Close() + err = dec.Decode(result) + if err != nil { + return nil, err + } + fmt.Println(url, result.Count()) return result, nil } diff --git a/socketserver/server/usercount.go b/socketserver/server/usercount.go index ef9522c9..fbacab95 100644 --- a/socketserver/server/usercount.go +++ b/socketserver/server/usercount.go @@ -17,9 +17,9 @@ import ( ) // uuidHash implements a hash for uuid.UUID by XORing the random bits. -type uuidHash uuid.UUID +type UuidHash uuid.UUID -func (u uuidHash) Sum64() uint64 { +func (u UuidHash) Sum64() uint64 { var valLow, valHigh uint64 valLow = binary.LittleEndian.Uint64(u[0:8]) valHigh = binary.LittleEndian.Uint64(u[8:16]) @@ -173,6 +173,7 @@ func HTTPWriteHLL(w http.ResponseWriter, r *http.Request) { // loadUniqueUsers loads the previous HLLs into memory. // is_init_func func loadUniqueUsers() { + gob.RegisterName("hyperloglog", hyperloglog.HyperLogLogPlus{}) err := os.MkdirAll(uniqCountDir, 0755) if err != nil { log.Panicln("could not make unique users data dir:", err) @@ -217,7 +218,7 @@ func processNewUsers() { for { select { case u := <-uniqueUserChannel: - hashed := uuidHash(u) + hashed := UuidHash(u) for _, period := range periods { uniqueCounters[period].Counter.Add(hashed) }