Hi all,

I've trying to implement a high-performance async server in C++ where 
throughput matters, but also don't want to keep messages too long in a 
buffer (say up to 200ms). 
WriteOptions::set_buffer_hint() seems like a perfect candidate to enable 
high throughput. However whenever a Write method is called on 
ServerAsyncReaderWriter, then it just gets blocked, because it gets 
buffered! But then ironically I cannot call another Write method, because 
GRPC API demands another Write to be only called after another successful 
Write has completed. How then is supposed to work if async buffered Write 
does not commit the write right away, but then I cannot call Write method 
in a batch as well? Am I getting this wrong somehow? I appreciate any help.

void grpc_impl::ServerAsyncReaderWriter 
<https://grpc.github.io/grpc/cpp/classgrpc__impl_1_1_server_async_reader_writer.html><
 
W, R >::Write ( const W &  msg,
::grpc::WriteOptions 
<https://grpc.github.io/grpc/cpp/classgrpc_1_1_write_options.html>  options,
void *  tag 
) inlineoverridevirtual

Request the writing of *msg* using WriteOptions *options* with identifying 
tag *tag*.

*Only one write may be outstanding at any given time. This means that after 
calling Write, one must wait to receive tag from the completion queue 
BEFORE calling Write again*. WriteOptions *options* is used to set the 
write options of this message

Kind Regards,
 Igor

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/912e878c-538d-42a9-b89a-0e72a63a8801%40googlegroups.com.

Reply via email to