Skip to content

C++: Experimental client callback streaming API#17104

Merged
vjpai merged 9 commits intogrpc:masterfrom
vjpai:callback_streaming
Nov 30, 2018
Merged

C++: Experimental client callback streaming API#17104
vjpai merged 9 commits intogrpc:masterfrom
vjpai:callback_streaming

Conversation

@vjpai
Copy link
Copy Markdown
Contributor

@vjpai vjpai commented Nov 5, 2018

Fixes #16501
Fixes #16502

Add C++ callback streaming API based on "Reactor" model

Detailed review request to @yashykt

Words of wisdom request to @yang-g and @wcevans

Cc: @jeady

@vjpai vjpai force-pushed the callback_streaming branch from 834e749 to 318a7a5 Compare November 5, 2018 21:18
@vjpai vjpai added the release notes: no Indicates if PR should not be in release notes label Nov 5, 2018
@vjpai vjpai force-pushed the callback_streaming branch 3 times, most recently from ad03010 to 944bb93 Compare November 10, 2018 21:16
@vjpai vjpai changed the title WIP C++: Experimental client callback streaming API C++: Experimental client callback streaming API Nov 10, 2018
@vjpai vjpai requested a review from yashykt November 10, 2018 21:17
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc grpc deleted a comment from grpc-testing Nov 11, 2018
@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 2,020,410      Total (=)      2,020,410

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
11,174,077      Total (<)     11,174,080

 No significant differences in binary sizes


@grpc-testing
Copy link
Copy Markdown

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 2,020,410      Total (=)      2,020,410

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
11,174,085      Total (>)     11,174,079

 No significant differences in binary sizes


@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.old: 10


[microbenchmarks] No significant performance differences

2 similar comments
@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.old: 10


[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.old: 10


[microbenchmarks] No significant performance differences

@grpc-testing
Copy link
Copy Markdown

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 2,020,410      Total (=)      2,020,410

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
11,174,077      Total (>)     11,174,075

 No significant differences in binary sizes


@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.old: 10


[microbenchmarks] No significant performance differences

@vjpai vjpai force-pushed the callback_streaming branch from 9d46fd0 to 2b5d45a Compare November 30, 2018 12:13
@grpc-testing
Copy link
Copy Markdown

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]


****************************************************************

