Skip to content

Add c-ares resolver tests against GCE DNS, redo of #12010#12651

Merged
apolcyn merged 1 commit intogrpc:masterfrom
apolcyn:cares_srv_master_after_uinittests
Sep 28, 2017
Merged

Add c-ares resolver tests against GCE DNS, redo of #12010#12651
apolcyn merged 1 commit intogrpc:masterfrom
apolcyn:cares_srv_master_after_uinittests

Conversation

@apolcyn
Copy link
Copy Markdown
Contributor

@apolcyn apolcyn commented Sep 20, 2017

This is a redo of #12010, now using the infrastructure added in #12210.

This adds a "background job" that tests c-ares resolver against GCE DNS. It allows testing that c-ares interops with GCE DNS. IMO another benefit is it adds a sanity check that the local testing DNS server from #12210 is realistic.

This is running in an adhoc jenkins right now, in https://grpc-testing.appspot.com/job/gRPC_naming_adhoc/ (that job previously used by #12010).

@grpc-kokoro
Copy link
Copy Markdown
Collaborator

[trickle] No significant performance differences

@grpc-kokoro
Copy link
Copy Markdown
Collaborator

[microbenchmarks] Performance differences noted:
Benchmark                                                                                 nows_per_iteration
----------------------------------------------------------------------------------------  --------------------
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/16M/1/0  -5%

@apolcyn apolcyn force-pushed the cares_srv_master_after_uinittests branch from aae066c to 74e8760 Compare September 20, 2017 23:33
@grpc-kokoro
Copy link
Copy Markdown
Collaborator

[trickle] No significant performance differences

@grpc-kokoro
Copy link
Copy Markdown
Collaborator

[microbenchmarks] Performance differences noted:
Benchmark                                                                   cpu_time    locks_per_iteration    nows_per_iteration    real_time
--------------------------------------------------------------------------  ----------  ---------------------  --------------------  -----------
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<3, true>>/0/16k     +4%                                                      +4%
BM_PumpStreamClientToServer<SockPair>/128M                                              +9%
BM_StreamingPingPongMsgs<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/16M                                     -7%

Copy link
Copy Markdown
Contributor

@y-zeng y-zeng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great. Thanks for adding these tests!

@apolcyn
Copy link
Copy Markdown
Contributor Author

apolcyn commented Sep 25, 2017

thanks for the review!

also doing a late cc of @markdroth and @nicolasnoble, to boost awareness of this background test

Copy link
Copy Markdown
Member

@markdroth markdroth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could be elif.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

elif

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be really useful to have a stand-alone script that would convert a service config string in JSON form into the form needed for a DNS zone file (which is presumably the same form used in gcloud). This would be used by folks in the OSS world that want to encode the service config in their DNS server. Can you refactor this to provide such a utility?

Feel free to do this in a separate PR. It doesn't need to block this.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SG, I think that gcloud has an alternate mode of uploading records that involves pointing it to a zone file, rather than specifying each record via command line parameters. I might try changing this around to use such a JSON -> TXT script a part of creating a zone file.

@apolcyn apolcyn force-pushed the cares_srv_master_after_uinittests branch from 74e8760 to 9798042 Compare September 27, 2017 18:17
@grpc-kokoro
Copy link
Copy Markdown
Collaborator

[trickle] No significant performance differences

@grpc-kokoro
Copy link
Copy Markdown
Collaborator

Corrupt JSON data (indicates timeout or crash): 
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__2M_2_0.opt.new: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_InProcessCHTTP2_NoOpMutator_NoOpMutator__2M_2_0.opt.old: 1
    bm_fullstack_streaming_ping_pong.BM_StreamingPingPongWithCoalescingApi_MinInProcessCHTTP2_NoOpMutator_NoOpMutator__2M_2_0.counters.old: 1


[microbenchmarks] Performance differences noted:
Benchmark                                                                                    nows_per_iteration
-------------------------------------------------------------------------------------------  --------------------
BM_StreamingPingPongMsgs<InProcessCHTTP2, NoOpMutator, NoOpMutator>/16M                      -4%
BM_StreamingPingPongWithCoalescingApi<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/16M/1/0  -6%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/2M/2M                                     -5%

