Reduce the Server Load of Summary Synchronization
Overview¶
When you run "Summary synchronization" on a table that contains a large number of records, the database may be under a high load and the process may take a long time. This feature divides the summary synchronization process into chunks of a fixed number of records and adds a wait time after each chunk, which keeps the load on the database down.
Configure it in the SummarySync.json parameter file. By default there is no wait (SynchronizeSummariesDelayMilliseconds is 0), so the behavior of existing environments does not change.
Cautions¶
- The larger the wait time (SynchronizeSummariesDelayMilliseconds), the longer it takes to complete the whole synchronization process, and the higher the risk of an HTTP timeout. Check that the setting is consistent with the timeout settings of the reverse proxy and load balancer.
- To apply changes to the parameter file, you need to restart the application.
Limitations¶
- This setting applies only to the summary synchronization process. It does not apply to other processes such as file import, bulk delete, and bulk update.
- The best setting values depend on the performance and load of the server. The setting examples below are only a guide.
Relationship with the Function That Suppresses Concurrent Execution of Bulk Operations on Large Amounts of Data¶
If you configure this feature with the function that suppresses concurrent execution of bulk operations on large amounts of data enabled, the time until summary synchronization finishes (the lock time) is extended automatically.
Operation Procedure¶
Setting Example 1: Enable Chunking Only (No Wait)¶
When the function that suppresses concurrent execution is enabled, setting SynchronizeSummariesDelayChunkSize extends the lock time automatically until the summary synchronization process finishes.
The lock time is extended every 100 records, and the lock is held until the summary synchronization process finishes.
Setting Example 2: Light Load Reduction¶
Use this setting to reduce the database load while keeping the increase in processing time to a minimum.
A wait of 50 milliseconds is inserted every 100 records. Processing 10,000 records takes about 5 seconds longer.
Setting Example 3: Moderate Load Reduction¶
Use this setting to reduce the database load moderately.
A wait of 200 milliseconds is inserted every 100 records. Processing 10,000 records takes about 20 seconds longer.
Setting Example 4: Strong Load Reduction¶
Use this setting to reduce the database load as much as possible.
Be aware of the risk of an HTTP timeout.
A wait of 500 milliseconds is inserted every 50 records. Processing 10,000 records takes about 100 seconds longer.
Recommended Settings by Number of Records¶
The following is only a guide. Adjust the values according to the actual performance and load of your server.
| Number of records | SynchronizeSummariesDelayChunkSize | SynchronizeSummariesDelayMilliseconds |
|---|---|---|
| Fewer than 1,000 | 100 | 0 |
| 10,000 to 100,000 | 500 | 1000 |
| More than 100,000 | 1000 | 2000 |
Supported Versions¶
| Supported versions | Body |
|---|---|
| 1.5.5.0 and later | Added the feature |