-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[service-bus] Track2 - remove receiver and sender caching from track 1 #8143
Comments
CC: @ramya-rao-a who had the history on this particular bit of behavior. |
Speaking of caching, in Track 1, all clients for the same queue/topic/subscription used the same $management link. This was very intentional. Where as in Track 2, each sender, receiver and rule manager gets to have their own $management link. We need to look into what performance hit (if any) we see with this approach. |
Added to the list at the top. |
Also, now that we dont have intermediate clients for Queue, Subscription and Topics, we don't really need the |
#9710 is the first step towards this goal |
We had some other little issues - the bulk is taken care of with @ramya-rao-a 's PR and then the rest is basically mopped up with our unification work. Once those PRs are closed I think we can consider this one done (all of them are in the issue description now) |
All PRs have been merged. |
Track 1 had a singleton architecture that would ensure only a single receiver and sender were created per entity.
This caching seems to have little benefit compared to just giving the user control over managing the lifetime of senders and receivers.
Oddly enough this is related to #7936, which spurred all of this investigation and helped uncover this caching.
Some items to consider:
Receiver gets initialized - the
context.streamingReceiver
andcontext.batchingReceiver
assignments in _init() are how the Receiver itself can properly handle locking when
doing open()/close(). This is less of a big deal when we start auto-initializing Receivers after
they're created by ServiceBusClient.
(will be fixed with [Service Bus] Remove ClientEntityContext #9710 and [service-bus] init() refactor to propagate abortSignal support. #10578 which unifies the init() logic between all the link entities)
subscribe
#9849)The text was updated successfully, but these errors were encountered: