Configure Intelligent Replication in Confluent Private Cloud

This topic describes the configuration options available for tuning Intelligent Replication performance in Confluent Private Cloud.

Configuration properties

The following configurations are available for tuning Intelligent Replication:

Property Type Default Value Description
confluent.intelligent.replication.push.max.threads INT 4 Determines the maximum number of threads to be used for push replication.
confluent.intelligent.replication.push.threads.per.remote.broker INT 1 Determines the number of threads replicating to a single peer broker. Can be between 1 and the setting for confluent.intelligent.replication.push.max.threads.
confluent.intelligent.replication.push.max.memory.buffer.bytes LONG 209715200 (200 MB) The maximum amount of memory used by push replication for buffering. Currently used solely by the records buffer for intelligent replication.

Review configuration guidelines

Thread Configuration
  • Max Threads: The confluent.intelligent.replication.push.max.threads setting controls the total thread pool size for push replication across all remote brokers.
  • Threads Per Broker: The confluent.intelligent.replication.push.threads.per.remote.broker setting determines how many threads are dedicated to each remote broker.
  • Relationship: The threads per broker setting cannot exceed the max threads setting.
Memory Configuration
  • Buffer Size: The confluent.intelligent.replication.push.max.memory.buffer.bytes setting controls memory allocation for push replication buffering.
  • Monitoring: Use the PushManagerMemoryBytesUsed metric to monitor actual memory usage against this limit.

Follow tuning recommendations

For High-Throughput Workloads
  • Increase confluent.intelligent.replication.push.max.threads to handle more concurrent replication operations (consider 6-8 threads for very high throughput).
  • Consider increasing confluent.intelligent.replication.push.max.memory.buffer.bytes if memory pressure is observed (up to 400-500MB for high throughput scenarios).
  • Monitor PushManagerMemoryBytesUsed to ensure you’re not approaching the buffer limit
For High-Partition Count Clusters
  • Balance confluent.intelligent.replication.push.threads.per.remote.broker based on the number of remote brokers in your cluster.
  • With many brokers, keep threads per broker low (1-2) but increase max threads.
  • Monitor PushEventQueueProcessingTimeMs to ensure processing keeps up with demand.
  • Watch FollowersAwaitingPushTransition to identify if partitions are struggling to transition to push mode.
For Resource-Constrained Environments
  • Keep default thread settings (4 max threads, 1 per broker) or reduce if CPU usage is a concern.
  • Consider reducing confluent.intelligent.replication.push.max.memory.buffer.bytes to 100MB or less.
  • Monitor PushManagerMemoryBytesUsed to ensure memory usage stays within acceptable limits.
  • Watch for frequent transitions between push and pull modes, which may indicate resource constraints.
Threading Considerations
  • Total threads = min(max.threads, num_brokers * threads.per.remote.broker)
  • Each thread handles multiple partitions in a round-robin fashion
  • More threads can improve parallelism but may increase CPU overhead

Review configuration examples

High-Performance Configuration

confluent.intelligent.replication.enable=true
confluent.intelligent.replication.push.max.threads=8
confluent.intelligent.replication.push.threads.per.remote.broker=2
confluent.intelligent.replication.push.max.memory.buffer.bytes=419430400

Conservative Configuration

confluent.intelligent.replication.enable=true
confluent.intelligent.replication.push.max.threads=2
confluent.intelligent.replication.push.threads.per.remote.broker=1
confluent.intelligent.replication.push.max.memory.buffer.bytes=104857600

Apply configuration changes

  1. Add the configuration properties to the configOverrides.server section of your Kafka custom resource.
  2. Restart your brokers with a cluster roll to apply the changes.
  3. Monitor the relevant JMX metrics to verify the configuration is working as expected.

For more information about monitoring, see Monitor Intelligent Replication in Confluent Private Cloud.