Mark,

On 3/23/14, 6:12 PM, Mark Thomas wrote:
> On 23/03/2014 22:07, Christopher Schultz wrote:
>> Mark,
> 
>> On 2/27/14, 12:56 PM, Christopher Schultz wrote:
>>> Mark,
>>>
>>> On 2/25/14, 3:31 AM, Mark Thomas wrote:
>>>> On 25/02/2014 06:03, Christopher Schultz wrote:
>>>>> All,
>>>>
>>>>> I'm looking at the comparison table at the bottom of the
>>>>> HTTP connectors page, and I have a few questions about it.
>>>>
>>>>> First, what does "Polling size" mean?
>>>>
>>>> Maximum number of connections in the poller. I'd simply remove
>>>> it from the table. It doesn't add anything.
>>>
>>> Okay, thanks.
>>>
>>>>> Second, under the NIO connector, both "Read HTTP Body" and
>>>>> "Write HTTP Response" say that they are "sim-Blocking"...
>>>>> does that mean that the API itself is stream-based (i.e.
>>>>> blocking) but that the actual under-the-covers behavior is to
>>>>> use non-blocking I/O?
>>>>
>>>> It means simulated blocking. The low level writes use a
>>>> non-blocking API but blocking is simulated by not returning to
>>>> the caller until the write completes.
>>>
>>> That's what I was thinking. Thanks for confirming.
> 
>> Another quick question: during the sim-blocking for reading the 
>> request-body, does the request go back into the poller queue, or
>> does it just sit waiting single-threaded-style? I would assume that
>> latter, otherwise we'd either violate the spec (one thread serves
>> the whole request) or spend a lot of resources making sure we got
>> the same thread back, etc.
> 
> Both.
> 
> The socket gets added to the BlockPoller and the thread waits on a
> latch for the BlockPoller to data can be read.

Okay, but it's still one-thread-one-request... /The/ thread will stay
with that request until its complete, right? The BlockPoller will just
wake-up the same waiting thread.. no funny-business? ;)

Okay, one more related question: for the BIO connector, does the
request/connection go back into any kind of queue after the initial
(keep-alive) request has completed, or does the thread that has already
processed the first request on the connection keep going until there are
no more keep-alive requests? I can't see a mechanism in the BIO
connector to ensure any kind of fairness with respect to request
priority: once the client is in, it can make as many requests as it
wants (up to maxKeepAliveRequests) without getting back in line.

Thanks,
-chris

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to