Posted: 24 Mar 2017 16:25 EDT Last activity: 28 Mar 2017 6:30 EDT
Need Information on Caches, SystemPulse
Can someone please clarify the below?
In a multimode environment, if a change is made on one node will be automatically updated on other nodes by System Pulse. I am wondering if any PRPC Cache can be updated on its own on other nodes? I mean without the help of System Pulse.
Is there any documentation in PDN on more about the difference between Database and Cluster based System Pulse?
Thanks in advance!
***Updated by moderator: Lochan to add Categories***
The System Pulse is important in a multi-node environment, since rule changes saved to the database and updated in local caches on one node need to be reflected on all nodes. Each node has various caches (ABA, VTable, ClassMap) that are required to be consistent throughout the cluster. The System Pulse is designed to ensure that these caches maintain consistency (eventually).
Originally, the database was the communication mechanism used. As rules were committed to the database, the System Pulse table (pr_sys_updatescache) was also updated to reflect which cached rules should be invalidated. A System Pulse Agent was run every 2 minutes that read from the pulse table in batches and updated the local caches to ensure periodic consistency. With this model, rule changes could take up to 2 minutes to be reflected on all nodes, but as long as the pulse was working correctly, they were eventually reflected.
When clustering (Hazelcast and Ignite) was introduced, the updates began to occur in near real-time. Instead of saving to the database during commits, update messages are gathered and broadcast via a cluster-wide Topic post-commit. Listeners on each node receive the messages (in order) and process them.