Skip to content

Commit 34b45d1

Browse files
authored
Unexperimentalize memberlist (#2725)
* Added missing flags, remove experimental flag. Signed-off-by: Peter Štibraný <[email protected]> * CHANGELOG.md entry Signed-off-by: Peter Štibraný <[email protected]> * Added PR number. Signed-off-by: Peter Štibraný <[email protected]> * Update docs Signed-off-by: Peter Štibraný <[email protected]> * Removed experimental label from memberlist. Signed-off-by: Peter Štibraný <[email protected]> * Updated docs. Signed-off-by: Peter Štibraný <[email protected]>
1 parent 5d26d58 commit 34b45d1

File tree

7 files changed

+20
-15
lines changed

7 files changed

+20
-15
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
* `cortex_<service>_blocks_last_successful_sync_timestamp_seconds` => `cortex_bucket_stores_blocks_last_successful_sync_timestamp_seconds{component="<service>"}`
5050
* [CHANGE] Available command-line flags are printed to stdout, and only when requested via `-help`. Using invalid flag no longer causes printing of all available flags. #2691
5151
* [CHANGE] Experimental Memberlist ring: randomize gossip node names to avoid conflicts when running multiple clients on the same host, or reusing host names (eg. pods in statefulset). Node name randomization can be disabled by using `-memberlist.randomize-node-name=false`. #2715
52+
* [CHANGE] Memberlist KV client is no longer considered experimental. #2725
5253
* [FEATURE] TLS config options added for GRPC clients in Querier (Query-frontend client & Ingester client), Ruler, Store Gateway, as well as HTTP client in Config store client. #2502
5354
* [FEATURE] The flag `-frontend.max-cache-freshness` is now supported within the limits overrides, to specify per-tenant max cache freshness values. The corresponding YAML config parameter has been changed from `results_cache.max_freshness` to `limits_config.max_cache_freshness`. The legacy YAML config parameter (`results_cache.max_freshness`) will continue to be supported till Cortex release `v1.4.0`. #2609
5455
* [FEATURE] Experimental gRPC Store: Added support to 3rd parties index and chunk stores using gRPC client/server plugin mechanism. #2220

docs/configuration/arguments.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,18 +182,24 @@ prefix these flags with `distributor.ha-tracker.`
182182
- `etcd.max-retries`
183183
The maximum number of retries to do for failed ops.
184184

185-
#### memberlist (EXPERIMENTAL)
185+
#### memberlist
186186

187-
Flags for configuring KV store based on memberlist library. This feature is experimental, please don't use it yet.
187+
Flags for configuring KV store based on memberlist library.
188188

189189
- `memberlist.nodename`
190190
Name of the node in memberlist cluster. Defaults to hostname.
191+
- `memberlist.randomize-node-name`
192+
This flag adds extra random suffix to the node name used by memberlist. Defaults to true. Using random suffix helps to prevent issues when running multiple memberlist nodes on the same machine, or when node names are reused (eg. in stateful sets).
191193
- `memberlist.retransmit-factor`
192194
Multiplication factor used when sending out messages (factor * log(N+1)). If not set, default value is used.
193195
- `memberlist.join`
194196
Other cluster members to join. Can be specified multiple times.
197+
- `memberlist.min-join-backoff`, `memberlist.max-join-backoff`, `memberlist.max-join-retries`
198+
These flags control backoff settings when joining the cluster.
195199
- `memberlist.abort-if-join-fails`
196200
If this node fails to join memberlist cluster, abort.
201+
- `memberlist.rejoin-interval`
202+
How often to try to rejoin the memberlist cluster. Defaults to 0, no rejoining. Occasional rejoin may be useful in some configurations, and is otherwise harmless.
197203
- `memberlist.left-ingesters-timeout`
198204
How long to keep LEFT ingesters in the ring. Note: this is only used for gossiping, LEFT ingesters are otherwise invisible.
199205
- `memberlist.leave-timeout`

docs/configuration/config-file-reference.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ ha_tracker:
322322
323323
kvstore:
324324
# Backend storage to use for the ring. Supported values are: consul, etcd,
325-
# inmemory, multi, memberlist (experimental).
325+
# inmemory, memberlist, multi.
326326
# CLI flag: -distributor.ha-tracker.store
327327
[store: <string> | default = "consul"]
328328
@@ -375,7 +375,7 @@ ha_tracker:
375375
ring:
376376
kvstore:
377377
# Backend storage to use for the ring. Supported values are: consul, etcd,
378-
# inmemory, multi, memberlist (experimental).
378+
# inmemory, memberlist, multi.
379379
# CLI flag: -distributor.ring.store
380380
[store: <string> | default = "consul"]
381381
@@ -450,7 +450,7 @@ lifecycler:
450450
ring:
451451
kvstore:
452452
# Backend storage to use for the ring. Supported values are: consul, etcd,
453-
# inmemory, multi, memberlist (experimental).
453+
# inmemory, memberlist, multi.
454454
# CLI flag: -ring.store
455455
[store: <string> | default = "consul"]
456456
@@ -990,7 +990,7 @@ storage:
990990
ring:
991991
kvstore:
992992
# Backend storage to use for the ring. Supported values are: consul, etcd,
993-
# inmemory, multi, memberlist (experimental).
993+
# inmemory, memberlist, multi.
994994
# CLI flag: -ruler.ring.store
995995
[store: <string> | default = "consul"]
996996

@@ -2303,8 +2303,7 @@ The `memberlist_config` configures the Gossip memberlist.
23032303
# CLI flag: -memberlist.dead-node-reclaim-time
23042304
[dead_node_reclaim_time: <duration> | default = 0s]
23052305
2306-
# Other cluster members to join. Can be specified multiple times. Memberlist
2307-
# store is EXPERIMENTAL.
2306+
# Other cluster members to join. Can be specified multiple times.
23082307
# CLI flag: -memberlist.join
23092308
[join_members: <list of string> | default = ]
23102309
@@ -3171,7 +3170,7 @@ The `compactor_config` configures the compactor for the experimental blocks stor
31713170
sharding_ring:
31723171
kvstore:
31733172
# Backend storage to use for the ring. Supported values are: consul, etcd,
3174-
# inmemory, multi, memberlist (experimental).
3173+
# inmemory, memberlist, multi.
31753174
# CLI flag: -compactor.ring.store
31763175
[store: <string> | default = "consul"]
31773176
@@ -3232,7 +3231,7 @@ sharding_ring:
32323231
# in microservices mode.
32333232
kvstore:
32343233
# Backend storage to use for the ring. Supported values are: consul, etcd,
3235-
# inmemory, multi, memberlist (experimental).
3234+
# inmemory, memberlist, multi.
32363235
# CLI flag: -experimental.store-gateway.sharding-ring.store
32373236
[store: <string> | default = "consul"]
32383237

docs/configuration/v1-guarantees.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ Currently experimental features are:
3838
- Cassandra storage engine.
3939
- Azure blob storage.
4040
- Zone awareness based replication.
41-
- Gossip based ring.
4241
- User subrings.
4342
- Ruler API (to PUT rules).
4443
- Memcached client DNS-based service discovery.

docs/operations/blocks-storage.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ store_gateway:
534534
# running in microservices mode.
535535
kvstore:
536536
# Backend storage to use for the ring. Supported values are: consul, etcd,
537-
# inmemory, multi, memberlist (experimental).
537+
# inmemory, memberlist, multi.
538538
# CLI flag: -experimental.store-gateway.sharding-ring.store
539539
[store: <string> | default = "consul"]
540540
@@ -654,7 +654,7 @@ compactor:
654654
sharding_ring:
655655
kvstore:
656656
# Backend storage to use for the ring. Supported values are: consul, etcd,
657-
# inmemory, multi, memberlist (experimental).
657+
# inmemory, memberlist, multi.
658658
# CLI flag: -compactor.ring.store
659659
[store: <string> | default = "consul"]
660660

pkg/ring/kv/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func (cfg *Config) RegisterFlagsWithPrefix(flagsPrefix, defaultPrefix string, f
6161
flagsPrefix = "ring."
6262
}
6363
f.StringVar(&cfg.Prefix, flagsPrefix+"prefix", defaultPrefix, "The prefix for the keys in the store. Should end with a /.")
64-
f.StringVar(&cfg.Store, flagsPrefix+"store", "consul", "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, multi, memberlist (experimental).")
64+
f.StringVar(&cfg.Store, flagsPrefix+"store", "consul", "Backend storage to use for the ring. Supported values are: consul, etcd, inmemory, memberlist, multi.")
6565
}
6666

6767
// Client is a high-level client for key-value stores (such as Etcd and

pkg/ring/kv/memberlist/memberlist_client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ func (cfg *KVConfig) RegisterFlags(f *flag.FlagSet, prefix string) {
164164
f.BoolVar(&cfg.RandomizeNodeName, prefix+"memberlist.randomize-node-name", true, "Add random suffix to the node name.")
165165
f.DurationVar(&cfg.StreamTimeout, prefix+"memberlist.stream-timeout", 0, "The timeout for establishing a connection with a remote node, and for read/write operations. Uses memberlist LAN defaults if 0.")
166166
f.IntVar(&cfg.RetransmitMult, prefix+"memberlist.retransmit-factor", 0, "Multiplication factor used when sending out messages (factor * log(N+1)).")
167-
f.Var(&cfg.JoinMembers, prefix+"memberlist.join", "Other cluster members to join. Can be specified multiple times. Memberlist store is EXPERIMENTAL.")
167+
f.Var(&cfg.JoinMembers, prefix+"memberlist.join", "Other cluster members to join. Can be specified multiple times.")
168168
f.DurationVar(&cfg.MinJoinBackoff, prefix+"memberlist.min-join-backoff", 1*time.Second, "Min backoff duration to join other cluster members.")
169169
f.DurationVar(&cfg.MaxJoinBackoff, prefix+"memberlist.max-join-backoff", 1*time.Minute, "Max backoff duration to join other cluster members.")
170170
f.IntVar(&cfg.MaxJoinRetries, prefix+"memberlist.max-join-retries", 10, "Max number of retries to join other cluster members.")

0 commit comments

Comments
 (0)