For customers with many users and/or groups adding node to cluster will significantly degrade performance for some time.
Until version 6.4 EagerOfBizGroupCache and EagerOfBizUserCache used RMIBootstrapCacheLoader to preload their values from different node in the cluster.
This loader was making sure that users and groups were preloaded before starting JIRA node in the cluster.
In version 7.0+ all users and groups are fetched from the database on startup, because those caches replicate puts via value copy all those operations are replicated to all other nodes. This causes significant traffic on cache replication RMI and as a result will slow down entire cluster.
Steps to replicate
- Create cluster with 20k users and 20k groups.
- Start first node in the cluster
- Execute traffic to the cluster
- Start second node.
Request should be significantly slower for some period of time. The problem will be more significant whit increased number of nodes.