Skip to content

Experimental: grpc_kit support #186

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

Merged
merged 2 commits into from
Feb 3, 2023
Merged

Experimental: grpc_kit support #186

merged 2 commits into from
Feb 3, 2023

Conversation

palkan
Copy link
Member

@palkan palkan commented Feb 3, 2023

Summary

Make it possible to use grpc_kit as a gRPC server implementation.

Add grpc_kit to your Gemfile and specify ANYCABLE_GRPC_IMPL=grpc_kit env var to use it.

Checklist

  • I've added tests for this change
  • I've added a Changelog entry
  • I've updated documentation

Benchmarks

Running k6 run echo.js --duration=10s --vus=30:

  • gRPC
running (10.1s), 00/30 VUs, 300 complete and 0 interrupted iterations
default ✓ [======================================] 30 VUs  10s

     ✓ status is OK

     checks...............: 100.00% ✓ 300       ✗ 0   
     data_received........: 101 kB  10 kB/s
     data_sent............: 97 kB   9.6 kB/s
     grpc_req_duration....: avg=6.74ms min=1.18ms med=6.49ms max=18.95ms p(90)=10.88ms p(95)=12.11ms
     iteration_duration...: avg=1s     min=1s     med=1s     max=1.02s   p(90)=1.01s   p(95)=1.01s  
     iterations...........: 300     29.695843/s
     vus..................: 30      min=30      max=30
     vus_max..............: 30      min=30      max=30
  • grpc_kit
running (10.1s), 00/30 VUs, 300 complete and 0 interrupted iterations
default ✓ [======================================] 30 VUs  10s

     ✓ status is OK

     checks...............: 100.00% ✓ 300       ✗ 0   
     data_received........: 58 kB   5.7 kB/s
     data_sent............: 92 kB   9.1 kB/s
     grpc_req_duration....: avg=967.66µs min=446.91µs med=864.79µs max=5.82ms p(90)=1.37ms p(95)=1.58ms
     iteration_duration...: avg=1s       min=1s       med=1s       max=1.02s  p(90)=1.01s  p(95)=1.01s 
     iterations...........: 300     29.687503/s
     vus..................: 30      min=30      max=30
     vus_max..............: 30      min=30      max=30

grpc_kit performs much better for simple requests (p85: 1.5ms < 12ms).

@palkan palkan marked this pull request as ready for review February 3, 2023 20:21
@palkan palkan force-pushed the feat/grpc_kit branch 3 times, most recently from 129436c to 566a720 Compare February 3, 2023 20:33
@palkan palkan merged commit 3598565 into master Feb 3, 2023
@palkan palkan deleted the feat/grpc_kit branch February 3, 2023 20:41
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.

1 participant