Github user DomenicPuzio commented on the issue:

    https://github.com/apache/incubator-metron/pull/359
  
    Here's what I was seeing:
    
    We were running only one Enrichment. So our EnrichmentSplitter sends 
_originalTuple_ to the Join and _originalTuple_ to the Enrichment. Enrichment 
then sends _enrichedTuple_ to Join. Join knows that there are two streams, so 
it waits for two tuples to join together.
    
    When _originalTuple_ comes in first, we put it in the cache and do nothing. 
When _enrichedTuple_ comes in, we see that it has its mate in the cache, we 
join _originalTuple_ and _enrichedTuple_, and then we ack **the current 
tuple**, in this case, _enrichedTuple_. This means that we have never acked 
_originalTuple_, which caused Storm to re-send that tuple unnecessarily from 
the EnrichmentSplitter.
    
    Since none of the cached messages are ever acked, Storm does not know that 
they have been correctly handled. Adding in the ack statement completely 
resolved this for me.
    
    Does this clarify?
    
    And @dlyle65535, I'm not sure on the best way to do that. Now that I've 
explained the problem, can you provide some guidance on what you'd like to see?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to