libgrpc++.so

     VM SIZE                                                                                            FILE SIZE
 ++++++++++++++ GROWING                                                                              ++++++++++++++
  +6.4% +19.3Ki [None]                                                                                +153Ki  +1.9%
      +6.3% +17.5Ki [Unmapped]                                                                            +151Ki  +1.9%
      [NEW]    +146 typeinfo name for grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadat    +146  [NEW]
      [NEW]    +142 typeinfo name for grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadat    +142  [NEW]
      [NEW]    +136 typeinfo for grpc::internal::CallOpSet<grpc::internal::CallOpClientRecvStatus, grpc:    +136  [NEW]
      [NEW]    +136 typeinfo for grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, gr    +136  [NEW]
      [NEW]    +136 typeinfo for grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, gr    +136  [NEW]
      [NEW]    +122 typeinfo name for grpc::internal::CallOpSet<grpc::internal::CallOpClientRecvStatus,     +122  [NEW]
      [NEW]     +90 typeinfo name for grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, g     +90  [NEW]
      [NEW]     +89 typeinfo name for grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, g     +89  [NEW]
      [NEW]     +89 typeinfo name for grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, g     +89  [NEW]
      [NEW]     +89 typeinfo name for grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, g     +89  [NEW]
      [NEW]     +88 typeinfo name for grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, g     +88  [NEW]
      [NEW]     +80 [Other]                                                                                  +80  [NEW]
      [NEW]     +80 vtable for grpc::internal::CallOpSet<grpc::internal::CallOpClientRecvStatus, grpc::i     +80  [NEW]
      [NEW]     +80 vtable for grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc     +80  [NEW]
      [NEW]     +80 vtable for grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc     +80  [NEW]
      [NEW]     +71 typeinfo name for grpc::experimental::ClientCallbackReaderWriter<grpc::ByteBuffer, g     +71  [NEW]
      [NEW]     +70 typeinfo name for grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, g     +70  [NEW]
      [NEW]     +64 vtable for grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, grpc::By     +64  [NEW]
      [NEW]     +24 typeinfo for grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, grpc::     +24  [NEW]
      [NEW]     +16 typeinfo for grpc::experimental::ClientCallbackReaderWriter<grpc::ByteBuffer, grpc::     +16  [NEW]
   +29% +12.0Ki src/cpp/client/generic_stub.cc                                                       +12.0Ki   +29%
     +11e3% +3.07Ki [Other]                                                                              +3.07Ki +11e3%
      [NEW] +2.72Ki grpc::GenericStub::experimental_type::PrepareBidiStreamingCall                       +2.72Ki  [NEW]
      [NEW] +1.78Ki grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, grpc::ByteBuffer>:: +1.78Ki  [NEW]
      [NEW] +1.58Ki grpc::internal::CallOpClientRecvStatus::FinishOp                                     +1.58Ki  [NEW]
      [NEW] +1.27Ki grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, grpc::ByteBuffer>:: +1.27Ki  [NEW]
      [NEW] +1.27Ki grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, grpc::ByteBuffer>:: +1.27Ki  [NEW]
      [NEW]    +941 grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal:    +941  [NEW]
      [NEW]    +925 grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal:    +925  [NEW]
      [NEW]    +694 grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal:    +694  [NEW]
      [NEW]    +662 grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal:    +662  [NEW]
      [NEW]    +590 grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, grpc::ByteBuffer>::    +590  [NEW]
      [NEW]    +565 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:    +565  [NEW]
      [NEW]    +466 grpc::internal::ClientCallbackReaderWriterImpl<grpc::ByteBuffer, grpc::ByteBuffer>::    +466  [NEW]
      [NEW]    +464 grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal:    +464  [NEW]
      [NEW]    +464 grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata, grpc::internal:    +464  [NEW]
      [NEW]    +448 grpc::internal::CallOpSet<grpc::internal::CallOpClientRecvStatus, grpc::internal::Ca    +448  [NEW]
      [NEW]    +432 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:    +432  [NEW]
      [NEW]    +359 grpc::internal::InterceptorBatchMethodsImpl::RunInterceptors                            +359  [NEW]
      [NEW]    +300 grpc::internal::CallOpSet<grpc::internal::CallOpClientRecvStatus, grpc::internal::Ca    +300  [NEW]
      [NEW]    +268 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:    +268  [NEW]
      [NEW]    +210 grpc::internal::CallOpSet<grpc::internal::CallOpClientRecvStatus, grpc::internal::Ca    +210  [NEW]

 -------------- SHRINKING                                                                            --------------
  -3.7% -1.80Ki src/cpp/server/server_cc.cc                                                          -1.80Ki  -3.7%
      [DEL]    -565 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:    -565  [DEL]
      [DEL]    -359 grpc::internal::InterceptorBatchMethodsImpl::RunInterceptors                            -359  [DEL]
      [DEL]    -268 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:    -268  [DEL]
      [DEL]    -178 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:    -178  [DEL]
      [DEL]    -151 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:    -151  [DEL]
      [DEL]    -147 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:    -147  [DEL]
      [DEL]    -146 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:    -146  [DEL]
      [DEL]     -21 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:     -21  [DEL]
      [DEL]      -5 grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<grpc::ByteBuffer>, grpc:      -5  [DEL]
  -1.0%    -118 src/cpp/server/server_context.cc                                                        -118  -1.0%
      [DEL]    -195 grpc::internal::CallbackWithSuccessTag::StaticRun                                       -195  [DEL]

  +5.5% +29.3Ki TOTAL                                                                                 +163Ki  +2.0%



@grpc-testing
Copy link
Copy Markdown

[trickle] No significant performance differences

@vjpai
Copy link
Copy Markdown
Contributor Author

vjpai commented Nov 30, 2018

This is reviewable

@grpc-testing
Copy link
Copy Markdown

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 2,020,410      Total (=)      2,020,410

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
11,174,081      Total (>)     11,174,077

 No significant differences in binary sizes


@grpc-testing
Copy link
Copy Markdown

Corrupt JSON data (indicates timeout or crash): 
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.new: 10
    bm_call_create.BM_IsolatedFilter_ClientChannelFilter_NoOp_.counters.old: 10


[microbenchmarks] No significant performance differences

@vjpai
Copy link
Copy Markdown
Contributor Author

vjpai commented Nov 30, 2018

Remaining failures unrelated

@vjpai vjpai merged commit 53949b7 into grpc:master Nov 30, 2018
@vjpai vjpai deleted the callback_streaming branch November 30, 2018 23:24
@lock lock bot locked as resolved and limited conversation to collaborators Feb 28, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release notes: no Indicates if PR should not be in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants