Other than Cq, grpc creates some internal threads to handle some background 
work. I guess it is possible that what you observed is that some work is 
offloaded to the background executor.

On Friday, August 2, 2019 at 11:57:42 PM UTC-7, Arthur Wang wrote:
>
> Hi all:
>
>    I know that the CompletionQueue is application threads driven, which 
> means that the requests entrusted on the CQ will be sent out  on the wire 
> only 
> after there are some application threads polling on it. Before that, none 
> of the  requests will be sent, here is a github question 
> <https://github.com/grpc/grpc/issues/14104> to consult to. 
>
>    But I found that if I entrust enough requests to a CQ ( ~50k),  before 
> any threads start polling on it, the CQ has already sent some of them out 
> to the server!  It seems that the #request has reached some threshold, 
> and CQ just can't hold the them so having to just let them go.
>
>    Am I understanding this correctly?  There is no problems with this 
> behavior for me except that bring troubles on benchmark : I don't know the 
> exact start point when the server start processing , and can't get an 
> accurate throughput data.
>
>    language : c++ (for both client & server)
>    grpc version : v1.21.x 
>    OS : win10 pro
>    compiler : vs2015 Microsoft (R) C/C++ Optimizing Compiler Version 
> 19.00.24215.1 for x86
>    
>
>
> - Regards
> - Arthur
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/54d372ef-dad8-422a-ab36-70e23ca5d795%40googlegroups.com.

Reply via email to