commit | c55c7c065e271f58f70b660ea7c908e97df5d568 | [log] [tgz] |
---|---|---|
author | donnadionne <donnadionne@google.com> | Tue May 18 16:00:06 2021 -0700 |
committer | GitHub <noreply@github.com> | Tue May 18 16:00:06 2021 -0700 |
tree | 460cbcfcd9024cfe1aef44e34a53fb9127612402 | |
parent | 467c0d742c61dcb3255299a742dcd9111a59ab88 [diff] |
ring_hash LB policy implementation (#26285) * ring_hash LB policy (#25697) * Ring Hash Policy implementation * Code review comment fixing * Fixing code review comments. * Code review comment fixing * Fixing reconnect logic * adding helper method for pick * Holding on to ref to parent * first attempt at calling AttemptToConnect * Fixing state change * Fixing code review comments * Fixing the reconnect from channel watcher code * Fixing the BUILD to include new policy * Fixing major code review suggestion * Fixing code review comments * Fixing code review suggestions * Initial 2 tests. * Adding channel id case. * Fixing code review comments. * Small change to get the spread of backends * Add header hashing tests * Added more tests and debugging * Fixing Header hash * Added more tests * cleanup * removing debugs * Fixing code review comments. * code review fixing * combining code and match design * fixing code review comments. * Fixed IDLE case * Moving tests * Fixing code review comments * Adding more tests according to code review comments. * Added tests with differetn types of weights * Adding terminal policy case * Remove hash_func as there is only 1 * Added nack invalid hash function * Added NACK cases * fixing build error * fixing build * small warning * adding regex test * Adding policy tests * fixing warning * fixing warning * fixing code reivew comments. * fixing IDLE case * Code review comments. * fixing code review comments * Making a helper function * fixing reattempt case * Added afew more tests. * Adding more tests * Added backward compatible test * FIxing the reattempt test * Clean up * fixing clang error * fixing clang error * Fix logic discovered during code review * code review comments * code review comments * code review comment * clean up tests * fixing code review comments * clean up tests * Separated test * Fixing test * fixing test * fixing clang error * Addressing code review suggestions * Fixing last bit of code review comments * Fixing flaky tests * Fixing last bit of code review comments * clean debugs * Remove a verbose log * Relaxing deadline exceeded for 1st RPC until ring is optimized. Making Hash more efficient for random case.
gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC enables client and server applications to communicate transparently, and simplifies the building of connected systems.
To maximize usability, gRPC supports the standard method for adding dependencies to a user‘s chosen language (if there is one). In most languages, the gRPC runtime comes as a package available in a user’s language package manager.
For instructions on how to use the language-specific gRPC runtime for a project, please refer to these documents
src/cpp
directoryGrpc
grpc
go get google.golang.org/grpc
npm install grpc
gRPC-ProtoRPC
dependency to podspecpecl install grpc
pip install grpcio
gem install grpc
Per-language quickstart guides and tutorials can be found in the documentation section on the grpc.io website. Code examples are available in the examples directory.
Precompiled bleeding-edge package builds of gRPC master
branch's HEAD
are uploaded daily to packages.grpc.io.
Contributions are welcome!
Please read How to contribute which will guide you through the entire workflow of how to build the source code, how to run the tests, and how to contribute changes to the gRPC codebase. The “How to contribute” document also contains info on how the contribution process works and contains best practices for creating contributions.
Sometimes things go wrong. Please check out the Troubleshooting guide if you are experiencing issues with gRPC.
See the Performance dashboard for performance numbers of master branch daily builds.
See gRPC Concepts
This repository contains source code for gRPC libraries implemented in multiple languages written on top of a shared C core library src/core.
Libraries in different languages may be in various states of development. We are seeking contributions for all of these libraries:
Language | Source |
---|---|
Shared C [core library] | src/core |
C++ | src/cpp |
Ruby | src/ruby |
Python | src/python |
PHP | src/php |
C# (core library based) | src/csharp |
Objective-C | src/objective-c |
Language | Source repo |
---|---|
Java | grpc-java |
Kotlin | grpc-kotlin |
Go | grpc-go |
NodeJS | grpc-node |
WebJS | grpc-web |
Dart | grpc-dart |
.NET (pure C# impl.) | grpc-dotnet |