Smile CDR v2024.08.PRE
On this page:

26.1.1Migration from 2019.11 (and Below) to 2020.02


In Smile CDR 2020.02.R01, the clustering mechanism for Smile CDR was completely redesigned. This was done in order to simplify clustering and in particular to make it easier to support Docker-based clustering mechanisms such as Kubernetes.

On this page, we will refer to this new clustering design as 2020.02 clustering, and the previous design as 2019.11 clustering.

The primary change to be aware of in the 2020.02 clustering is that the concept of Master Nodes and Clone Nodes has been completely removed. It is still possible to design clusters that perform functionally identically to 2019.11 clustering, but you will no longer need to explicitly designate one of your nodes as a Master and the rest as Clone nodes.

Instead you will create one or more nodes, each having a set of modules. If you wish to scale any of these nodes up, you will simply start more Smile CDR processes with the same Node ID and Cluster Manager module configuration.

The following table shows key concepts from the old and new clustering mechanisms.

2019.11 Cluster Concept 2020.02 Equivalent
Master Node Node + 1st Node Process
Clone Node Node + subsequent Node Processes

26.1.2Migrating Existing Clusters


The good news is that migrating existing clusters is very easy. There are two steps to follow: 1: Remove Clone Node Designation

Any existing Clone Nodes should have the following two properties in the Node Configuration Properties File. In this example, we have a clone node named Clone which is a clone of the Master node Master.

To migrate this file to the 2020.02 cluster design, these two entries in the Node Configuration Properties File would be replaced with the following single entry.

In other words, what was previously the node.clone value should now be the value (meaning that all processes for a given node will have the same ID).

Note that in order to help with migration, if Smile CDR detects the deprecated node.clone property in the file, it will automatically use this as the value. This means that technically this step can be skipped, although we do still recommend migrating as this behavior may be removed in a future release.