Hi Naoh,

Surely I can try these. Nice to hear that flow control is being worked out,
what timeline/release can it be expected?

Before trying out your suggestions I would also like to know when there are
lets say 10 streams (each 1 MB) per connection (10 MB is total connection
window size as negotiated by client) and there is a server streaming call
in progress, can all these 10 streams be potentially used by this one
streaming call? I assume no as gRPC doesn't guarantee in-order delivery and
hence only one stream will be in use per RPC call. Correct me if my
understanding is wrong.

Thanks,
Vivek

On 7 June 2017 at 20:25, Noah Eisen <[email protected]> wrote:

> Hi Vivek,
>
> Linking myself in since I have been working on c core flow control these
> days. Neither the grpc_fd objects, or the flow control parameters are made
> available to the user. This is a very conscious choice as we want to do all
> the fd bookkeeping ourselves and we want to optimize flow control
> ourselves. At the moment there are some known issues with flow control
> stalls under large message throughput situations, but that is under
> investigation.
>
> In the mean time, you are welcome to do some experimentation, but it will
> have to happen through actually modifying the c core. Here are some
> interesting places you might look in the code based on this discussion and
> the on you had with Carl in a different thread:
>
> target_write_size()
> <https://github.com/grpc/grpc/blob/master/src/core/ext/transport/chttp2/transport/writing.c#L176>
>  is
> where we set a target size for the chunks actually hitting a write syscall.
> It's currently 1M
>
> update_bdp()
> <https://github.com/grpc/grpc/blob/master/src/core/ext/transport/chttp2/transport/chttp2_transport.c#L2314>
>  is
> where we update the connection's initial window to our estimate of the bdp.
> Note that a few lines later we update the max frame size to max(bdp and
> bandwidth per ms). I saw you mentioned this in the other thread.
>
> Check those out to start. We can keep discussing in this thread if you
> want to start experimenting with performance. I am currently working on
> refactoring the flow control code to exist in one module with a clear
> interface.
>
> Hope this helps!
> Noah
>
> On Wed, Jun 7, 2017 at 12:43 AM, Vivek M <[email protected]> wrote:
>
>> Hi Vijay,
>>
>> Any thoughts on this?
>>
>> Thanks,
>> Vivek
>>
>> On Friday, June 2, 2017 at 11:40:43 PM UTC+5:30, Vivek M wrote:
>>>
>>> Hi Vijay,
>>>
>>> I was also wondering if there is a way to get this.
>>>
>>> Lets say a client negotiates a HTTP/2 window size of 1 MB and the server
>>> sets its send window size to 1 MB. However if the underlying TCP socket's
>>> send buffer size is 64 KB (default value in FreeBSD), then I think only
>>> 64KB of data will be in flight. This may affect the throughput.
>>>
>>> So if there is an option to get both the FD being used for an RPC() and
>>> the maximum window size that has been negotiated by the client, then we can
>>> try to increase the send buffer size (if our system permits) in the
>>> application.
>>>
>>> Thanks,
>>> Vivek
>>>
>>> On Tuesday, May 23, 2017 at 9:19:35 AM UTC+5:30, Richard Chan wrote:
>>>>
>>>> hi
>>>>
>>>> i want to get grpc server fd, to polling the fd in my code.
>>>> is there any existing api to accomplish this ?
>>>>
>>>> i only see make grpc from fd in server_posix.h
>>>>
>>>> --
>> 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 [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at https://groups.google.com/group/grpc-io.
>> To view this discussion on the web visit https://groups.google.com/d/ms
>> gid/grpc-io/7d6f8bca-5a2e-44ba-aff6-6ea7eca25c93%40googlegroups.com
>> <https://groups.google.com/d/msgid/grpc-io/7d6f8bca-5a2e-44ba-aff6-6ea7eca25c93%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CA%2B73C2G373S-iz5eOG2Hn6sTwXJJco2pN-fw_TapcdxHPOYvAQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to