Hi all,
I am new to Redis and Redis enterprise as well. I have a problem while testing RES that:
-
I have a cluster: 3 node, rack-awareness
-
Other configs:
-
Cluster:
repl_diskless: enabled
shards_overbooking: disabled
default_non_sharded_proxy_policy: single
default_sharded_proxy_policy: single
default_shards_placement: sparse
default_fork_evict_ram: enabled
default_provisioned_redis_version: 6.0
redis_migrate_node_threshold: 0KB (0 bytes)
redis_migrate_node_threshold_percent: 4 (%)
redis_provision_node_threshold: 0KB (0 bytes)
redis_provision_node_threshold_percent: 12 (%)
max_simultaneous_backups: 4
slave_ha: enabled
slave_ha_grace_period: 120
slave_ha_cooldown_period: 180
slave_ha_bdb_cooldown_period: 180
parallel_shards_upgrade: 0
show_internals: disabled
expose_hostnames_for_all_suffixes: disabled
login_lockout_threshold: 5
login_lockout_duration: 1800
login_lockout_counter_reset_after: 900
default_concurrent_restore_actions: 10
endpoint_rebind_propagation_grace_time: 15
watchdog profile: local-network
http support: enabled
upgrade mode: disabled
cm_session_timeout_minutes: 15
cnm_https_port: 9443
cnm_http_port: 8080
cm_port: 8443 -
DB:
client_buffer_limits: 1GB (hard limit)/512MB (soft limit) in 30 seconds
slave_buffer: auto
pubsub_buffer_limits: 32MB (hard limit)/8MB (soft limit) in 60 seconds
proxy_client_buffer_limits: 0KB (hard limit)/0KB (soft limit) in 0 seconds
proxy_slave_buffer_limits: 1GB (hard limit)/512MB (soft limit) in 60 seconds
proxy_pubsub_buffer_limits: 32MB (hard limit)/8MB (soft limit) in 60 seconds
repl_backlog: 1MB (1048576 bytes)
repl_timeout: 360 seconds
repl_diskless: default
master_persistence: disabled
maxclients: 10000
conns: 5
conns_type: per-thread
sched_policy: cmp
max_aof_file_size: 300GB
max_aof_load_time: 3600 seconds
dedicated_replicaof_threads: 5
max_client_pipeline: 200
max_shard_pipeline: 2000
max_connections: 0
oss_cluster: disabled
oss_cluster_api_preferred_ip_type: internal
gradual_src_mode: disabled
gradual_src_max_sources: 1
gradual_sync_mode: auto
gradual_sync_max_shards_per_source: 1
slave_ha: enabled
mkms: True
oss_sharding: False
shard_key_regex: [’.\{(?.)\}.’, '(?.)’]
-
-
Scene 1:
- Node 1: Master node holding (Master Shard 1, Slave Shard 2)
- Node 2: Slave node holding (Master Shard 2, Slave Shard 3)
- Node 3: Slave node holding (Master Shard 3, Slave Shard 1)
-
Action1 : I disconnected node 1 → Slave will be promoted to be Master → Scene 2
-
Scene 2: After slave_ha_grace_period
- Node 2: Master node holding (Master Shard 2, Slave Shard 3, Slave Shard 1)
- Node 3: Slave node holding (Master Shard 3, Slave Shard 2, Master Shard 1)
-
Action2: I reconnected Node 1 → Node 1 will hold no Shard. Then disconnected Node 2 → Scene 3
-
Scene 3: After slave_ha_grace_period
- Node 3: Slave node holding (Master Shard 3, Master Shard 2, Master Shard 1)
My question is: Why can Redis not HA to Node 1 when disconnecting Node 2 at Scene 3?