Best Practices
This section contains best practices and recipes for various RIOT-X use cases.
System Requirements
Operating System
RIOT-X works on all major operating systems but has been tested at scale on Linux X86 64-bit platforms.
CPU
CPU used by RIOT-X varies greatly dependending on specific replication settings and data structures at play.
You can monitor CPU usage with the supplied Grafana dashboard (process_cpu_usage
metric).
Memory
Memory requirements for RIOT-X itself are very light. Being JVM-based the default initial heap size is dependent on available system memory and on the operating system.
If you have very intensive replication requirements you will need to increase the JVM heap size.
To estimate the worst case scenario for memory requirements you can use this formula: keySize * batchSize * threads
where:
keySize
-
average key size as reported by the
MEMORY USAGE
command batchSize
-
number of items to read in each batch
threads
-
Number of threads that process batches concurrently
Network
RIOT-X replication is essentially a network bridge between the source and target Redis databases so underlying network is crucial for the overall throughput and a 10 Gigabit network is the minimum recommended. Network latency will also have an impact on replication (and other RIOT-X uses) performance. Make sure the host running RIOT-X offers minimal latency to both the source and target databases. You can test the latency using the ping command].