Configuring HCL Detect's Runtime Environment
The HCL
Detect runtime environment can
be configured based on the specific performance and reliability requirements of a
customer deployment. These runtime environment settings are specified in the following
file: $HCL_HOME/etc/runtime_environment.json
.
An important runtime configuration is the persistence behavior of PinPoint, which is the Redis-based distributed in-memory store used by Detect to maintain subscriber profiles. As a primary mechanism, PinPoint relies on append-only logging to persist its data. As an additional mechanism, it also periodically checkpoints its data to disk.
The checkpointing can be configured using the
pinPoint|server|checkpointConfiguration|schedules
setting inside
the runtime_environment.json
file. The default checkpoint configuration
is given as follows:
"schedules":
[
{
"operationCount": 1,
"timeInSeconds": 86400
},
{
"operationCount": 1000000,
"timeInSeconds": 3600
}
]
This configuration indicates that the state is checkpointed every hour if at least 1 million profiles are updated since the last checkpoint, and every day if at least one profile is updated since the last checkpoint. More schedules can be added or the existing schedules can be updated, as needed. Since the append-only logging already provides persistence, specifying frequent checkpointing is unnecessary and can adversely affect the CPU usage of the PinPoint servers.