From f8b9022a4c2b6e7d7628546a25e68b92e2e6a054 Mon Sep 17 00:00:00 2001 From: Nick Pillitteri Date: Tue, 3 Jan 2023 15:00:12 -0500 Subject: [PATCH] Use Grafana Memcached client fork instead of upstream Signed-off-by: Nick Pillitteri --- CHANGELOG.md | 1 + cache/cache.go | 3 +++ cache/client.go | 4 +--- cache/memcached_client.go | 4 ++-- cache/memcached_server_selector.go | 2 +- go.mod | 2 +- go.sum | 4 ++-- 7 files changed, 11 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b515f94b..2751b20a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,7 @@ * [CHANGE] Runtimeconfig: Listener channels created by Manager no longer receive current value on every reload period, but only if any configuration file has changed. #218 * [CHANGE] Services: `FailureWatcher.WatchService()` and `FailureWatcher.WatchManager()` now panic if `FailureWatcher` is `nil`. #219 * [CHANGE] Memberlist: cluster label verification feature (`-memberlist.cluster-label` and `-memberlist.cluster-label-verification-disabled`) is now marked as stable. #222 +* [CHANGE] Cache: Switch Memcached backend to use `github.com/grafana/gomemcache` repository instead of `github.com/bradfitz/gomemcache`. #248 * [ENHANCEMENT] Add middleware package. #38 * [ENHANCEMENT] Add the ring package #45 * [ENHANCEMENT] Add limiter package. #41 diff --git a/cache/cache.go b/cache/cache.go index 7000a0100..86d9e5626 100644 --- a/cache/cache.go +++ b/cache/cache.go @@ -13,6 +13,9 @@ import ( var ( _ RemoteCacheClient = (*memcachedClient)(nil) _ RemoteCacheClient = (*redisClient)(nil) + + _ Cache = (*MemcachedCache)(nil) + _ Cache = (*RedisCache)(nil) ) // RemoteCacheClient is a high level client to interact with remote cache. diff --git a/cache/client.go b/cache/client.go index 0c15bd5f6..d340bac25 100644 --- a/cache/client.go +++ b/cache/client.go @@ -5,12 +5,10 @@ import ( "net" "time" - "github.com/bradfitz/gomemcache/memcache" - "github.com/go-kit/log" "github.com/go-kit/log/level" + "github.com/grafana/gomemcache/memcache" "github.com/pkg/errors" - "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" ) diff --git a/cache/memcached_client.go b/cache/memcached_client.go index accf28ae9..3a42f1ede 100644 --- a/cache/memcached_client.go +++ b/cache/memcached_client.go @@ -7,9 +7,9 @@ import ( "strings" "time" - "github.com/bradfitz/gomemcache/memcache" "github.com/go-kit/log" "github.com/go-kit/log/level" + "github.com/grafana/gomemcache/memcache" "github.com/pkg/errors" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promauto" @@ -30,7 +30,7 @@ type MemcachedClient = RemoteCacheClient // memcachedClientBackend is an interface used to mock the underlying client in tests. type memcachedClientBackend interface { - GetMulti(keys []string) (map[string]*memcache.Item, error) + GetMulti(keys []string, opts ...memcache.Option) (map[string]*memcache.Item, error) Set(item *memcache.Item) error Delete(key string) error } diff --git a/cache/memcached_server_selector.go b/cache/memcached_server_selector.go index 31a79e8e5..db0c32fd6 100644 --- a/cache/memcached_server_selector.go +++ b/cache/memcached_server_selector.go @@ -4,9 +4,9 @@ import ( "net" "sync" - "github.com/bradfitz/gomemcache/memcache" "github.com/cespare/xxhash" "github.com/facette/natsort" + "github.com/grafana/gomemcache/memcache" ) var ( diff --git a/go.mod b/go.mod index 5f93fcbed..321b765dc 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,6 @@ require ( github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 github.com/alicebob/miniredis v2.5.0+incompatible github.com/armon/go-metrics v0.3.10 - github.com/bradfitz/gomemcache v0.0.0-20221031212613-62deef7fc822 github.com/cespare/xxhash v1.1.0 github.com/cristalhq/hedgedhttp v0.7.0 github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb @@ -15,6 +14,7 @@ require ( github.com/gogo/protobuf v1.3.2 github.com/gogo/status v1.1.0 github.com/golang/snappy v0.0.4 + github.com/grafana/gomemcache v0.0.0-20230104170548-c1cca813817a github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 github.com/hashicorp/consul/api v1.15.3 github.com/hashicorp/go-cleanhttp v0.5.2 diff --git a/go.sum b/go.sum index 5d7ae51ab..d1cec1d1a 100644 --- a/go.sum +++ b/go.sum @@ -85,8 +85,6 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bradfitz/gomemcache v0.0.0-20221031212613-62deef7fc822 h1:hjXJeBcAMS1WGENGqDpzvmgS43oECTx8UXq31UBu0Jw= -github.com/bradfitz/gomemcache v0.0.0-20221031212613-62deef7fc822/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= @@ -265,6 +263,8 @@ github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+ github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/grafana/gomemcache v0.0.0-20230104170548-c1cca813817a h1:q7s1Se3EataEmdPWUtP/PE+UVRxaS0MlprU0jUiYn8A= +github.com/grafana/gomemcache v0.0.0-20230104170548-c1cca813817a/go.mod h1:6fkC8bkriadatJOc7Pvjcvqr2xh9C79BYRRfE3WWoo0= github.com/grafana/memberlist v0.3.1-0.20220708130638-bd88e10a3d91 h1:/NipyHnOmvRsVzj81j2qE0VxsvsqhOB0f4vJIhk2qCQ= github.com/grafana/memberlist v0.3.1-0.20220708130638-bd88e10a3d91/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/grpc-ecosystem/go-grpc-middleware v1.1.0 h1:THDBEeQ9xZ8JEaCLyLQqXMMdRqNr0QAUJTIkQAUtFjg=