Stig Rohde Døssing created STORM-2648:
-----------------------------------------

             Summary: Kafka spout can't show acks/fails and complete latency 
when auto commit is enabled
                 Key: STORM-2648
                 URL: https://issues.apache.org/jira/browse/STORM-2648
             Project: Apache Storm
          Issue Type: New Feature
          Components: storm-kafka-client
    Affects Versions: 2.0.0, 1.1.0, 1.2.0
            Reporter: Stig Rohde Døssing
            Priority: Minor
             Fix For: 1.1.1


The storm-kafka-client spout currently emits tuples with no message ids if auto 
commit is enabled. This causes the ack/fail/complete latency counters in Storm 
UI to be 0. In some cases this is desirable because the user may not care, and 
doesn't want the overhead of Storm tracking tuples. [~avermeerbergen] expressed 
a desire to be able to use auto commit without these counters being disabled, 
presumably to monitor topology performance(?)

In order to support having acks/fails and complete latency when using auto 
commit, we need to make the spout always emit tuples with anchors. Since the 
spout doesn't care about acks or fails when auto commit is enabled, we should 
make the spout ack/fail methods return immediately if auto commit is enabled.

I think we don't lose much by switching to this approach. Users that want the 
statistics in Storm UI can enable auto commit and leave topology ackers at some 
non-zero number. Users that don't care and don't want the overhead of having 
Storm track the tuples can set topology ackers to 0, which should make the 
spout behave a lot like it does now. 

The only use case I can think of where this won't work is if someone with 
multiple spouts in a topology needs one to be auto commit and one to be 
at-least-once, and they can't live with the overhead of tuple tracking for the 
auto commit spout. If this is a real use case, it can be worked around with an 
extra configuration parameter to switch whether tuples are emitted unanchored, 
but I'd rather keep it simple for now.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to