From fd0fb61cda39e0b5a87e298c451bf4fd69b3004c Mon Sep 17 00:00:00 2001 From: Gabriel Diaz Date: Mon, 4 Mar 2019 14:39:32 +0100 Subject: [PATCH 01/19] Fix: use Debug instead of info when printing messages bound to very common activities --- gossip/delegate.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gossip/delegate.go b/gossip/delegate.go index 00d0fcd94..f6f517764 100644 --- a/gossip/delegate.go +++ b/gossip/delegate.go @@ -87,7 +87,7 @@ func (d *agentDelegate) NotifyMsg(msg []byte) { return } - log.Infof("Notifying batch %+v\n", batchId(&batch)) + log.Debugf("Notifying batch %+v\n", batchId(&batch)) d.agent.In <- &batch } From 8e0c5e52f576e326c44e14d6c6067e405bce8765 Mon Sep 17 00:00:00 2001 From: Gabriel Diaz Date: Mon, 4 Mar 2019 14:41:30 +0100 Subject: [PATCH 02/19] Fix: dot not use 0.0.0.0 ad listen address by default. Use 127.0.0.1 --- gossip/agent_test.go | 4 ++-- gossip/config.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gossip/agent_test.go b/gossip/agent_test.go index a4d4ac4b2..41cffddf2 100644 --- a/gossip/agent_test.go +++ b/gossip/agent_test.go @@ -69,7 +69,7 @@ func TestLeave(t *testing.T) { conf := DefaultConfig() conf.NodeName = "testNode" conf.Role = member.Auditor - conf.BindAddr = "0.0.0.0:12346" + conf.BindAddr = "127.0.0.1:12346" a, _ := NewAgent(conf, []Processor{FakeProcessor{}}) testCases := []struct { @@ -117,7 +117,7 @@ func TestShutdown(t *testing.T) { conf := DefaultConfig() conf.NodeName = "testNode" conf.Role = member.Auditor - conf.BindAddr = "0.0.0.0:12347" + conf.BindAddr = "127.0.0.1:12347" a, _ := NewAgent(conf, []Processor{FakeProcessor{}}) testCases := []struct { diff --git a/gossip/config.go b/gossip/config.go index b02484604..fceecfb3b 100644 --- a/gossip/config.go +++ b/gossip/config.go @@ -29,7 +29,7 @@ const DefaultBindPort int = 7946 // DefaultConfig contains the defaults for configurations. func DefaultConfig() *Config { return &Config{ - BindAddr: "0.0.0.0:12345", + BindAddr: "127.0.0.1:12345", AdvertiseAddr: "", LeaveOnTerm: true, EnableCompression: false, From 7159599df70fed5f0ce3f6391dc903ad84b5fd08 Mon Sep 17 00:00:00 2001 From: Gabriel Diaz Date: Mon, 4 Mar 2019 18:39:24 +0100 Subject: [PATCH 03/19] refactor: agents to use the same task interface, increase channel size in main agent --- gossip/agent.go | 4 +- gossip/monitor/monitor.go | 53 ++++++++++++++----------- gossip/publisher/publisher.go | 46 +++++++++++++--------- gossip/queue.go | 73 +++++++++++++++++++++++++++++++++++ 4 files changed, 132 insertions(+), 44 deletions(-) create mode 100644 gossip/queue.go diff --git a/gossip/agent.go b/gossip/agent.go index a63038d6e..c547a8f7b 100644 --- a/gossip/agent.go +++ b/gossip/agent.go @@ -51,8 +51,8 @@ func NewAgent(conf *Config, p []Processor) (agent *Agent, err error) { config: conf, Topology: NewTopology(), processors: p, - In: make(chan *protocol.BatchSnapshots, 1000), - Out: make(chan *protocol.BatchSnapshots, 1000), + In: make(chan *protocol.BatchSnapshots, 1<<16), + Out: make(chan *protocol.BatchSnapshots, 1<<16), quit: make(chan bool), } diff --git a/gossip/monitor/monitor.go b/gossip/monitor/monitor.go index 9c502abbf..95aa62601 100644 --- a/gossip/monitor/monitor.go +++ b/gossip/monitor/monitor.go @@ -59,7 +59,7 @@ type Monitor struct { metricsServer *http.Server prometheusRegistry *prometheus.Registry - taskCh chan QueryTask + taskCh chan Task quitCh chan bool executionTicker *time.Ticker } @@ -75,7 +75,7 @@ func NewMonitor(conf Config) (*Monitor, error) { Insecure: false, }), conf: conf, - taskCh: make(chan QueryTask, 100), + taskCh: make(chan Task, 100), quitCh: make(chan bool), } @@ -103,9 +103,8 @@ func NewMonitor(conf Config) (*Monitor, error) { return &monitor, nil } -type QueryTask struct { - Start, End uint64 - StartSnapshot, EndSnapshot protocol.Snapshot +type Task interface { + Do() } func (m Monitor) Process(b protocol.BatchSnapshots) { @@ -120,6 +119,8 @@ func (m Monitor) Process(b protocol.BatchSnapshots) { log.Debugf("Processing batch from versions %d to %d", first.Version, last.Version) task := QueryTask{ + client: m.client, + pubUrl: m.conf.PubUrls[0], Start: first.Version, End: last.Version, StartSnapshot: *first, @@ -147,7 +148,8 @@ func (m *Monitor) Shutdown() { metrics.QedMonitorInstancesCount.Dec() log.Debugf("Metrics enabled: stopping server...") - if err := m.metricsServer.Shutdown(context.Background()); err != nil { // TODO include timeout instead nil + // TODO include timeout instead nil + if err := m.metricsServer.Shutdown(context.Background()); err != nil { log.Error(err) } log.Debugf("Done.\n") @@ -160,7 +162,7 @@ func (m *Monitor) Shutdown() { func (m Monitor) dispatchTasks() { count := 0 - var task QueryTask + var task Task var ok bool defer log.Debugf("%d tasks dispatched", count) for { @@ -169,7 +171,7 @@ func (m Monitor) dispatchTasks() { if !ok { return } - go m.executeTask(task) + go task.Do() count++ default: return @@ -180,11 +182,19 @@ func (m Monitor) dispatchTasks() { } } -func (m Monitor) sendAlert(msg string) { - resp, err := http.Post(fmt.Sprintf("%s/alert", m.conf.PubUrls[0]), "application/json", - bytes.NewBufferString(msg)) +type QueryTask struct { + client *client.HTTPClient + pubUrl string + taskCh chan Task + Start, End uint64 + StartSnapshot, EndSnapshot protocol.Snapshot +} + +func (q QueryTask) sendAlert(msg string) { + resp, err := http.Post(fmt.Sprintf("%s/alert", q.pubUrl), "application/json", bytes.NewBufferString(msg)) if err != nil { - log.Infof("Error saving batch in alertStore: %v", err) + log.Infof("Error saving batch in alertStore (task re-enqueued): %v", err) + q.taskCh <- q return } defer resp.Body.Close() @@ -194,21 +204,18 @@ func (m Monitor) sendAlert(msg string) { } } -func (m Monitor) executeTask(task QueryTask) { - log.Debug("Executing task: %+v", task) - resp, err := m.client.Incremental(task.Start, task.End) +func (q QueryTask) Do() { + log.Debug("Executing task: %+v", q) + resp, err := q.client.Incremental(q.Start, q.End) if err != nil { - // TODO: retry metrics.QedMonitorGetIncrementalProofErrTotal.Inc() - log.Infof("Unable to get incremental proof from QED server: %s", err.Error()) + log.Infof("Unable to verify incremental proof from %d to %d", q.Start, q.End) return } - ok := m.client.VerifyIncremental(resp, &task.StartSnapshot, &task.EndSnapshot, hashing.NewSha256Hasher()) + ok := q.client.VerifyIncremental(resp, &q.StartSnapshot, &q.EndSnapshot, hashing.NewSha256Hasher()) if !ok { - m.sendAlert(fmt.Sprintf("Unable to verify incremental proof from %d to %d", - task.StartSnapshot.Version, task.EndSnapshot.Version)) - log.Infof("Unable to verify incremental proof from %d to %d", - task.StartSnapshot.Version, task.EndSnapshot.Version) + q.sendAlert(fmt.Sprintf("Unable to verify incremental proof from %d to %d", q.StartSnapshot.Version, q.EndSnapshot.Version)) + log.Infof("Unable to verify incremental proof from %d to %d", q.StartSnapshot.Version, q.EndSnapshot.Version) } - log.Debugf("Consistency between versions %d and %d: %v\n", task.Start, task.End, ok) + log.Debugf("Consistency between versions %d and %d: %v\n", q.Start, q.End, ok) } diff --git a/gossip/publisher/publisher.go b/gossip/publisher/publisher.go index f9f9e11a3..3e13845ba 100644 --- a/gossip/publisher/publisher.go +++ b/gossip/publisher/publisher.go @@ -19,7 +19,6 @@ package publisher import ( "bytes" "context" - "fmt" "io" "io/ioutil" "net/http" @@ -30,7 +29,6 @@ import ( "github.com/bbva/qed/gossip/metrics" "github.com/bbva/qed/log" "github.com/bbva/qed/protocol" - "github.com/valyala/fasthttp" "github.com/prometheus/client_golang/prometheus" ) @@ -56,13 +54,13 @@ func NewConfig(PubUrls []string) *Config { } type Publisher struct { - client *fasthttp.Client - conf Config + store *http.Client + conf Config metricsServer *http.Server prometheusRegistry *prometheus.Registry - taskCh chan PublishTask + taskCh chan Task quitCh chan bool executionTicker *time.Ticker } @@ -70,9 +68,9 @@ type Publisher struct { func NewPublisher(conf Config) (*Publisher, error) { metrics.QedPublisherInstancesCount.Inc() publisher := Publisher{ - client: &fasthttp.Client{}, + store: &http.Client{}, conf: conf, - taskCh: make(chan PublishTask, 100), + taskCh: make(chan Task, 100), quitCh: make(chan bool), } @@ -100,10 +98,6 @@ func NewPublisher(conf Config) (*Publisher, error) { return &publisher, nil } -type PublishTask struct { - Batch protocol.BatchSnapshots -} - func (p *Publisher) Process(b protocol.BatchSnapshots) { // Metrics metrics.QedPublisherBatchesReceivedTotal.Inc() @@ -111,7 +105,10 @@ func (p *Publisher) Process(b protocol.BatchSnapshots) { defer timer.ObserveDuration() task := &PublishTask{ - Batch: b, + store: p.store, + pubUrl: p.conf.PubUrls[0], + taskCh: p.taskCh, + batch: b, } p.taskCh <- *task } @@ -147,12 +144,12 @@ func (p *Publisher) Shutdown() { func (p Publisher) dispatchTasks() { count := 0 - var task PublishTask + var task Task defer log.Debugf("%d tasks dispatched", count) for { select { case task = <-p.taskCh: - go p.executeTask(task) + go task.Do() count++ default: return @@ -163,17 +160,28 @@ func (p Publisher) dispatchTasks() { } } -func (p Publisher) executeTask(task PublishTask) { - log.Debugf("Executing task: %+v", task) - buf, err := task.Batch.Encode() +type Task interface { + Do() +} + +type PublishTask struct { + store *http.Client + pubUrl string + batch protocol.BatchSnapshots + taskCh chan Task +} + +func (t PublishTask) Do() { + log.Debugf("Executing task: %+v", t) + buf, err := t.batch.Encode() if err != nil { log.Debug("Publisher: Error marshalling: %s\n", err.Error()) return } - resp, err := http.Post(fmt.Sprintf("%s/batch", p.conf.PubUrls[0]), - "application/json", bytes.NewBuffer(buf)) + resp, err := t.store.Post(t.pubUrl+"/batch", "application/json", bytes.NewBuffer(buf)) if err != nil { log.Infof("Error saving batch in snapStore: %v\n", err) + t.taskCh <- t return } defer resp.Body.Close() diff --git a/gossip/queue.go b/gossip/queue.go new file mode 100644 index 000000000..2f90f7070 --- /dev/null +++ b/gossip/queue.go @@ -0,0 +1,73 @@ +/* + Copyright 2018 Banco Bilbao Vizcaya Argentaria, S.A. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +package gossip + +import ( + "runtime" + "sync/atomic" + + "github.com/bbva/qed/protocol" +) + +const queueSize uint64 = 65535 + +// Masking is faster than division +const indexMask uint64 = queueSize - 1 + +type Queue struct { + // The padding members 1 to 5 below are here to ensure each item is on a separate cache line. + // This prevents false sharing and hence improves performance. + padding1 [8]uint64 + lastCommittedIndex uint64 + padding2 [8]uint64 + nextFreeIndex uint64 + padding3 [8]uint64 + readerIndex uint64 + padding4 [8]uint64 + contents [queueSize]*protocol.BatchSnapshots + padding5 [8]uint64 +} + +func NewQueue() *Queue { + return &Queue{ + lastCommittedIndex: 0, + nextFreeIndex: 1, + readerIndex: 1, + } +} + +func (self *Queue) Write(value *protocol.BatchSnapshots) { + var myIndex = atomic.AddUint64(&self.nextFreeIndex, 1) - 1 + //Wait for reader to catch up, so we don't clobber a slot which it is (or will be) reading + for myIndex > (self.readerIndex + queueSize - 2) { + runtime.Gosched() + } + //Write the item into it's slot + self.contents[myIndex&indexMask] = value + //Increment the lastCommittedIndex so the item is available for reading + for !atomic.CompareAndSwapUint64(&self.lastCommittedIndex, myIndex-1, myIndex) { + runtime.Gosched() + } +} + +func (self *Queue) Read() *protocol.BatchSnapshots { + var myIndex = atomic.AddUint64(&self.readerIndex, 1) - 1 + //If reader has out-run writer, wait for a value to be committed + for myIndex > self.lastCommittedIndex { + runtime.Gosched() + } + return self.contents[myIndex&indexMask] +} From d665abdf46e4d6af59fab33e71c0dc4eb84dc0d7 Mon Sep 17 00:00:00 2001 From: Gabriel Diaz Date: Wed, 6 Mar 2019 12:24:14 +0100 Subject: [PATCH 04/19] wip: agents clean up --- tests/qedmanager | 92 ++++++++++++++++++++++++++++++++++++++++++++++ tests/riot.go | 61 ++++-------------------------- tests/riot/main.go | 51 ------------------------- 3 files changed, 99 insertions(+), 105 deletions(-) create mode 100644 tests/qedmanager diff --git a/tests/qedmanager b/tests/qedmanager new file mode 100644 index 000000000..08fb15659 --- /dev/null +++ b/tests/qedmanager @@ -0,0 +1,92 @@ +#!/usr/bin/env bash + +# Copyright 2018 Banco Bilbao Vizcaya Argentaria, S.A. + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +certs="$HOME/.ssh" +qed="go run $GOPATH/src/github.com/bbva/qed/main.go" +service="go run $GOPATH/src/github.com/bbva/qed/tests/gossip/test_service.go" + + +apikey() { echo "--apikey test_key"; } +nodeId() { echo "--node-id ${FUNCNAME[1]}_$1";} +path() { echo "--path $1";} +log() { echo "--log $1";} +keyPath() { echo "--keypath $certs/id_ed25519"; } +httpAddr() { echo "--http-addr 127.0.0.1:88`printf '%02d' $1`"; } +mgmtAddr() { echo "--mgmt-addr 127.0.0.1:87`printf '%02d' $1`"; } +metricsAddr() { echo "--metris-addr 127.0.0.1:86`printf '%02d' $1`";} +raftAddr() { echo "--raft-addr 127.0.0.1:85`printf '%02d' $1`"; } +gossipAddr() { echo "--gossip-addr 127.0.0.1:84`printf '%02d' $1`"; } +joinAddr() { echo "--join-addr 127.0.0.1:8700"; } +gossipJoinAddr() { echo "--gossip-join-addr 127.0.0.1:8400"; } +profiling() { echo "--profiling"; } +cert() { echo "--certificate $certs/server.crt"; } +certKey() { echo "--certificate-key $certs/server.key"; } +tempDir() { mktemp -d -p "/var/tmp"; } + +bindAddr() { echo "--bind 127.0.0.1:8`printf '%d%02d' $1 $2`"; } +alertsUrls() { echo "--alertsUrls http://127.0.0.1:8888"; } +qedUrls() { echo "--qedUrls http://127.0.0.1:8800"; } +pubUrls() { echo "--pubUrl http://127.0.0.1:8888"; } + +qedLeader() { + dir=`tempDir` + echo $qed `apikey` `path $dir` `nodeId 0` `keyPath` `gossipAddr 0` `log error` `cert` `certKey` `profiling` +} + +qedFollower() { + dir=`tempDir` + echo $qed `apikey` `path $dir` `nodeId $1` `keyPath` `gossipAddr $1` `log error` `cert` `certKey` `httpAddr $1` `mgmtAddr $1` `metricsAddr $1` `raftAddr $1` `gossipAddr $1` `joinAddr` `gossipJoinAddr` `cert` `certKey``profiling` +} + + +agent() { + type=$1; shift; + portIndex=$1; shift + id=$1; shift; + echo $qed agent `alertsUrls` $type `apiKey` `log error` `bindAddr $portIndex $id``gossipJoinAddr` `quedUrls` `pubUrls` `nodeId $id` +} + +auditor() { + agent auditor 1 $1 +} + +monitor() { + agent monitor 2 $1 +} + +publisher() { + agent publisher 3 $1 +} + +service() { + echo $service +} + +run() { + name=$1; shift; + cmd=$1; shift; + dir=$1; shift; + $cmd 2>&1 > $dir/$name.log & + echo $! +} + +x=$1; shift +qedCluster=$1; shift; +monitors=$1; shift; +auditors=$1; shift; +publisers=$1; shift; + + diff --git a/tests/riot.go b/tests/riot.go index 6caad362d..11be22dd8 100644 --- a/tests/riot.go +++ b/tests/riot.go @@ -34,19 +34,17 @@ import ( "sync" "time" - chart "github.com/wcharczuk/go-chart" - "github.com/bbva/qed/protocol" ) var ( - endpoint string - apiKey string - wantAdd bool - wantIncremental bool - wantMembership bool - offload bool - charts bool + endpoint string + apiKey string + wantAdd bool + wantIncremental bool + wantMembership bool + offload bool + profiling bool incrementalDelta int offset int @@ -71,7 +69,6 @@ func init() { flag.BoolVar(&wantIncremental, "incremental", false, "Execute Incremental benchmark") flag.BoolVar(&offload, "offload", false, "Perform reads only on %50 of the cluster size (With cluster size 2 reads will be performed only on follower1)") - flag.BoolVar(&charts, "charts", false, "Create charts while executing the benchmarks. Output: graph-$testname.png") flag.BoolVar(&profiling, "profiling", false, "Enable Go profiling with pprof tool. $ go tool pprof -http : http://localhost:6061 ") usageDelta := "Specify delta for the IncrementalProof" @@ -248,46 +245,6 @@ type axis struct { x, y []float64 } -func drawChart(m string, a *axis) { - graph := chart.Chart{ - XAxis: chart.XAxis{ - Name: "Time", - NameStyle: chart.StyleShow(), - Style: chart.StyleShow(), - }, - YAxis: chart.YAxis{ - Name: "Reqests", - NameStyle: chart.StyleShow(), - Style: chart.StyleShow(), - }, - Series: []chart.Series{ - chart.ContinuousSeries{ - Style: chart.Style{ - Show: true, - StrokeColor: chart.GetDefaultColor(0).WithAlpha(64), - FillColor: chart.GetDefaultColor(0).WithAlpha(64), - }, - - XValues: a.x, - YValues: a.y, - }, - }, - } - - req := fmt.Sprint(numRequests) - file, _ := os.Create("results/graph-" + m + "-" + req + ".png") - defer file.Close() - _ = graph.Render(chart.PNG, file) - -} - -func chartsData(a *axis, elapsed, reqs float64) *axis { - a.x = append(a.x, elapsed) - a.y = append(a.y, reqs) - - return a -} - func summary(message string, numRequestsf, elapsed float64, c *Config) { fmt.Printf( @@ -332,10 +289,6 @@ func stats(c *Config, t Task, message string) { case t := <-ticker.C: _ = t elapsed := time.Now().Sub(start).Seconds() - if charts { - os.Mkdir("results", 0755) - go drawChart(message, chartsData(graph, elapsed, c.counter/elapsed)) - } summaryPerDuration(message, numRequestsf, elapsed, c) } } diff --git a/tests/riot/main.go b/tests/riot/main.go index f3b595c25..70e635f78 100644 --- a/tests/riot/main.go +++ b/tests/riot/main.go @@ -26,7 +26,6 @@ import ( "github.com/imdario/mergo" "github.com/spf13/cobra" "github.com/spf13/viper" - chart "github.com/wcharczuk/go-chart" "github.com/bbva/qed/client" "github.com/bbva/qed/log" @@ -45,7 +44,6 @@ type Config struct { // stress conf Offload bool - Charts bool Profiling bool IncrementalDelta uint Offset uint @@ -112,7 +110,6 @@ func newRiotCommand() *cobra.Command { f.BoolVarP(&config.Membership, "membership", "m", false, "Benchmark MembershipProof") f.BoolVar(&config.Incremental, "incremental", false, "Execute Incremental benchmark") f.BoolVar(&config.Offload, "offload", false, "Perform reads only on %50 of the cluster size (With cluster size 2 reads will be performed only on follower1)") - f.BoolVar(&config.Charts, "charts", false, "Create charts while executing the benchmarks. Output: graph-$testname.png") f.BoolVar(&config.Profiling, "profiling", false, "Enable Go profiling with pprof tool. $ go tool pprof -http : http://localhost:6061 ") f.UintVarP(&config.IncrementalDelta, "delta", "d", 1000, "Specify delta for the IncrementalProof") f.UintVar(&config.NumRequests, "n", 10e4, "Number of requests for the attack") @@ -323,32 +320,16 @@ func (a *Attack) CreateFanOut() { } } -func chartsData(a *axis, elapsed, reqs float64) *axis { - a.x = append(a.x, elapsed) - a.y = append(a.y, reqs) - - return a -} - func setupMetrics(conf Config) { graph := &axis{} ticker := time.NewTicker(1 * time.Second) start := time.Now() defer ticker.Stop() - if conf.Charts { - if err := os.Mkdir("results", 0755); err != nil { - log.Error("Unable to create `results` folder") - } - } - go func() { for { <-ticker.C elapsed := time.Since(start).Seconds() - if conf.Charts { - go drawChart(conf, chartsData(graph, elapsed, conf.counter/elapsed)) - } summaryPerDuration(conf, elapsed) } }() @@ -368,35 +349,3 @@ func summaryPerDuration(conf Config, elapsed float64) { type axis struct { x, y []float64 } - -func drawChart(conf Config, a *axis) { - graph := chart.Chart{ - XAxis: chart.XAxis{ - Name: "Time", - NameStyle: chart.StyleShow(), - Style: chart.StyleShow(), - }, - YAxis: chart.YAxis{ - Name: "Reqests", - NameStyle: chart.StyleShow(), - Style: chart.StyleShow(), - }, - Series: []chart.Series{ - chart.ContinuousSeries{ - Style: chart.Style{ - Show: true, - StrokeColor: chart.GetDefaultColor(0).WithAlpha(64), - FillColor: chart.GetDefaultColor(0).WithAlpha(64), - }, - - XValues: a.x, - YValues: a.y, - }, - }, - } - - req := fmt.Sprint(conf.NumRequests) - file, _ := os.Create("results/graph-" + req + ".png") - defer file.Close() - _ = graph.Render(chart.PNG, file) -} From 43e36dbe6af65ee2979f8380b3e011028573b74b Mon Sep 17 00:00:00 2001 From: Gabriel Diaz Date: Wed, 6 Mar 2019 13:07:58 +0100 Subject: [PATCH 05/19] remove fastcache --- balloon/cache/fast.go | 74 -------------------------------------- balloon/cache/fast_test.go | 71 ------------------------------------ 2 files changed, 145 deletions(-) delete mode 100644 balloon/cache/fast.go delete mode 100644 balloon/cache/fast_test.go diff --git a/balloon/cache/fast.go b/balloon/cache/fast.go deleted file mode 100644 index 2e10fdbad..000000000 --- a/balloon/cache/fast.go +++ /dev/null @@ -1,74 +0,0 @@ -/* - Copyright 2018 Banco Bilbao Vizcaya Argentaria, S.A. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -package cache - -import ( - "github.com/VictoriaMetrics/fastcache" - "github.com/bbva/qed/storage" -) - -type FastCache struct { - cached *fastcache.Cache -} - -func NewFastCache(maxBytes int64) *FastCache { - cache := fastcache.New(int(maxBytes)) - return &FastCache{cached: cache} -} - -func (c FastCache) Get(key []byte) ([]byte, bool) { - value := c.cached.Get(nil, key) - if value == nil { - return nil, false - } - return value, true -} - -func (c *FastCache) Put(key []byte, value []byte) { - c.cached.Set(key, value) -} - -func (c *FastCache) Fill(r storage.KVPairReader) (err error) { - defer r.Close() - for { - entries := make([]*storage.KVPair, 100) - n, err := r.Read(entries) - if err != nil || n == 0 { - break - } - for _, entry := range entries { - if entry != nil { - c.cached.Set(entry.Key, entry.Value) - } - } - } - return nil -} - -func (c FastCache) Size() int { - var s fastcache.Stats - c.cached.UpdateStats(&s) - return int(s.EntriesCount) -} - -func (c FastCache) Equal(o *FastCache) bool { - // can only check size and entries count - var stats, oStats fastcache.Stats - c.cached.UpdateStats(&stats) - o.cached.UpdateStats(&oStats) - return stats.BytesSize == oStats.BytesSize && stats.EntriesCount == oStats.EntriesCount -} diff --git a/balloon/cache/fast_test.go b/balloon/cache/fast_test.go deleted file mode 100644 index 0710698ec..000000000 --- a/balloon/cache/fast_test.go +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright 2018 Banco Bilbao Vizcaya Argentaria, S.A. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -package cache - -import ( - "testing" - - "github.com/bbva/qed/util" - "github.com/stretchr/testify/require" -) - -func TestFastCache(t *testing.T) { - - testCases := []struct { - key []byte - value []byte - cached bool - }{ - {[]byte{0x0, 0x0}, []byte{0x1}, true}, - {[]byte{0x1, 0x0}, []byte{0x2}, true}, - {[]byte{0x2, 0x0}, []byte{0x3}, false}, - } - - cache := NewFastCache(100 * 1024) - - for i, c := range testCases { - if c.cached { - cache.Put(c.key, c.value) - } - - cachedValue, ok := cache.Get(c.key) - - if c.cached { - require.Truef(t, ok, "The key should exists in cache in test case %d", i) - require.Equalf(t, c.value, cachedValue, "The cached value should be equal to stored value in test case %d", i) - } else { - require.Falsef(t, ok, "The key should not exist in cache in test case %d", i) - } - } -} - -func TestFillFastCache(t *testing.T) { - - numElems := uint64(10000) - cache := NewFastCache(10000 * 1024) - reader := NewFakeKVPairReader(numElems) - - err := cache.Fill(reader) - - require.NoError(t, err) - require.Truef(t, reader.Remaining == 0, "All elements should be cached. Remaining: %d", reader.Remaining) - - for i := uint64(0); i < numElems; i++ { - key := util.Uint64AsBytes(i) - _, ok := cache.Get(key) - require.Truef(t, ok, "The element with key %v should be in cache", key) - } -} From d7e9a5a363dd0a1c831332b4eea593d994d6f16b Mon Sep 17 00:00:00 2001 From: Gabriel Diaz Date: Wed, 6 Mar 2019 16:07:24 +0100 Subject: [PATCH 06/19] clean some dependencies --- go.mod | 43 ++-------- go.sum | 267 +++++---------------------------------------------------- 2 files changed, 30 insertions(+), 280 deletions(-) diff --git a/go.mod b/go.mod index a08ae5a77..aecbf9b3e 100644 --- a/go.mod +++ b/go.mod @@ -1,45 +1,20 @@ module github.com/bbva/qed +go 1.12 + require ( - github.com/BurntSushi/toml v0.3.1 // indirect - github.com/VictoriaMetrics/fastcache v1.3.0 github.com/bbva/raft-badger v0.1.1 - github.com/blend/go-sdk v1.1.1 // indirect - github.com/bmizerany/perks v0.0.0-20141205001514-d9a9656a3a4b // indirect - github.com/coocood/freecache v1.0.1 - github.com/coreos/bbolt v1.3.0 // indirect + github.com/cespare/xxhash v1.1.0 // indirect + github.com/coocood/freecache v1.1.0 github.com/dgraph-io/badger v1.5.4 - github.com/dgryski/go-gk v0.0.0-20140819190930-201884a44051 // indirect - github.com/go-redis/redis v6.14.2+incompatible // indirect - github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c - github.com/hashicorp/go-msgpack v0.0.0-20150518234257-fa3f63826f7c - github.com/hashicorp/go-sockaddr v1.0.1 // indirect + github.com/hashicorp/go-msgpack v0.5.3 github.com/hashicorp/logutils v1.0.0 - github.com/hashicorp/memberlist v0.1.0 + github.com/hashicorp/memberlist v0.1.3 github.com/hashicorp/raft v1.0.0 - github.com/imdario/mergo v0.3.7 - github.com/inconshreveable/mousetrap v1.0.0 // indirect - github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9 // indirect - github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 // indirect - github.com/miekg/dns v1.1.4 // indirect - github.com/mitchellh/go-homedir v1.0.0 - github.com/pborman/uuid v1.2.0 // indirect - github.com/prometheus/client_golang v0.9.1 - github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 // indirect - github.com/prometheus/common v0.2.0 // indirect - github.com/prometheus/procfs v0.0.0-20190209105433-f8d8b3f739bd // indirect - github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 // indirect + github.com/mitchellh/go-homedir v1.1.0 + github.com/prometheus/client_golang v0.9.2 github.com/spf13/cobra v0.0.3 github.com/spf13/viper v1.3.1 - github.com/streadway/quantile v0.0.0-20150917103942-b0c588724d25 // indirect - github.com/stretchr/testify v1.2.2 - github.com/tsenart/vegeta v12.1.0+incompatible - github.com/valyala/fasthttp v1.0.0 - github.com/vmihailenco/msgpack v4.0.1+incompatible // indirect - github.com/wcharczuk/go-chart v2.0.1+incompatible - golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9 - golang.org/x/image v0.0.0-20190209060608-ef4a1470e0dc // indirect - labix.org/v2/mgo v0.0.0-20140701140051-000000000287 // indirect - launchpad.net/gocheck v0.0.0-20140225173054-000000000087 // indirect + golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 ) diff --git a/go.sum b/go.sum index c0a8efdd8..dd4c12d2e 100644 --- a/go.sum +++ b/go.sum @@ -1,124 +1,42 @@ -cloud.google.com/go v0.28.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7 h1:PqzgE6kAMi81xWQA2QIVxjWkFHptGgC547vchpUbtFo= github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/datadog-go v0.0.0-20180822151419-281ae9f2d895/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/VictoriaMetrics/fastcache v1.0.2 h1:dj179vXczNtKDLjmiOHRasMMv437rPpUtX/bpojmyyc= -github.com/VictoriaMetrics/fastcache v1.0.2/go.mod h1:4zLf+tCNHtaJzQfIkJ+vBXS1O98gXA/KbKtUv/W1Tdo= -github.com/VictoriaMetrics/fastcache v1.3.0 h1:6QIxfjt2tCFH+rqAgoOIuYvm230IwLwiLyxoocTcHIc= -github.com/VictoriaMetrics/fastcache v1.3.0/go.mod h1:CH4+tdFBMyTCU9HV/ifYqJvn7ECWfK1E7ES6eWt6F2o= -github.com/adammck/terraform-inventory v0.6.1 h1:rlUJV0ooEYDYr/RFBjlXwIz2EVH9BeGlcxlk26wYw4s= -github.com/adammck/terraform-inventory v0.6.1/go.mod h1:ARrwFGZ06YoSbxqJ1RlwljUYFM8fo4edCA4Tiq3Nvtw= -github.com/airbrake/gobrake v3.6.1+incompatible/go.mod h1:wM4gu3Cn0W0K7GUuVWnlXZU11AGBXMILnrdOU8Kn00o= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/allegro/bigcache v1.1.0 h1:MLuIKTjdxDc+qsG2rhjsYjsHQC5LUGjIWzutg7M+W68= -github.com/allegro/bigcache v1.1.0/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 h1:G1bPvciwNyF7IUmKXNt9Ak3m6u9DE1rF+RmtIkBpVdA= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= -github.com/armon/go-metrics v0.0.0-20180713145231-3c58d8115a78 h1:mdRSArcFLfW0VoL34LZAKSz6LkkK4jFxVx2xYavACMg= -github.com/armon/go-metrics v0.0.0-20180713145231-3c58d8115a78/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/bbva/raft-badger v0.1.0 h1:2Rs2cE84pYaqE4IqI6ZZr/wXUvetZ8jV4doOH0Yaw8k= -github.com/bbva/raft-badger v0.1.0/go.mod h1:/XINu34Us6PULTVQn0D6I/WtniWHHjut9lnsfFVECDA= github.com/bbva/raft-badger v0.1.1 h1:v0BlEP2glTd3o1U4ShD4HtyGc08PXt4gcEBdO6Fh7Oc= github.com/bbva/raft-badger v0.1.1/go.mod h1:KqKb1IrW6hsgFSzXTavxddJH+5E3TmDxBbFhitk0vpY= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/blend/go-sdk v1.1.1 h1:R7PcwuIxYvrGc/r9TLLfMpajIboTjqs/HyQouzgJ7mQ= -github.com/blend/go-sdk v1.1.1/go.mod h1:IP1XHXFveOXHRnojRJO7XvqWGqyzevtXND9AdSztAe8= -github.com/bmizerany/perks v0.0.0-20141205001514-d9a9656a3a4b h1:AP/Y7sqYicnjGDfD5VcY4CIfh1hRXBUavxrvELjTiOE= -github.com/bmizerany/perks v0.0.0-20141205001514-d9a9656a3a4b/go.mod h1:ac9efd0D1fsDb3EJvhqgXRbFx7bs2wqZ10HQPeU8U/Q= -github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4= -github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/coocood/freecache v1.0.1 h1:oFyo4msX2c0QIKU+kuMJUwsKamJ+AKc2JJrKcMszJ5M= -github.com/coocood/freecache v1.0.1/go.mod h1:ePwxCDzOYvARfHdr1pByNct1at3CoKnsipOHwKlNbzI= -github.com/coreos/bbolt v1.3.0 h1:HIgH5xUWXT914HCI671AxuTTqjj64UOFr7pHn48LUTI= -github.com/coreos/bbolt v1.3.0/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coocood/freecache v1.1.0 h1:ENiHOsWdj1BrrlPwblhbn4GdAsMymK3pZORJ+bJGAjA= +github.com/coocood/freecache v1.1.0/go.mod h1:ePwxCDzOYvARfHdr1pByNct1at3CoKnsipOHwKlNbzI= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= -github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/dgraph-io/badger v1.5.3 h1:5oWIuRvwn93cie+OSt1zSnkaIQ1JFQM8bGlIv6O6Sts= -github.com/dgraph-io/badger v1.5.3/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= github.com/dgraph-io/badger v1.5.4 h1:gVTrpUTbbr/T24uvoCaqY2KSHfNLVGm0w+hbee2HMeg= github.com/dgraph-io/badger v1.5.4/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= github.com/dgryski/go-farm v0.0.0-20180109070241-2de33835d102 h1:afESQBXJEnj3fu+34X//E8Wg3nEbMJxJkwSc0tPePK0= github.com/dgryski/go-farm v0.0.0-20180109070241-2de33835d102/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/dgryski/go-gk v0.0.0-20140819190930-201884a44051 h1:ByJUvQYyTtNNCVfYNM48q6uYUT4fAlN0wNmd3th4BSo= -github.com/dgryski/go-gk v0.0.0-20140819190930-201884a44051/go.mod h1:qm+vckxRlDt0aOla0RYJJVeqHZlWfOm2UIxHaqPB46E= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-redis/redis v6.14.2+incompatible h1:UE9pLhzmWf+xHNmZsoccjXosPicuiNaInPgym8nzfg0= -github.com/go-redis/redis v6.14.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g= -github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/gonum/blas v0.0.0-20180125090452-e7c5890b24cf h1:ukIp7SJ4RNEkyqdn8EZDzUTOsqWUbHnwPGU3d8pc7ok= -github.com/gonum/blas v0.0.0-20180125090452-e7c5890b24cf/go.mod h1:P32wAyui1PQ58Oce/KYkOqQv8cVw1zAapXOl+dRFGbc= -github.com/gonum/diff v0.0.0-20181124234638-500114f11e71 h1:BE6g8oinc3Ek2elIHq+uDOiZgX3/ODi+EerJ48yrrKc= -github.com/gonum/diff v0.0.0-20181124234638-500114f11e71/go.mod h1:22dM4PLscQl+Nzf64qNBurVJvfyvZELT0iRW2l/NN70= -github.com/gonum/floats v0.0.0-20180125090339-7de1f4ea7ab5 h1:YEwYZI2QOW/49JC7hb5X5irk1J4BJc6Q37OnahdSuek= -github.com/gonum/floats v0.0.0-20180125090339-7de1f4ea7ab5/go.mod h1:PxC8OnwL11+aosOB5+iEPoV3picfs8tUpkVd0pDo+Kg= -github.com/gonum/integrate v0.0.0-20180125090255-09c2f478329f h1:z7F5ExBRmE375gIulqCx1CwAx9SRLRmDpqiizqRw3vs= -github.com/gonum/integrate v0.0.0-20180125090255-09c2f478329f/go.mod h1:pDgmNM6seYpwvPos3q+zxlXMsbve6mOIPucUnUOrI7Y= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029 h1:8jtTdc+Nfj9AR+0soOeia9UZSvYBvETVHZrugUowJ7M= -github.com/gonum/internal v0.0.0-20181124074243-f884aa714029/go.mod h1:Pu4dmpkhSyOzRwuXkOgAvijx4o+4YMUJJo9OvPYMkks= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9 h1:7qnwS9+oeSiOIsiUMajT+0R7HR6hw5NegnKPmn/94oI= -github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9/go.mod h1:XA3DeT6rxh2EAE789SSiSJNqxPaC0aE9J8NTOI0Jo/A= -github.com/gonum/mathext v0.0.0-20181121095525-8a4bf007ea55 h1:Ajwn2ENgC/pKtVat0LEHEWNa4a4VGyYJ1feGSccOzFU= -github.com/gonum/mathext v0.0.0-20181121095525-8a4bf007ea55/go.mod h1:fmo8aiSEWkJeiGXUJf+sPvuDgEFgqIoZSs843ePKrGg= -github.com/gonum/matrix v0.0.0-20180124231301-a41cc49d4c29 h1:Aj+poYy0aVF2abLrHVN2aAxynAGg2AO8VtIJKSnmxMA= -github.com/gonum/matrix v0.0.0-20180124231301-a41cc49d4c29/go.mod h1:0EXg4mc1CNP0HCqCz+K4ts155PXIlUywf0wqN+GfPZw= -github.com/gonum/stat v0.0.0-20181125101827-41a0da705a5b h1:fbskpz/cPqWH8VqkQ7LJghFkl2KPAiIFUHrTJ2O3RGk= -github.com/gonum/stat v0.0.0-20181125101827-41a0da705a5b/go.mod h1:Z4GIJBJO3Wa4gD4vbwQxXXZ+WHmW6E9ixmNrwvs0iZs= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c h1:964Od4U6p2jUkFxvCydnIczKteheJEzHRToSGK3Bnlw= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA= -github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.0 h1:Jf4mxPC/ziBnoPIdpQdPJ9OeiomAUHLvxmPRSPH9m4s= -github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/hashicorp/consul v1.4.0 h1:PQTW4xCuAExEiSbhrsFsikzbW5gVBoi74BjUvYFyKHw= -github.com/hashicorp/consul v1.4.0/go.mod h1:mFrjN1mfidgJfYP1xrJCF+AfRhr6Eaqhb2+sfyn/OOI= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.0 h1:wvCrVc9TjDls6+YGAF2hAifE1E5U1+b4tH6KdvN3Gig= -github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.0.0-20150518234257-fa3f63826f7c h1:BTAbnbegUIMB6xmQCwWE8yRzbA4XSpnZY5hvRJC188I= github.com/hashicorp/go-msgpack v0.0.0-20150518234257-fa3f63826f7c/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-retryablehttp v0.5.0 h1:aVN0FYnPwAgZI/hVzqwfMiM86ttcHTlQKbBVeVmXPIs= -github.com/hashicorp/go-retryablehttp v0.5.0/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= -github.com/hashicorp/go-sockaddr v0.0.0-20180320115054-6d291a969b86 h1:7YOlAIO2YWnJZkQp7B5eFykaIY7C9JndqAFQyVV5BhM= -github.com/hashicorp/go-sockaddr v0.0.0-20180320115054-6d291a969b86/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-sockaddr v1.0.1 h1:eCkkJ5KOOktDvwbsE9KPyiBWaOfp1ZNy2gLHgL8PSBM= -github.com/hashicorp/go-sockaddr v1.0.1/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= -github.com/hashicorp/go-uuid v1.0.0 h1:RS8zrF7PhGwyNPOtxSClXXj9HA8feRnJzgnI1RJCSnM= +github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -126,106 +44,39 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/memberlist v0.1.0 h1:qSsCiC0WYD39lbSitKNt40e30uorm2Ss/d4JGU1hzH8= -github.com/hashicorp/memberlist v0.1.0/go.mod h1:ncdBp14cuox2iFOq3kDiquKU6fqsTBc3W6JvZwjxxsE= +github.com/hashicorp/memberlist v0.1.3 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/raft v1.0.0 h1:htBVktAOtGs4Le5Z7K8SF5H2+oWsQFYVmOgH5loro7Y= github.com/hashicorp/raft v1.0.0/go.mod h1:DVSAWItjLjTOkVbSpWQ0j0kUADIvDaCtBxIcbNAQLkI= -github.com/hashicorp/serf v0.8.1 h1:mYs6SMzu72+90OcPa5wr3nfznA4Dw9UyR791ZFNOIf4= -github.com/hashicorp/serf v0.8.1/go.mod h1:h/Ru6tmZazX7WO/GDmwdpS975F019L4t5ng5IgwbNrE= -github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d h1:kJCB4vdITiW1eC1vq2e6IsrXKrZit1bv/TDYFGMp4BQ= -github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= -github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/influxdata/tdigest v0.0.0-20180711151920-a7d76c6f093a h1:vMqgISSVkIqWxCIZs8m1L4096temR7IbYyNdMiBxSPA= -github.com/influxdata/tdigest v0.0.0-20180711151920-a7d76c6f093a/go.mod h1:9GkyshztGufsdPQWjH+ifgnIr3xNUL5syI70g2dzU1o= -github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9 h1:MHTrDWmQpHq/hkq+7cw9oYAt2PqUw52TZazRA0N7PGE= -github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/klauspost/compress v1.4.0 h1:8nsMz3tWa9SWWPL60G1V6CUsf4lLjWLTNEtibhe8gh8= -github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.4.1 h1:8VMb5+0wMgdBykOV96DwNwKFQ+WTI4pzYURP99CcB9E= -github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e h1:+lIPJOWl+jSiJOc70QXJ07+2eg2Jy2EC7Mi11BWujeM= -github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/klauspost/cpuid v1.2.0 h1:NMpwD2G9JSFOE1/TJjGSo5zG7Yb2bTe7eq1jH+irmeE= -github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/pty v1.1.3 h1:/Um6a/ZmD5tF7peoOJ5oN5KMQ0DrGVQSXLNwyckutPk= -github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic= -github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/miekg/dns v1.0.15 h1:9+UupePBQCG6zf1q/bGmTO1vumoG13jsrbWOSX1W6Tw= -github.com/miekg/dns v1.0.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.1 h1:DVkblRdiScEnEr0LR9nTnEQqHYycjkXW9bOjd+2EL2o= -github.com/miekg/dns v1.1.1/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.4 h1:rCMZsU2ScVSYcAsOXgmC6+AKOK+6pmQTOcw03nfwYV0= -github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0 h1:vKb8ShqSby24Yrqr/yDYkuFz8d0WUjys40rvnGC8aR0= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/miekg/dns v1.0.14 h1:9jZdLNd/P4+SfEJ0TNyxYpsK8N4GtfylBLqtbYN1sbA= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs= -github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU= -github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= -github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v0.9.1 h1:K47Rk0v/fkEfwfQet2KWhscE0cJzjgCCDBG2KHZoVno= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.2 h1:awm861/B8OKDd2I/6o1dy3ra4BamzKhYOiGItCeZ740= +github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181126121408-4724e9255275 h1:PnBWHBf+6L0jOqq0gIVUe6Yk0/QMZ640k6NvkxcBf+8= github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.2.0 h1:kUZDBDTdBVBYBj5Tmh2NZLlF60mfjA27rM34b+cVwNU= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181126161756-619930b0b471 h1:yLaU2uaatUJcbMacSwa4Dvstrkh6GXm2LhIpo0eGAms= -github.com/prometheus/procfs v0.0.0-20181126161756-619930b0b471/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a h1:9a8MnZMP0X2nLJdBg+pBmGgkJlSaKC2KaQmTCk1XDtE= github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190203183350-488faf799f86 h1:g+A1HvpUdFx2+DHYWf0jBRPqovwuO09Gx3wjstMDX50= -github.com/prometheus/procfs v0.0.0-20190203183350-488faf799f86/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190209105433-f8d8b3f739bd h1:pi7bGw6n4tfgHQtWDxJBBLYVdFr1GlfQEsDOyCDDFMM= -github.com/prometheus/procfs v0.0.0-20190209105433-f8d8b3f739bd/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= @@ -239,106 +90,30 @@ github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/viper v1.3.1 h1:5+8j8FTpnFV4nEImW/ofkzEt8VoOiLXxdYIDsB73T38= github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/streadway/quantile v0.0.0-20150917103942-b0c588724d25 h1:7z3LSn867ex6VSaahyKadf4WtSsJIgne6A1WLOAGM8A= -github.com/streadway/quantile v0.0.0-20150917103942-b0c588724d25/go.mod h1:lbP8tGiBjZ5YWIc2fzuRpTaz0b/53vT6PEs3QuAWzuU= -github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/tsenart/vegeta v8.0.1-0.20181009223527-f25ac6abb70a+incompatible h1:VDG+OUNhajJj8tCuLbBf2Li46eYJtKUvTVly0wNwzck= -github.com/tsenart/vegeta v8.0.1-0.20181009223527-f25ac6abb70a+incompatible/go.mod h1:Smz/ZWfhKRcyDDChZkG3CyTHdj87lHzio/HOCkbndXM= -github.com/tsenart/vegeta v12.1.0+incompatible h1:xmLWrnzmbnd6Tin2J1FEw6iosaduHrc5QJP+3k2aQfQ= -github.com/tsenart/vegeta v12.1.0+incompatible/go.mod h1:Smz/ZWfhKRcyDDChZkG3CyTHdj87lHzio/HOCkbndXM= -github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8= -github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= -github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8 h1:3SVOIvH7Ae1KRYyQWRjXWJEA9sS/c/pjvH++55Gr648= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.0.0 h1:BwIoZQbBsTo3v2F5lz5Oy3TlTq4wLKTLV260EVTEWco= -github.com/valyala/fasthttp v1.0.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s= -github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a h1:0R4NLDRDZX6JcmhJgXi5E4b8Wg84ihbmUKp/GvSPEzc= -github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= -github.com/vmihailenco/msgpack v4.0.1+incompatible h1:RMF1enSPeKTlXrXdOcqjFUElywVZjjC6pqse21bKbEU= -github.com/vmihailenco/msgpack v4.0.1+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= -github.com/wcharczuk/go-chart v2.0.1+incompatible h1:0pz39ZAycJFF7ju/1mepnk26RLVLBCWz1STcD3doU0A= -github.com/wcharczuk/go-chart v2.0.1+incompatible/go.mod h1:PF5tmL4EIx/7Wf+hEkpCqYi5He4u90sw+0+6FhrryuE= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 h1:ESFSdwYZvkeru3RtdrYueztKhOBCSAAzS4Gf+k0tEow= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b h1:2b9XGzhjiYsYPnKXoEfL7klWZQIt8IfyRCz62gCqqlQ= -golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9 h1:mKdxBk7AujPs8kU4m80U72y/zjbZ3UcXC7dClwKbUI0= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de h1:xSjD6HQTqT0H/k60N5yYBtnN1OEkVy7WIo/DYyxKRO0= -golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20181204230839-d319078994eb h1:CHAFeAk+IQacsR6vKOVEBaE7j3qFEYvJVOMmD1PyZDk= -golang.org/x/exp v0.0.0-20181204230839-d319078994eb/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/image v0.0.0-20181102021609-63626fb251ce h1:9baQ83qLsketF/x2bdSUNelOJfCgswFxV8yNnV/+6II= -golang.org/x/image v0.0.0-20181102021609-63626fb251ce/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20181116024801-cd38e8056d9b h1:VHyIDlv3XkfCa5/a81uzaoDkHH4rr81Z62g+xlnO8uM= -golang.org/x/image v0.0.0-20181116024801-cd38e8056d9b/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/image v0.0.0-20190209060608-ef4a1470e0dc h1:P8UBp9iv2ZY5xjf9rnwI9s/hywlCgyKzpLsfk30IVyw= -golang.org/x/image v0.0.0-20190209060608-ef4a1470e0dc/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3 h1:czFLhve3vsQetD6JOJ8NZZvGQIXlnN3/yXxbT6/awxI= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 h1:jsG6UpNLt9iAsb0S2AGW28DveNzzgmbXR+ENoPjUeIU= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181003013248-f5e5bdd77824 h1:MkjFNbaZJyH98M67Q3umtwZ+EdVdrNJLqSwZp5vcv60= -golang.org/x/net v0.0.0-20181003013248-f5e5bdd77824/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a h1:gOpx8G595UYyvj8UK4+OFyY4rx037g3fmfhe5SasG3U= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc h1:a3CU5tJYVj92DY2LaA1kUkrsqD5/3mLDhx2NcNqyW+0= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7 h1:bit1t3mgdR35yN0cX0G8orgLtOuyL9Wqxa1mccLB0ig= -golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a h1:1n5lsVfiQW3yfsRGu98756EH1YthsFqr/5mxHduZW2A= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181019005945-6adeb8aab2de/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20181205014116-22934f0fdb62 h1:KRNg63y5nZTd4po+9IAmrqBNARjHSwNMrkRrJj0AViU= -golang.org/x/tools v0.0.0-20181205014116-22934f0fdb62/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca h1:PupagGYwj8+I4ubCxcmcBRk3VlUWtTg5huQpZR9flmE= -gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/gonum v0.0.0-20181203212826-ec146a97d707 h1:5w2imp8wAiiZoSfWgBJnggK4f8+d3stbcbkeVlt9QfI= -gonum.org/v1/gonum v0.0.0-20181203212826-ec146a97d707/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= -gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6 h1:4WsZyVtkthqrHTbDCJfiTs8IWNYE4uvsSDgaV6xpp+o= -gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -google.golang.org/appengine v1.1.0 h1:igQkv0AAhEIvTEpD5LIpAfav2eeVO9HBTjvKHVJPRSs= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.2.0 h1:S0iUepdCWODXRvtE+gcRDd15L+k+k1AiHlMiMjefH24= -google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.3.0 h1:FBSsiFRMz3LBeXIomRnVzrQwSDj4ibvcRexLG0LZGQk= -google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/vmihailenco/msgpack.v2 v2.9.1 h1:kb0VV7NuIojvRfzwslQeP3yArBqJHW9tOl4t38VS1jM= gopkg.in/vmihailenco/msgpack.v2 v2.9.1/go.mod h1:/3Dn1Npt9+MYyLpYYXjInO/5jvMLamn+AEGwNEOatn8= -gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -labix.org/v2/mgo v0.0.0-20140701140051-000000000287 h1:L0cnkNl4TfAXzvdrqsYEmxOHOCv2p5I3taaReO8BWFs= -labix.org/v2/mgo v0.0.0-20140701140051-000000000287/go.mod h1:Lg7AYkt1uXJoR9oeSZ3W/8IXLdvOfIITgZnommstyz4= -launchpad.net/gocheck v0.0.0-20140225173054-000000000087 h1:Izowp2XBH6Ya6rv+hqbceQyw/gSGoXfH/UPoTGduL54= -launchpad.net/gocheck v0.0.0-20140225173054-000000000087/go.mod h1:hj7XX3B/0A+80Vse0e+BUHsHMTEhd0O4cpUHr/e/BUM= From 52f1d679a4b53c132a2c633bfccb2d23a81acb1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Wed, 6 Mar 2019 16:12:49 +0100 Subject: [PATCH 07/19] remove unused variable --- tests/riot/main.go | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/riot/main.go b/tests/riot/main.go index 70e635f78..0dba21812 100644 --- a/tests/riot/main.go +++ b/tests/riot/main.go @@ -321,7 +321,6 @@ func (a *Attack) CreateFanOut() { } func setupMetrics(conf Config) { - graph := &axis{} ticker := time.NewTicker(1 * time.Second) start := time.Now() defer ticker.Stop() From 6475fe3f1908222eb8e679bfa24a705c278d5ec5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Wed, 6 Mar 2019 16:14:55 +0100 Subject: [PATCH 08/19] update go modules --- go.mod | 1 + go.sum | 2 ++ 2 files changed, 3 insertions(+) diff --git a/go.mod b/go.mod index aecbf9b3e..d7c828259 100644 --- a/go.mod +++ b/go.mod @@ -12,6 +12,7 @@ require ( github.com/hashicorp/logutils v1.0.0 github.com/hashicorp/memberlist v0.1.3 github.com/hashicorp/raft v1.0.0 + github.com/imdario/mergo v0.3.7 // indirect github.com/mitchellh/go-homedir v1.1.0 github.com/prometheus/client_golang v0.9.2 github.com/spf13/cobra v0.0.3 diff --git a/go.sum b/go.sum index dd4c12d2e..496deecea 100644 --- a/go.sum +++ b/go.sum @@ -48,6 +48,8 @@ github.com/hashicorp/memberlist v0.1.3 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG67 github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/raft v1.0.0 h1:htBVktAOtGs4Le5Z7K8SF5H2+oWsQFYVmOgH5loro7Y= github.com/hashicorp/raft v1.0.0/go.mod h1:DVSAWItjLjTOkVbSpWQ0j0kUADIvDaCtBxIcbNAQLkI= +github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= +github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= From 0caf1055e3a236f4c4408f26292f9be251db2b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Wed, 6 Mar 2019 16:24:53 +0100 Subject: [PATCH 09/19] Initialize the first segment on store creation --- tests/e2e/test_service.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/test_service.go b/tests/e2e/test_service.go index fd29a0b6c..837254b6b 100644 --- a/tests/e2e/test_service.go +++ b/tests/e2e/test_service.go @@ -118,7 +118,7 @@ type snapStore struct { } func newSnapStore() *snapStore { - return &snapStore{segments: make([]Segment, 0)} + return &snapStore{segments: append([]Segment{}, Segment{})} } func (s *snapStore) Put(b *protocol.BatchSnapshots) { From 49fca49cd95aa2cf227509ec4665491c540eb6ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Wed, 6 Mar 2019 17:42:10 +0100 Subject: [PATCH 10/19] Remove debug and send task without pointer because its an interface --- gossip/publisher/publisher.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gossip/publisher/publisher.go b/gossip/publisher/publisher.go index 3e13845ba..5f649cb35 100644 --- a/gossip/publisher/publisher.go +++ b/gossip/publisher/publisher.go @@ -110,14 +110,13 @@ func (p *Publisher) Process(b protocol.BatchSnapshots) { taskCh: p.taskCh, batch: b, } - p.taskCh <- *task + p.taskCh <- task } func (p Publisher) runTaskDispatcher() { for { select { case <-p.executionTicker.C: - log.Debug("Dispatching tasks...") go p.dispatchTasks() case <-p.quitCh: p.executionTicker.Stop() @@ -145,7 +144,7 @@ func (p *Publisher) Shutdown() { func (p Publisher) dispatchTasks() { count := 0 var task Task - defer log.Debugf("%d tasks dispatched", count) + for { select { case task = <-p.taskCh: From 430e33768fc8d06dc2b4efeee26c34ad5ba38918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Wed, 6 Mar 2019 17:42:50 +0100 Subject: [PATCH 11/19] Remove debug log --- gossip/monitor/monitor.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gossip/monitor/monitor.go b/gossip/monitor/monitor.go index 95aa62601..d1f94b62b 100644 --- a/gossip/monitor/monitor.go +++ b/gossip/monitor/monitor.go @@ -134,7 +134,6 @@ func (m Monitor) runTaskDispatcher() { for { select { case <-m.executionTicker.C: - log.Debug("Dispatching tasks...") go m.dispatchTasks() case <-m.quitCh: m.executionTicker.Stop() @@ -164,7 +163,7 @@ func (m Monitor) dispatchTasks() { count := 0 var task Task var ok bool - defer log.Debugf("%d tasks dispatched", count) + for { select { case task, ok = <-m.taskCh: From 134c0b316e0c7adfcdd870bbd97675555156df56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Wed, 6 Mar 2019 17:43:59 +0100 Subject: [PATCH 12/19] Add timedout channel send, change ttl --- gossip/agent.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/gossip/agent.go b/gossip/agent.go index c547a8f7b..9c14066d1 100644 --- a/gossip/agent.go +++ b/gossip/agent.go @@ -106,6 +106,17 @@ func NewAgent(conf *Config, p []Processor) (agent *Agent, err error) { return agent, nil } +func chTimedSend(batch *protocol.BatchSnapshots, ch chan *protocol.BatchSnapshots) { + for { + select { + case <-time.After(200 * time.Millisecond): + log.Infof("Timed out sending out batch ") + return + case ch <- batch: + return + } + } +} func (a *Agent) start() { outTicker := time.NewTicker(2 * time.Second) @@ -115,7 +126,7 @@ func (a *Agent) start() { for _, p := range a.processors { go p.Process(*batch) } - a.Out <- batch + chTimedSend(batch, a.Out) case <-outTicker.C: go a.sendOutQueue() case <-a.quit: @@ -141,7 +152,7 @@ func (a *Agent) sendOutQueue() { continue } - batch.TTL-- + batch.TTL -= 1 from := batch.From batch.From = a.Self msg, _ := batch.Encode() From f4c1343545a5836dd95ef338d6dd41351cc520ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Wed, 6 Mar 2019 17:45:10 +0100 Subject: [PATCH 13/19] Add TTL to task retry, remove some debug logs --- gossip/auditor/auditor.go | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/gossip/auditor/auditor.go b/gossip/auditor/auditor.go index 067e7b454..c6a568d1b 100644 --- a/gossip/auditor/auditor.go +++ b/gossip/auditor/auditor.go @@ -105,7 +105,6 @@ func (a Auditor) runTaskDispatcher() { for { select { case <-a.executionTicker.C: - log.Debug("Dispatching tasks...") go a.dispatchTasks() case <-a.quitCh: a.executionTicker.Stop() @@ -117,7 +116,7 @@ func (a Auditor) runTaskDispatcher() { func (a Auditor) dispatchTasks() { count := 0 var task Task - defer log.Debugf("%d tasks dispatched", count) + for { select { case task = <-a.taskCh: @@ -139,10 +138,11 @@ func (a Auditor) Process(b protocol.BatchSnapshots) { defer timer.ObserveDuration() task := &MembershipTask{ - qed: a.qed, - pubUrl: a.conf.PubUrls[0], - taskCh: a.taskCh, - s: *b.Snapshots[0], + qed: a.qed, + pubUrl: a.conf.PubUrls[0], + taskCh: a.taskCh, + retries: 2, + s: *b.Snapshots[0], } a.taskCh <- task @@ -169,13 +169,15 @@ type Task interface { } type MembershipTask struct { - qed *client.HTTPClient - pubUrl string - taskCh chan Task - s protocol.SignedSnapshot + qed *client.HTTPClient + pubUrl string + taskCh chan Task + retries int + s protocol.SignedSnapshot } -func (t MembershipTask) Do() { +func (t *MembershipTask) Do() { + proof, err := t.qed.MembershipDigest(t.s.Snapshot.EventDigest, t.s.Snapshot.Version) if err != nil { // TODO: retry @@ -193,16 +195,22 @@ func (t MembershipTask) Do() { snap, err := t.getSnapshot(proof.CurrentVersion) if err != nil { - log.Infof("Unable to get snapshot from storage, try later: %v", err) - t.taskCh <- t + log.Infof("Unable to get snapshot from storage: %v", err) + if t.retries > 0 { + log.Infof("Enqueue another try to grt snapshot from storage") + t.retries -= 1 + t.taskCh <- t + } return } + checkSnap := &protocol.Snapshot{ HistoryDigest: t.s.Snapshot.HistoryDigest, HyperDigest: snap.Snapshot.HyperDigest, Version: t.s.Snapshot.Version, EventDigest: t.s.Snapshot.EventDigest, } + ok := t.qed.DigestVerify(proof, checkSnap, hashing.NewSha256Hasher) if !ok { t.sendAlert(fmt.Sprintf("Unable to verify snapshot %v", t.s.Snapshot)) From 253618f186a1326411b4c78ed134d7a3c8596c11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Thu, 7 Mar 2019 11:45:49 +0100 Subject: [PATCH 14/19] Fix: remove unused graph var --- tests/riot.go | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/riot.go b/tests/riot.go index 11be22dd8..bcfcd0ef9 100644 --- a/tests/riot.go +++ b/tests/riot.go @@ -269,7 +269,6 @@ func summaryPerDuration(message string, numRequestsf, elapsed float64, c *Config } func stats(c *Config, t Task, message string) { - graph := &axis{} ticker := time.NewTicker(1 * time.Second) numRequestsf := float64(c.numRequests) start := time.Now() From 458d05be4b09036c26c7c5ed338d174edec79a57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Thu, 7 Mar 2019 11:46:05 +0100 Subject: [PATCH 15/19] Fix log messages --- gossip/agent.go | 2 +- gossip/monitor/monitor.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gossip/agent.go b/gossip/agent.go index 9c14066d1..827e40ac5 100644 --- a/gossip/agent.go +++ b/gossip/agent.go @@ -110,7 +110,7 @@ func chTimedSend(batch *protocol.BatchSnapshots, ch chan *protocol.BatchSnapshot for { select { case <-time.After(200 * time.Millisecond): - log.Infof("Timed out sending out batch ") + log.Infof("Agent timed out enqueueing batch in out channel") return case ch <- batch: return diff --git a/gossip/monitor/monitor.go b/gossip/monitor/monitor.go index d1f94b62b..6629e0c24 100644 --- a/gossip/monitor/monitor.go +++ b/gossip/monitor/monitor.go @@ -208,7 +208,7 @@ func (q QueryTask) Do() { resp, err := q.client.Incremental(q.Start, q.End) if err != nil { metrics.QedMonitorGetIncrementalProofErrTotal.Inc() - log.Infof("Unable to verify incremental proof from %d to %d", q.Start, q.End) + log.Infof("Unable to get incremental proof from QED server: %s", err.Error()) return } ok := q.client.VerifyIncremental(resp, &q.StartSnapshot, &q.EndSnapshot, hashing.NewSha256Hasher()) From c607cc1439292a6c34a6c54312d530645511d141 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Thu, 7 Mar 2019 11:46:52 +0100 Subject: [PATCH 16/19] Remove bindaddr default value from config --- gossip/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gossip/config.go b/gossip/config.go index fceecfb3b..5587636af 100644 --- a/gossip/config.go +++ b/gossip/config.go @@ -29,7 +29,7 @@ const DefaultBindPort int = 7946 // DefaultConfig contains the defaults for configurations. func DefaultConfig() *Config { return &Config{ - BindAddr: "127.0.0.1:12345", + BindAddr: "", AdvertiseAddr: "", LeaveOnTerm: true, EnableCompression: false, From 5d1aaf2c393e592865a1531d1017c2953bbea20e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Thu, 7 Mar 2019 11:50:34 +0100 Subject: [PATCH 17/19] Fix testJoin setting up bindAddr --- gossip/agent_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/gossip/agent_test.go b/gossip/agent_test.go index 41cffddf2..2d8758e82 100644 --- a/gossip/agent_test.go +++ b/gossip/agent_test.go @@ -29,6 +29,7 @@ func TestJoin(t *testing.T) { conf := DefaultConfig() conf.NodeName = "testNode" conf.Role = member.Auditor + conf.BindAddr = "127.0.0.1:12345" a, _ := NewAgent(conf, []Processor{FakeProcessor{}}) testCases := []struct { From 41faa09800bceb9d3ab3a26deac170d4913ec187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Thu, 7 Mar 2019 11:55:33 +0100 Subject: [PATCH 18/19] update go modules --- go.mod | 6 +++++- go.sum | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index d7c828259..b56a30cbb 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/bbva/qed go 1.12 require ( + github.com/BurntSushi/toml v0.3.1 // indirect github.com/bbva/raft-badger v0.1.1 github.com/cespare/xxhash v1.1.0 // indirect github.com/coocood/freecache v1.1.0 @@ -12,10 +13,13 @@ require ( github.com/hashicorp/logutils v1.0.0 github.com/hashicorp/memberlist v0.1.3 github.com/hashicorp/raft v1.0.0 - github.com/imdario/mergo v0.3.7 // indirect + github.com/imdario/mergo v0.3.7 + github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/mitchellh/go-homedir v1.1.0 github.com/prometheus/client_golang v0.9.2 github.com/spf13/cobra v0.0.3 github.com/spf13/viper v1.3.1 + github.com/stretchr/testify v1.2.2 golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25 + golang.org/x/net v0.0.0-20181220203305-927f97764cc3 // indirect ) diff --git a/go.sum b/go.sum index 496deecea..381e844fa 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,8 @@ github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7 h1:PqzgE6kAMi81xWQA2QIVxjWkFHptGgC547vchpUbtFo= github.com/AndreasBriese/bbloom v0.0.0-20180913140656-343706a395b7/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= @@ -12,9 +15,12 @@ github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/coocood/freecache v1.1.0 h1:ENiHOsWdj1BrrlPwblhbn4GdAsMymK3pZORJ+bJGAjA= github.com/coocood/freecache v1.1.0/go.mod h1:ePwxCDzOYvARfHdr1pByNct1at3CoKnsipOHwKlNbzI= +github.com/coreos/etcd v3.3.10+incompatible h1:jFneRYjIvLMLhDLCzuTuU4rSJUjRplcJQ7pD7MnhC04= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0 h1:3Jm3tLmsgAYcjC+4Up7hJrFBPr+n7rAqYeSw/SZazuY= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgraph-io/badger v1.5.4 h1:gVTrpUTbbr/T24uvoCaqY2KSHfNLVGm0w+hbee2HMeg= github.com/dgraph-io/badger v1.5.4/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= @@ -37,6 +43,7 @@ github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uP github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-uuid v1.0.0 h1:RS8zrF7PhGwyNPOtxSClXXj9HA8feRnJzgnI1RJCSnM= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -50,8 +57,12 @@ github.com/hashicorp/raft v1.0.0 h1:htBVktAOtGs4Le5Z7K8SF5H2+oWsQFYVmOgH5loro7Y= github.com/hashicorp/raft v1.0.0/go.mod h1:DVSAWItjLjTOkVbSpWQ0j0kUADIvDaCtBxIcbNAQLkI= github.com/imdario/mergo v0.3.7 h1:Y+UAYTZ7gDEuOfhxKWy+dvb5dRQ6rJjFSdX2HZY1/gI= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= @@ -63,11 +74,13 @@ github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.2 h1:awm861/B8OKDd2I/6o1dy3ra4BamzKhYOiGItCeZ740= github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= @@ -79,6 +92,7 @@ github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a h1:9a8MnZMP0X2nL github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 h1:qLC7fQah7D6K1B0ujays3HV9gkFtllcxhzImRR7ArPQ= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= @@ -92,7 +106,9 @@ github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/viper v1.3.1 h1:5+8j8FTpnFV4nEImW/ofkzEt8VoOiLXxdYIDsB73T38= github.com/spf13/viper v1.3.1/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8 h1:3SVOIvH7Ae1KRYyQWRjXWJEA9sS/c/pjvH++55Gr648= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -103,8 +119,11 @@ golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc h1:a3CU5tJYVj92DY2LaA1kUkrsqD5/3mLDhx2NcNqyW+0= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3 h1:eH6Eip3UpmR+yM/qI9Ijluzb1bNv/cAU/n+6l8tRSis= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -115,6 +134,7 @@ golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/vmihailenco/msgpack.v2 v2.9.1/go.mod h1:/3Dn1Npt9+MYyLpYYXjInO/5jvMLamn+AEGwNEOatn8= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= From 22522f804a4ba9630e3512066cbf422f189fdcef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20D=C3=ADaz?= Date: Thu, 7 Mar 2019 12:10:58 +0100 Subject: [PATCH 19/19] remove unused file --- gossip/queue.go | 73 ------------------------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 gossip/queue.go diff --git a/gossip/queue.go b/gossip/queue.go deleted file mode 100644 index 2f90f7070..000000000 --- a/gossip/queue.go +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright 2018 Banco Bilbao Vizcaya Argentaria, S.A. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ -package gossip - -import ( - "runtime" - "sync/atomic" - - "github.com/bbva/qed/protocol" -) - -const queueSize uint64 = 65535 - -// Masking is faster than division -const indexMask uint64 = queueSize - 1 - -type Queue struct { - // The padding members 1 to 5 below are here to ensure each item is on a separate cache line. - // This prevents false sharing and hence improves performance. - padding1 [8]uint64 - lastCommittedIndex uint64 - padding2 [8]uint64 - nextFreeIndex uint64 - padding3 [8]uint64 - readerIndex uint64 - padding4 [8]uint64 - contents [queueSize]*protocol.BatchSnapshots - padding5 [8]uint64 -} - -func NewQueue() *Queue { - return &Queue{ - lastCommittedIndex: 0, - nextFreeIndex: 1, - readerIndex: 1, - } -} - -func (self *Queue) Write(value *protocol.BatchSnapshots) { - var myIndex = atomic.AddUint64(&self.nextFreeIndex, 1) - 1 - //Wait for reader to catch up, so we don't clobber a slot which it is (or will be) reading - for myIndex > (self.readerIndex + queueSize - 2) { - runtime.Gosched() - } - //Write the item into it's slot - self.contents[myIndex&indexMask] = value - //Increment the lastCommittedIndex so the item is available for reading - for !atomic.CompareAndSwapUint64(&self.lastCommittedIndex, myIndex-1, myIndex) { - runtime.Gosched() - } -} - -func (self *Queue) Read() *protocol.BatchSnapshots { - var myIndex = atomic.AddUint64(&self.readerIndex, 1) - 1 - //If reader has out-run writer, wait for a value to be committed - for myIndex > self.lastCommittedIndex { - runtime.Gosched() - } - return self.contents[myIndex&indexMask] -}