You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ma...@apache.org on 2026/09/19 20:11:25 UTC

(nifi) branch main updated: NIFI-16370 Use non-fair locking in SwappablePriorityQueue (#11698)

This is an automated email from the ASF dual-hosted git repository.

markap14 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/main by this push:
     new 6d00883742f NIFI-16370 Use non-fair locking in SwappablePriorityQueue (#11698)
6d00883742f is described below

commit 6d00883742fa18847a14754cee8994ec487fd534
Author: Joe Witt <jo...@apache.org>
AuthorDate: Sat Sep 19 13:11:18 2026 -0700

    NIFI-16370 Use non-fair locking in SwappablePriorityQueue (#11698)
    
    Co-authored-by: Cursor <cu...@cursor.com>
---
 .../java/org/apache/nifi/controller/queue/SwappablePriorityQueue.java  | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/SwappablePriorityQueue.java b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/SwappablePriorityQueue.java
index 57f18cc7640..dee5c139bf5 100644
--- a/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/SwappablePriorityQueue.java
+++ b/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/queue/SwappablePriorityQueue.java
@@ -107,7 +107,8 @@ public class SwappablePriorityQueue {
         this.dropAction = dropAction;
         this.swapPartitionName = swapPartitionName;
 
-        final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(true);
+        // FlowFile order is determined by QueuePrioritizer, so this lock does not need fair ordering.
+        final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
         readLock = new TimedLock(lock.readLock(), flowFileQueue.getIdentifier() + " Read Lock", 100);
         writeLock = new TimedLock(lock.writeLock(), flowFileQueue.getIdentifier() + " Write Lock", 100);
     }