Horizontal scaling best practices

This section contains best practices for horizontal scaling.

Horizontal scaling setup

The optimal minimal configuration is one primary and at least two secondary servers.

Scheduling

Use the Smart Notification Scheduler to minimize database processing overload. Schedule jobs evenly throughout the time window you want them to run. Run heavier processing jobs at night when online users are at a minimum.

If at all possible do not schedule jobs to run simultaneously. If this is not possible, then schedule no more than two jobs to run simultaneously.

All scheduled jobs run on a secondary server. All manually-run jobs run on the primary server.

Although processing can continue when a secondary server is down this should be kept to a minimum. Unless manually edited in the Scheduler, jobs that are scheduled to run when the secondary server is down run on the primary server.

InfoSet Scheduling

If the processing of an InfoSet or alert is dependent on the successful updating of an InfoSet before its processing, scheduled time between the update job and processing job.

When scheduling an InfoSet in a primary or secondary server environment, use the same secondary server to update and process the InfoSet.

If you are using a .csv file as a data source for more than one InfoSet, schedule the InfoSet updates for different times.