Resource-based automatic configurations

Last updated 18, Apr 2024

Purpose

This document provides insight into the automatic actions that Redis Enterprise executes under different load scenarios.

No vertical scaling is available

We don't increase/decrease the shard quantity based on load thresholds.

Automatic shards migration

Redis Enterprise automatically relocates shards to other nodes that have more memory. The behavior is configurable using:

redis_migrate_node_threshold    Memory (in MBs) needed to migrate a database between nodes
redis_migrate_node_threshold_percent    Memory (in percentage) needed to migrate a database between nodes

By default, the redis_migrate_node_threshold_percent threshold is 4%. Open questions:

  • How many shards are relocated?
  • How do we choose shards?
  • How do we choose target nodes?

DMC proxy autoscaling

In addition to automatic shards migration, Redis Enterprise offers additional capabilities. The DMC proxy can automatically scale the number of threads, starting from a default number up to a maximum and according to configurable criteria (threshold and duration). Read more in the documentation

Exceptions to dense shard placement

As indicated in the documentation:

dense: Shards will be placed on the same node as long as it has resources

If a node cannot host all the shards, one or more shards can spill over to another node due to resource insufficiency. Still, the placement policy doesn't change: there is an attempt to keep as many shards as possible on the same node. Always keeping the limit, hardcoded, of 10 shards per CPU.