Optimizing CLDB Tables

Explains how to enable the CLDB tunable for optimizing CLDB tables.

Data Fabric contains a CLDB tunable called cldb.feature.optimize.volume.kvstores. Enabling this tunable automatically optimizes the B-Tree of CLDB tables with a large number of volumes and read-write containers, and results in enhanced CLDB performance.

Prerequisites for enabling this feature

Before enabling this feature, ensure that all CLDB nodes are at the current version. Also, enable all features that were present in the previous version of data-fabric, using the maprcli cluster feature enable command.

Enabling and Activating Optimization

To enable and activate CLDB optimization:
  1. Run:
    maprcli cluster feature enable -name cldb.feature.optimize.volume.kvstores
  2. Restart the CLDB primary instance and wait till the instance comes to the MASTER_READ_WRITE state.
    TIP
    To check the CLDB state, run maprcli dump cldbstate. For example:
    root@qa108-181 ~]# maprcli dump cldbstate
    mode               ip             state                      stateDuration  desc
    SLAVE_READ_ONLY    10.10.108.181  CLDB_IS_SLAVE_READ_ONLY    40:10:11       cldb running as slave
    SLAVE_READ_ONLY    10.10.108.182  CLDB_IS_SLAVE_READ_ONLY    40:11:42       cldb running as slave
    MASTER_READ_WRITE  10.10.108.183  CLDB_IS_MASTER_READ_WRITE  40:11:38      kvstore tables loading
                                                                                complete,
                                                                                cldb running as master
  3. Restart the secondary CLDB nodes.
NOTE
To know whether the optimization is complete, check if both cldb.string.table.conversion.done and cldb.spcontainersmap.table.conversion.done are both set to 1.
For example:
 maprcli config load -json | grep -i cldb.string.table.conversion.done
          "cldb.string.table.conversion.done":"1",
 maprcli config load -json | grep -i cldb.spcontainersmap.table.conversion.done
          "cldb.spcontainersmap.table.conversion.done":"1",
The CLDB does some part of the optimization on every CLDB start, hence it may take some time to optimize the SP Container Map Tables (cldb.spcontainersmap.table.conversion.done) depending on the cluster size.