You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@storm.apache.org by "tangkailin (JIRA)" <ji...@apache.org> on 2017/06/17 03:41:00 UTC
[jira] [Created] (STORM-2557) A bug in DisruptorQueue causing
severe underestimation of queue arrival rates
tangkailin created STORM-2557:
---------------------------------
Summary: A bug in DisruptorQueue causing severe underestimation of queue arrival rates
Key: STORM-2557
URL: https://issues.apache.org/jira/browse/STORM-2557
Project: Apache Storm
Issue Type: Bug
Reporter: tangkailin
Recently, we are tuning the performance of our topology and deploying some theoretical performance models that heavily rely on the metrics of query arrival rates. We found a bug in DisruptorQueue that leads to severe underestimation to the queue arrival rates. After further investigation, we finally found that in the current implementation of DisruptorQueue, the arrival rates are actually measured as the number of batches of tuples rather than the actual number of tuples, resulting in significant underestimation of the arrival rates.
To be more specific, in DisruptorQueue.publishDirectSingle() and DisruptorQueue.publishDirect() functions, objects containing tuples are published to the buffer and the metrics are notified by calling _metric.notifyArrivals(1). This works fine when the object is simply a wrapper of a single tuple. However, the object could also be an instance of ArrayList<AddressedTuple> or HashMap<Integer, ArrayList<TaskMessage>>. In such case, we should get the actual number of tuples in the object and notify the _metrics with the right value.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)