Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP Support configurable client deadlines #30

Open
wants to merge 132 commits into
base: master
Choose a base branch
from

Conversation

Shehab7osny
Copy link
Contributor

@Shehab7osny Shehab7osny commented Apr 15, 2020

I did the following updates to solve the issue related to client-side deadline. I hope that these updates solve the problem. I tried my updated code on the example (Helloserver and Helloclient) and it worked perfectly. I think it will work on any other example too.

This argument will be used to manually configure the deadline for client timeout. It will be helpful for those RPCs that take longer than 5 seconds.
This is done automatically after compiling the project. However the only difference will be the edited arguments only.
This argument is measured in seconds, and then multiplied by 1000 to convert it to microseconds to pass it to the gpr_time_from_millis() function
This is done automatically after compiling the project. However, these are the main differences in this file after compiling the project.
@Shehab7osny Shehab7osny changed the title These are the changes required to solve the issue #28 (Support configurable client deadlines in call()) Support configurable client deadlines Apr 20, 2020
@nfultz nfultz changed the title Support configurable client deadlines WIP Support configurable client deadlines Apr 20, 2020
R/client.R Outdated Show resolved Hide resolved
This will add client_deadline argument to the options() for client timeout options.
Here I removed the argument passed to the grpc_client function in order to avoid breaking the existing code. The argument will be set in options()
the options() function will set the parameter client_deadline for 10 seconds to test the timeout issues.
I tested the code on this example and setting the client_deadline for 0 seconds will raise the exception '"gRPC c++ call timeout". While testing for any seconds greater than 0 worked perfectly!
After running the roxygen, Namespace was not altered and the Description file just updated the RoxygenNote to 7.1.0
DESCRIPTION Show resolved Hide resolved
demo/helloclient.R Outdated Show resolved Hide resolved
@nfultz
Copy link
Owner

nfultz commented Aug 21, 2020

Overall this is looking pretty good.

A couple minor points on organization

  • if they are only included in one file, no need to split out server_libraries.h to a separate header file
  • No need for testthat - it won't interact correctly with client/servers anyway - we can just write r scripts directly for tests - use base::stopifnot() as replacement for expect etc
  • TLS scripts should be moved to a folder called src/TLS - this will be included in the final package tarball, src will not

Other todo's:

  • Knitr document in vignettes/ - can reuse content from blog post.
  • Add logging hooks for TLS, Oauth on server side
  • double check code style

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants