Commit Graph

52 Commits

Author SHA1 Message Date
Doug Fawley 7aceafcc52
balancer: add SubConn.Shutdown; deprecate Balancer.RemoveSubConn (#6493) 2023-08-04 08:10:48 -07:00
Doug Fawley c6354049d4
balancer: add StateListener to NewSubConnOptions for SubConn state updates (#6481) 2023-07-31 09:42:41 -07:00
Doug Fawley 94df716d94
resolver: State: add Endpoints and deprecate Addresses (#6471) 2023-07-31 09:42:27 -07:00
Zach Reyes 1536887cc6
interop/xds: Add Custom LB needed for interop test (#6262) 2023-05-11 12:29:32 -04:00
Easwar Swaminathan 68b388b26f
balancer: support injection of per-call metadata from LB policies (#5853) 2022-12-20 15:13:02 -08:00
Doug Fawley e41e8940c0
orca: create ORCA producer for LB policies to use to receive OOB load reports (#5669) 2022-11-03 10:27:40 -07:00
Easwar Swaminathan 36e481079b
orca: cleanup old code, and get grpc package to use new code (#5627) 2022-09-27 12:41:05 -07:00
Easwar Swaminathan 03fee09e68
balancer: fix connectivity state aggregation algorithm to follow the spec (#5473) 2022-07-07 13:48:34 -07:00
Easwar Swaminathan a73725f42d
channelz: include channelz identifier in logs (#5192) 2022-02-23 07:30:06 -08:00
Easwar Swaminathan 82d8af8bf0
balancer: add Authority field to balancer.BuildOptions (#4969) 2021-11-11 10:59:18 -08:00
Doug Fawley 03268c8ed2
balancer: fix aggregated state to not report idle with zero subconns (#4756) 2021-09-10 16:25:09 -07:00
Doug Fawley 8ab16ef276
balancer: add ExitIdle optional interface (#4673) 2021-08-18 15:04:35 -07:00
Doug Fawley 997ce619eb
clientconn: do not automatically reconnect addrConns; go idle instead (#4613) 2021-08-10 13:22:34 -07:00
Easwar Swaminathan 9dfe677337
balancer: Add UpdateAddresses() to balancer.ClientConn interface (#4215) 2021-02-25 15:48:39 -08:00
Menghan Li d6f8e6fbaf
grpclb: send custom user-agent (#4011) 2020-11-09 14:08:58 -08:00
Doug Fawley 1154df9a4e
balancer: remove deprecated type aliases as planned (#3742) 2020-07-16 13:20:46 -07:00
Doug Fawley 4eb418e5b2
balancer: move Balancer and Picker to V2; delete legacy API (#3431) 2020-04-28 14:52:49 -07:00
Easwar Swaminathan 6a3c03883d
Pass address attributes from balancer to creds handshaker. (#3548) 2020-04-23 11:03:42 -07:00
Doug Fawley 27fd7d000e
balancer/resolver: remove temporary backward-compatibility type aliases (#3309) 2020-01-22 08:59:42 -08:00
Doug Fawley c35a580b0c
Revert "balancer: move Balancer and Picker to V2; delete legacy… (#3315)
This reverts commit 336cf8d761.
2020-01-13 13:12:55 -08:00
Doug Fawley 336cf8d761
balancer: move Balancer and Picker to V2; delete legacy API (#3301) 2020-01-10 13:44:48 -08:00
Doug Fawley 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
Doug Fawley 2cb07fcd90
resolver: rename Option to Options, leaving type aliases for now (#3175) 2019-11-12 15:23:46 -08:00
Doug Fawley ed563a02ea
resolver: add State fields to support error handling (#2951) 2019-10-04 12:59:43 -07:00
Doug Fawley d40a995895
balancer/resolver: add loadBalancingConfig and pre-parsing support (#2732) 2019-05-30 09:12:58 -07:00
lyuxuan 4748a040c8
balancer: provide parsed target through BuildOptions (#2803) 2019-05-09 13:27:41 -07:00
Menghan Li d389f9fac6
balancer: add server loads from RPC trailers to DoneInfo (#2641) 2019-04-02 11:15:36 -07:00
Doug Fawley 3910b873d3
bar: add ability to update resolver state atomically and pass directly to the balancer (#2693) 2019-03-22 10:48:55 -07:00
Menghan Li 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
Doug Fawley 3c84def893
balancer: remove Header from PickOptions; it is also available through context (#2674) 2019-03-15 09:00:55 -07:00
Doug Fawley 8e6533ee6e
client: clean up v1 balancer wrapper error handling (#2511) 2019-01-30 10:56:23 -08:00
shaun e9c1ac35ec fix: typos (#2591) 2019-01-23 09:59:48 -08:00
Menghan Li 191cc8e37b
grpclb: filter out grpclb addresses if balancer in use is not grpclb (#2509) 2018-12-13 10:54:42 -08:00
Doug Fawley 04ea82009c
cleanup: replace "x/net/context" import with "context" (#2439) 2018-11-12 13:30:41 -08:00
lyuxuan 105f61423e
health: Client LB channel health checking (#2387) 2018-11-01 10:49:35 -07:00
Doug Fawley 371811880c
balancer: add clarifying note to PickOptions.Header (#2377) 2018-10-15 10:27:54 -07:00
Doug Fawley 5b2c343e0b
add header metadata to PickOptions (#2376) 2018-10-12 15:44:20 -07:00
Doug Fawley c195587d96
balancer: add trailer metadata to DoneInfo (#2359) 2018-10-10 13:21:08 -07:00
Menghan Li 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
Mike Cheng 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
Carl Mastrangelo 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
Karsten Weiss 7de9139327 Fix typos (#1994) 2018-04-16 10:03:02 -07:00
Menghan Li c4a6e7589b documentation: mention Register functions should be call at init time (#1975) 2018-04-12 15:11:04 -07:00
lyuxuan 7f73c863c0
Channelz: Entity Registration and Deletion (#1811) 2018-04-09 11:13:06 -07:00
Menghan Li 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
lyuxuan be077907e2
make load balancing policy name string case-insensitive (#1708) 2017-12-04 14:03:22 -08:00
Menghan Li 61c67402b9
Add comments to ClientConn/SubConn interfaces to indicate new methods may be added (#1680) 2017-12-01 13:25:57 -08:00
Menghan Li 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
Menghan Li de2209a968
Update picker doc when returned SubConn is not ready (#1659) 2017-11-09 13:53:22 -08:00
Menghan Li a353537ff5 Register and use default balancers and resolvers (#1551) 2017-10-19 11:32:06 -07:00