thetumbled commented on issue #19629: URL: https://github.com/apache/pulsar/issues/19629#issuecomment-1451186811
> > > I don't quite understand the impact of repeated commits? Does it duplicate the message? > > > > > > yes, repeated commits will result into exceptions. As client receive exceptions when committing, it will resend messages in a new transaction because it think that the old transaction is committed failed. > > I am not sure it's a good use case. > > let's see this situation : > > 1. consumer one message > 2. produce one message with transactionOne > 3. consumer ack with transactionOne > 4. commit this transaction > 5. tc handle this commit request and then change the status to committed > 6. tc unload, and don't send the response to client > > how does the client do at this time? produce again? > > your case is used for local transaction link (sql transaction) ? same as rocketMq? if TC do not send the response to client, client should retry to commit the transaction. if client can't know whether the transaction is committed successfully, how can we ensure exactly-once semantics? I have redeveloped the `PerformanceProducer` to support for checking whether the exactly-once semantics is guaranteed. And in my experiment, unloading topics will not result into message duplication, but restarting broker will. I can share my experiment results if you want. -- 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. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
