wy96f commented on a change in pull request #2750: ARTEMIS-2399 Improve 
performance when there are a lot of subscribers
URL: https://github.com/apache/activemq-artemis/pull/2750#discussion_r304187715
 
 

 ##########
 File path: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
 ##########
 @@ -324,13 +325,7 @@ public String debug() {
          out.println("consumer: " + holder.consumer.debug());
       }
 
-      for (MessageReference reference : intermediateMessageReferences) {
-         out.print("Intermediate reference:" + reference);
-      }
-
-      if (intermediateMessageReferences.isEmpty()) {
-         out.println("No intermediate references");
-      }
+      out.println("Intermediate reference size is " + 
intermediateMessageReferences.size());
 
 Review comment:
   MpscUnboundedArrayQueue might perform well in journal mode where there are 
many producers and one consumer. The main reason I used MpscUnboundedArrayQueue 
is I need to calculate size of messages both in intermediateMessageReferences 
and messageReferences, i.e.`intermediateMessageReferences.size() + 
messageReferences.size() < MAX_DEPAGE_NUM` in QueueImpl::needsDepage. However 
time complexity of size() for ConcurrentLinkedQueue is O(n), so I replaced it 
with MpscUnboundedArrayQueue(I did't find other queues fit for our scenario). I 
didn't think about issues like kafraf, debug by introducing this.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to