View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006789 | SymmetricDS Pro | Improvement | public | 2025-03-28 18:50 | 2025-03-28 18:50 |
Reporter | pmarzullo | Assigned To | |||
Priority | normal | ||||
Status | new | Resolution | open | ||
Product Version | 3.15.0 | ||||
Summary | 0006789: Protect the system when the user has heartbeat.update.node.with.batch.status parameter set | ||||
Description | If the user has the heartbeat.update.node.with.batch.status parameter set to true, then the sym_node table is updated with statistics during the run of the heartbeat job. If that parameter is set to true, and the interval between the run of the heartbeat job is small (we had a customer set it to 30 seconds), all nodes would update sym_node every 30 seconds and these updates would be synched. When the batch arrives and is applied, the cache of the nodes (sym_node table) is flushed. If you have the cache flushed every 30 seconds in a 2 node synchronization scenario, it would cause stress on the database because the cache would have to be filled out every 30 seconds. If you have the cache flushed every 30 seconds in a 1000 node synchronization scenario, you would never get any work done because you have 1000 nodes sending in a sym_node update every 30 seconds. More than stress happens in this situation. We should provide an insight when the parameter is set and the interval for the heartbeat job is small warning the user about this situation. We should also consider slowing down the flushing of the cache since there is only one place that flushes the cache. We could remember the last time that the cache was flushed and not flush the cache on every request, but allow some time to pass before allowing a request to flush the cache. | ||||
Tags | monitoring | ||||