ivankelly commented on pull request #11627:
URL: https://github.com/apache/pulsar/pull/11627#issuecomment-896815950


   @rdhabalia 
   There are some similarities between CommandProducer, CommandSubscribe and 
CommandLookup in that they are all control plane operations, but there are also 
important differences. 
   CommandLookup has no side effects. Multiple CommandLookup requests will not 
interfere with each other, while multiple CommandProducer/CommandSubscribe 
will. 
   CommandLookup can be served by any broker. CommandProducer/CommandSubscribe 
can only be served by the owner of the topic.
   With timeouts, you can have how long I'm willing to wait for a node to 
respond, or how long I'm willing to wait for a operation to complete. For 
producer/subscribe, these are the same, as any retry would hit the same node 
and one of the requests would necessarily have to fail. This is not the case 
for partition metadata/lookup, as another node can be tried.
   We even already consider lookup type operations to be different in the code, 
by the fact that we have a http lookup service and a binary lookup service.
   
   There is very little complexity added to separate the timeout. The 
complexity I think you are referring to is recordkeeping so that if an 
exception is thrown, it contains information about previous failures, not just 
the last failure. Business logic never actually looks at the List of exceptions.
   The change for the new timeout is just adding the config and changing 2-3 
lines.
   


-- 
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]


Reply via email to