@apolcyn apolcyn force-pushed the cares_srv_master_after_uinittests branch from 9798042 to 9e3a76b Compare September 27, 2017 23:48
@googlebot
Copy link
Copy Markdown

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed, please reply here (e.g. I signed it!) and we'll verify. Thanks.


  • If you've already signed a CLA, it's possible we don't have your GitHub username or you're using a different email address. Check your existing CLA data and verify that your email is set on your git commits.
  • If your company signed a CLA, they designated a Point of Contact who decides which employees are authorized to participate. You may need to contact the Point of Contact for your company and ask to be added to the group of authorized contributors. If you don't know who your Point of Contact is, direct the project maintainer to go/cla#troubleshoot.
  • In order to pass this check, please resolve this problem and have the pull request author add another comment and the bot will run again.

@apolcyn
Copy link
Copy Markdown
Contributor Author

apolcyn commented Sep 27, 2017

I signed it!

@apolcyn
Copy link
Copy Markdown
Contributor Author

apolcyn commented Sep 27, 2017

just rebased on lastest master and fixed an issue with the template (previously templates/test/cpp/naming/resolver_gce_integration_tests_runner.sh.template used resolver_component_test_cases rather than resolver_gce_integration_test_cases, which was a noticeable issue after rebasing).

@grpc-kokoro
Copy link
Copy Markdown
Collaborator

[trickle] No significant performance differences

@grpc-kokoro
Copy link
Copy Markdown
Collaborator

[microbenchmarks] Performance differences noted:
Benchmark                                                                                       atm_add_per_iteration    cpu_time    locks_per_iteration    nows_per_iteration    real_time
----------------------------------------------------------------------------------------------  -----------------------  ----------  ---------------------  --------------------  -----------
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<1, true>>/0/16k                                                  +8%                                                      +8%
BM_HpackEncoderEncodeHeader<SingleNonInternedBinaryElem<10, false>>/0/16k                                                +6%                                                      +6%
BM_HpackEncoderEncodeHeader<SingleNonInternedElem>/0/16k                                                                 +4%                                                      +4%
BM_HpackParserParseHeader<NonIndexedBinaryElem<1, true>>                                                                 +6%                                                      +6%
BM_IsolatedFilter<ClientDeadlineFilter, NoOp>                                                                            +5%                                                      +6%
BM_PumpStreamServerToClient<InProcess>/512                                                                               +4%                                                      +4%
BM_PumpStreamServerToClient<SockPair>/8                                                                                                                                           +4%
BM_StreamCreateSendInitialMetadataDestroy<RepresentativeClientInitialMetadata>                                           +4%                                                      +4%
BM_StreamingPingPong<MinInProcess, NoOpMutator, NoOpMutator>/8/2                                                         +7%                                                      +8%
BM_StreamingPingPongWithCoalescingApi<InProcess, NoOpMutator, NoOpMutator>/1/1/1                                         +5%                                                      +5%
BM_StreamingPingPongWithCoalescingApi<InProcess, NoOpMutator, NoOpMutator>/512/1/0                                                                                                +4%
BM_StreamingPingPongWithCoalescingApi<InProcessCHTTP2, NoOpMutator, NoOpMutator>/2M/2/0                                              -4%
BM_StreamingPingPongWithCoalescingApi<MinInProcess, NoOpMutator, NoOpMutator>/0/0/1                                      +5%                                                      +5%
BM_UnaryPingPong<InProcess, Client_AddMetadata<RandomBinaryMetadata<100>, 2>, NoOpMutator>/0/0                           +4%                                                      +4%
BM_UnaryPingPong<InProcess, Client_AddMetadata<RandomBinaryMetadata<10>, 1>, NoOpMutator>/0/0                            +9%                                                      +9%
BM_UnaryPingPong<InProcess, NoOpMutator, NoOpMutator>/256k/256k                                                          +5%                                                      +5%
BM_UnaryPingPong<InProcessCHTTP2, NoOpMutator, NoOpMutator>/4k/0                                                         +6%                                                      +6%
BM_UnaryPingPong<MinInProcess, NoOpMutator, NoOpMutator>/0/4k                                                            +6%                                                      +6%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/64/64                                                     +9%                                                      +9%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/0                                                       +9%                                                      +9%
BM_UnaryPingPong<MinInProcessCHTTP2, NoOpMutator, NoOpMutator>/8/8                                                       +4%                                                      +4%
BM_UnaryPingPong<MinTCP, NoOpMutator, NoOpMutator>/2M/2M                                        -5%                                                         -7%

@googlebot
Copy link
Copy Markdown

CLAs look good, thanks!

@apolcyn apolcyn merged commit e489567 into grpc:master Sep 28, 2017
@lock lock bot locked as resolved and limited conversation to collaborators Jan 22, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants