You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by "Michael Moser (JIRA)" <ji...@apache.org> on 2015/10/29 16:50:27 UTC

[jira] [Created] (NIFI-1085) WebClusterManager starves immutable API requests under heavy load conditions

Michael Moser created NIFI-1085:
-----------------------------------

             Summary: WebClusterManager starves immutable API requests under heavy load conditions
                 Key: NIFI-1085
                 URL: https://issues.apache.org/jira/browse/NIFI-1085
             Project: Apache NiFi
          Issue Type: Improvement
          Components: Core Framework
    Affects Versions: 0.3.0
            Reporter: Michael Moser


With a 6 node cluster with thousands of components on the graph, we noticed that the ReentrantReadWriteLock in WebClusterManager can starve NiFi Web Server threads that are waiting on the read lock.

Thread dumps shows the HeartbeatMonitoringTimerTask thread holding the write lock while many Web Server threads are parked waiting on the read lock.

Modify the ReentrantReadWriteLock to operate in fair mode (to give the lock to threads waiting the longest, such as those wanting the read lock).

Modify the HearbeatMonitoringTimerTask timer to not be scheduleAtFixedRate() but instead use schedule() to execute it less often if garbage collection blocks it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)