[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-37?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13619701#comment-13619701
 ] 

Ivan Kelly commented on BOOKKEEPER-37:
--------------------------------------

I think this will work. It means maintaining a per topic counter on the client 
side. We'd have to make sure these get cleaned up at some point to avoid the 
number of topic counters maintained from growing too large. I'm not sure if 
it's nice to spread this logic over the client and server though. It should be 
possible for the client to behave correctly without relying on the server.
                
> Ordering of published messages is not preserved when doing asynchronous 
> publication
> -----------------------------------------------------------------------------------
>
>                 Key: BOOKKEEPER-37
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-37
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: hedwig-client
>    Affects Versions: 4.0.0
>            Reporter: Matthieu Morel
>            Assignee: Matthieu Morel
>            Priority: Blocker
>             Fix For: 4.3.0
>
>         Attachments: BOOKKEEPER-37.patch, ClientMessageOrderingTest.java
>
>
> Symptoms: 
> - if a publisher sends messages asynchronously through the asyncPublish 
> method, the ordering is not preserved in Hedwig
> Example: 
> - a publisher sends M1, M2, M3 by invoking the asyncPublish method
> The Hedwig broker may see these messages in the following order: M2, M1, M3
> A subscriber will also see messages as M2, M1, M3
> How to reproduce:
> - see attached test case: synchronous publishing preserves ordering, but 
> asynchronous publishing does not.
> The cause of the problem:
> - my understanding is that this is due to asynchronous creation of multiple 
> netty channels on the publisher side. There is no ordering since messages are 
> not sent through the same channel. 
> Suggested solution:
> Some buffering on the publisher side would allow to reuse the same channel 
> and maintain ordering.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to