47 Commits

Author SHA1 Message Date
e41e8940c0 orca: create ORCA producer for LB policies to use to receive OOB load reports (#5669) 2022-11-03 10:27:40 -07:00
36e481079b orca: cleanup old code, and get grpc package to use new code (#5627) 2022-09-27 12:41:05 -07:00
03fee09e68 balancer: fix connectivity state aggregation algorithm to follow the spec (#5473) 2022-07-07 13:48:34 -07:00
a73725f42d channelz: include channelz identifier in logs (#5192) 2022-02-23 07:30:06 -08:00
82d8af8bf0 balancer: add Authority field to balancer.BuildOptions (#4969) 2021-11-11 10:59:18 -08:00
03268c8ed2 balancer: fix aggregated state to not report idle with zero subconns (#4756) 2021-09-10 16:25:09 -07:00
8ab16ef276 balancer: add ExitIdle optional interface (#4673) 2021-08-18 15:04:35 -07:00
997ce619eb clientconn: do not automatically reconnect addrConns; go idle instead (#4613) 2021-08-10 13:22:34 -07:00
9dfe677337 balancer: Add UpdateAddresses() to balancer.ClientConn interface (#4215) 2021-02-25 15:48:39 -08:00
d6f8e6fbaf grpclb: send custom user-agent (#4011) 2020-11-09 14:08:58 -08:00
1154df9a4e balancer: remove deprecated type aliases as planned (#3742) 2020-07-16 13:20:46 -07:00
4eb418e5b2 balancer: move Balancer and Picker to V2; delete legacy API (#3431) 2020-04-28 14:52:49 -07:00
6a3c03883d Pass address attributes from balancer to creds handshaker. (#3548) 2020-04-23 11:03:42 -07:00
27fd7d000e balancer/resolver: remove temporary backward-compatibility type aliases (#3309) 2020-01-22 08:59:42 -08:00
c35a580b0c Revert "balancer: move Balancer and Picker to V2; delete legacy… (#3315)
This reverts commit 336cf8d76145dc5ebd517fd9c19e14c6822450b3.
2020-01-13 13:12:55 -08:00
336cf8d761 balancer: move Balancer and Picker to V2; delete legacy API (#3301) 2020-01-10 13:44:48 -08:00
dc49de8acd balancer: add V2Picker, ClientConn.UpdateState, SubConnState.ConnectionError (#3186)
Also implement V2 versions of base.*, xds, pickfirst, grpclb, and round robin balancers.
2019-11-21 10:27:29 -08:00
2cb07fcd90 resolver: rename Option to Options, leaving type aliases for now (#3175) 2019-11-12 15:23:46 -08:00
ed563a02ea resolver: add State fields to support error handling (#2951) 2019-10-04 12:59:43 -07:00
d40a995895 balancer/resolver: add loadBalancingConfig and pre-parsing support (#2732) 2019-05-30 09:12:58 -07:00
4748a040c8 balancer: provide parsed target through BuildOptions (#2803) 2019-05-09 13:27:41 -07:00
d389f9fac6 balancer: add server loads from RPC trailers to DoneInfo (#2641) 2019-04-02 11:15:36 -07:00
3910b873d3 bar: add ability to update resolver state atomically and pass directly to the balancer (#2693) 2019-03-22 10:48:55 -07:00
ce45558927 balancer: make sure non-nil done returned by Pick is called (#2688)
Special case: when SubConn returned by Picker is not Ready, call done before
looping back to re-pick.
2019-03-19 10:47:09 -07:00
3c84def893 balancer: remove Header from PickOptions; it is also available through context (#2674) 2019-03-15 09:00:55 -07:00
8e6533ee6e client: clean up v1 balancer wrapper error handling (#2511) 2019-01-30 10:56:23 -08:00
e9c1ac35ec fix: typos (#2591) 2019-01-23 09:59:48 -08:00
191cc8e37b grpclb: filter out grpclb addresses if balancer in use is not grpclb (#2509) 2018-12-13 10:54:42 -08:00
04ea82009c cleanup: replace "x/net/context" import with "context" (#2439) 2018-11-12 13:30:41 -08:00
105f61423e health: Client LB channel health checking (#2387) 2018-11-01 10:49:35 -07:00
371811880c balancer: add clarifying note to PickOptions.Header (#2377) 2018-10-15 10:27:54 -07:00
5b2c343e0b add header metadata to PickOptions (#2376) 2018-10-12 15:44:20 -07:00
c195587d96 balancer: add trailer metadata to DoneInfo (#2359) 2018-10-10 13:21:08 -07:00
4dedfdc82c credentials: support google default creds (#2315)
Google default creds is a combo of ALTS, TLS and OAuth2. The right set of creds will be picked to use based on environment.

This PR contains:
 - A new `creds.Bundle` type
   - changes to use it in ClientConn and transport
   - dial option to set the bundle for a ClientConn
   - balancer options and NewSubConnOption to set it for SubConn
 - Google default creds implementation by @cesarghali 
 - grpclb changes to use different creds mode for different servers
 - interop client changes for google default creds testing
2018-09-25 13:17:25 -07:00
f57a529f33 balancer: add rpc method to PickOptions (#2204)
Provide additional context to Pickers that wish to make decisions based on the RPC method.

Relevant issue: https://github.com/grpc/grpc-go/issues/2103
2018-07-11 10:18:09 -07:00
4344c204c9 Split grpclb out of top level grpc package (#2107)
This PR splits out grpclb from grpc.  I have made the PR in several commits so you can see more clearly the steps that happened.

There are a few possibly contentious points that I would like to make clear up front:

* grpclb will no longer autoload as a load balancer.  I think this is okay, as service config is not widely (at all?) used, and I believe this is the only way to access it.
* `internal` is used more, as a way of having code shared between packages without exposing types
* ConnectivityStateEvaluator, as used by grpclb, is no longer thread safe.  I believe there is an outer mutex that guards access, but I want to point out this subtle change up here.

All but one tests pass with this, due to another cyclic dependency.  I can fix this, but it is a little more widely scoped (such as exposing grpc.server and grpc.errorDesc in the internal package).   This PR is a nearly-passing sample of that last step to get this working. 

PTAL @menghanl @dfawley
2018-06-05 09:54:12 -07:00
7de9139327 Fix typos (#1994) 2018-04-16 10:03:02 -07:00
c4a6e7589b documentation: mention Register functions should be call at init time (#1975) 2018-04-12 15:11:04 -07:00
7f73c863c0 Channelz: Entity Registration and Deletion (#1811) 2018-04-09 11:13:06 -07:00
0547980095 Notify parent ClientConn to re-resolve in grpclb (#1699)
The parent ClientConn should re-resolve when grpclb loses connection to the
remote balancer.

When the ClientConn inside grpclb gets a TransientFailure, it calls
lbManualResolver.ResolveNow(), which calls parent ClientConn's ResolveNow, and
eventually results in re-resolve happening in parent ClientConn's resolver (DNS
for example).

This PR adds a method to balancer.ClientConn interface, so balancer can tell
parent ClientConn to re-resolve.
2017-12-18 15:36:55 -08:00
be077907e2 make load balancing policy name string case-insensitive (#1708) 2017-12-04 14:03:22 -08:00
61c67402b9 Add comments to ClientConn/SubConn interfaces to indicate new methods may be added (#1680) 2017-12-01 13:25:57 -08:00
2ef021f78d New grpclb implementation (#1558)
The new grpclb supports fallback to backends if remote balancer is unavailable
2017-11-27 11:16:26 -08:00
de2209a968 Update picker doc when returned SubConn is not ready (#1659) 2017-11-09 13:53:22 -08:00
a353537ff5 Register and use default balancers and resolvers (#1551) 2017-10-19 11:32:06 -07:00
4bbdf230d7 New implementation of roundrobin and pickfirst (#1506) 2017-10-02 09:22:57 -07:00
8233e124e4 Add new Resolver and Balancer APIs (gRFC L9) (#1408)
- Add package balancer and resolver.
 - Change ClientConn internals to new APIs and adds a wrapper for v1 balancer.
2017-08-31 10:59:09 -07:00