Re: In qpidd what's the maximum number of subscriptions to a queue node

2015-07-11 Thread Steve Huston
Hi Frase,

You’ve done a good job at guessing the limits - I’ll let Gordon educate us on 
the rest.

The threading model, though - definitely not per connection. There’s a pool of 
threads that can handle I/O - by default there are (number of cores) + 1, but 
you can change it by command line option.

The I/O model is proactive (as opposed to reactive) and those threads handle 
what ever handles get I/O completions. Yes, at some point, it gets saturated 
but it’s driven by the amount of I/O going on concurrently, not by the sheer 
number of connections.

So go for it - let us know how high you (well, the number of clients) can get 
:-)

-Steve

> On Jul 11, 2015, at 12:52 PM, Fraser Adams  
> wrote:
> 
> Hey all,
> Suppose I have a queue on qpidd, I know that I can have multiple consumer 
> clients subscribing to that queue node - I've used that several times to 
> provide a means of scaling out consumers, so if I have "n" consumers each 
> consumer receives roughly 1/n of the messages published onto the queue.
> 
> I've never really pushed the limits of this and have tended to only have 10 - 
> 20 consumers, but it got me wondering:
> a) What's the maximum theoretical limit for the number of consumers on such a 
> shared resource
> b) what's the maximum practical limit - I'm not sure how the qpidd threading 
> model works (I *think* it's per connection), so I'm wondering at what point 
> we get into a position where the "stampeding herds" lock contention problem 
> kicks in.
> 
> I know I should probably just stand up a test and give it a whirl, but 
> figured I'd ask first :-)
> 
> I *think* that the answer to a) is that the theoretical limit is the maximum 
> number of link handles and is a 32 bit unsigned int so would be 4294967295, 
> though I suspect something else would get a bit sad before that limit is 
> reached.
> 
> 
> On point b. has anyone (most likely Gordon) explored the scaling limits of 
> qpidd? Obviously when Qpid started out servers tended to have something 
> between one and four cores, but now of course Moore's law tends to be 
> followed by increasing the number of cores, so I'm curious as to how qpidd 
> scales. I'm thinking of things like ActiveMQ Apollo where as I understand it 
> it uses hawt-dispatch (which I think is the Java equivalent of Apple's Grand 
> Central Dispatch pattern) and I know with Proton there has been a lot of work 
> migrating to a more reactive pattern, which makes me wonder if that's an 
> acknowledgement of any potential scaling limits in qpidd at present? If there 
> are known limits is there a roadmap to change the threading model. I'm mostly 
> just curious at the moment, but I guess it's a question that's going to crop 
> up more and more.
> 
> Cheers,
> Frase
> 
> -
> To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
> For additional commands, e-mail: users-h...@qpid.apache.org
> 



In qpidd what's the maximum number of subscriptions to a queue node

2015-07-11 Thread Fraser Adams

Hey all,
Suppose I have a queue on qpidd, I know that I can have multiple 
consumer clients subscribing to that queue node - I've used that several 
times to provide a means of scaling out consumers, so if I have "n" 
consumers each consumer receives roughly 1/n of the messages published 
onto the queue.


I've never really pushed the limits of this and have tended to only have 
10 - 20 consumers, but it got me wondering:
a) What's the maximum theoretical limit for the number of consumers on 
such a shared resource
b) what's the maximum practical limit - I'm not sure how the qpidd 
threading model works (I *think* it's per connection), so I'm wondering 
at what point we get into a position where the "stampeding herds" lock 
contention problem kicks in.


I know I should probably just stand up a test and give it a whirl, but 
figured I'd ask first :-)


I *think* that the answer to a) is that the theoretical limit is the 
maximum number of link handles and is a 32 bit unsigned int so would be 
4294967295, though I suspect something else would get a bit sad before 
that limit is reached.



On point b. has anyone (most likely Gordon) explored the scaling limits 
of qpidd? Obviously when Qpid started out servers tended to have 
something between one and four cores, but now of course Moore's law 
tends to be followed by increasing the number of cores, so I'm curious 
as to how qpidd scales. I'm thinking of things like ActiveMQ Apollo 
where as I understand it it uses hawt-dispatch (which I think is the 
Java equivalent of Apple's Grand Central Dispatch pattern) and I know 
with Proton there has been a lot of work migrating to a more reactive 
pattern, which makes me wonder if that's an acknowledgement of any 
potential scaling limits in qpidd at present? If there are known limits 
is there a roadmap to change the threading model. I'm mostly just 
curious at the moment, but I guess it's a question that's going to crop 
up more and more.


Cheers,
Frase

-
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org