Xiang Li
bbb379fa4a
Merge pull request #10974 from lzhfromustc/watchers
...
proxy: Add critical section to protect wps.watchers and wps.nextWatcherID
2019-08-14 16:14:27 -07:00
Ziheng Liu
a0b2c6ad4b
proxy/grpcproxy: Add critical section to protect wps.watchers and wps.nextWatcherID
2019-08-07 17:58:49 -07:00
Gyuho Lee
9b2f18c6fb
proxy/grpcproxy: deprecate "grpc.ErrClientConnClosing"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-08-05 13:27:16 -07:00
Gyuho Lee
6a0811a949
*: use new adt.IntervalTree interface
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-07-31 22:23:13 -07:00
Gyuho Lee
34bd797e67
*: revert module import paths
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2019-05-28 15:39:35 -07:00
Jingyi Hu
e1acf244c1
etcdserver: Add MemberAddAsLearner
...
Made changes to api/membership:
- Added MemberAddAsLearner
- Reverted changes to MemberAdd - removed input parameter isLearner
2019-05-14 18:18:10 -07:00
Jingyi Hu
2b76200f70
*: add MemberAddAsLearner to clientv3 Cluster API
...
Made changes to Clientv3 Cluster API:
- Added MemberAddAsLearner.
- Reverted changes to MemberAdd - removed input parameter isLearner.
2019-05-14 16:56:44 -07:00
Jingyi Hu
fc14608cb7
clientv3: support MemberAdd for learner
...
Added IsLearner flag to clientv3 MemberAdd API.
2019-05-14 13:10:22 -07:00
Jingyi Hu
a0d3c4d641
*: fix compilation after API change
...
Fixed compilation erros after API change for learner.
2019-05-14 13:10:22 -07:00
shivaramr
9150bf52d6
go modules: Fix module path version to include version number
2019-04-26 15:29:50 -07:00
Sam Batschelet
9915d02022
*: Change gRPC proxy to expose etcd server endpoint /metrics
...
This PR resolves an issue where the `/metrics` endpoints exposed by the proxy were not returning metrics of the etcd members servers but of the proxy itself.
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-04-10 16:09:32 -04:00
Igor German
d88f686a91
grpcproxy: fix memory leak
...
use set instead of slice as interval value
fixes #10326
2018-12-15 17:00:51 +03:00
Xiang Li
ec5ff10436
Merge pull request #10019 from thrawn01/grpc-proxy-watch-errors
...
Improve watch error reporting when using grpc proxy
2018-09-10 12:54:33 -07:00
Gyuho Lee
0ef9ef3c74
*: rerun "gofmt"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 18:25:39 -07:00
Gyuho Lee
d37f1521b7
*: update import paths to "go.etcd.io/etcd"
...
Signed-off-by: Gyuho Lee <leegyuho@amazon.com>
2018-08-28 17:47:55 -07:00
Derrick J. Wippler
f0e6c10aba
grpcproxy: return error to client during watch create
...
Now returns errors from checkPermissionForWatch() via the CancelReason
field. This allows clients to understand why the watch was canceled.
Additionally, this change protects a watch from starting and that
otherwise might hang indefinitely.
2018-08-16 23:10:02 -05:00
Gyuho Lee
42bef8460c
*: clean up code format
...
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-07-21 16:34:56 -07:00
Gyuho Lee
d922069713
grpcproxy: fix "grpc.ErrClientConnClosing" handling
...
Fix
```
go test -v -tags cluster_proxy -run TestWatchErrConnClosed
```
with gRPC >= v1.10
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-06-15 14:47:11 -07:00
Hitoshi Mitake
b1dd19a7aa
*: don't use string literals directly in grpc metadata
...
Current etcd code uses the string literals ("token", "authorization")
as field names of grpc and swappger metadata for passing token. It is
difficult to maintain so this commit introduces new constants for the
purpose.
2018-03-15 14:17:34 +09:00
Gyuho Lee
8a518b01c4
*: revert "internal/mvcc" change
...
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-02-26 17:11:40 -08:00
Gyuho Lee
80d15948bc
*: move "mvcc" to "internal/mvcc"
...
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-26 11:14:41 -08:00
Gyuho Lee
e689ff823e
proxy/grpcproxy: remove "Errors" field
...
Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
2018-01-17 15:58:56 -08:00
Jordan Liggitt
f77e54eb13
api/etcdhttp: change /health type back to string for backwards compatibility
2018-01-15 01:57:55 -05:00
Hitoshi Mitake
e8c18e3368
proxy: handle authed snapshot request in grpcproxy
...
Like the previous commit 10f783efdd12, this commit lets grpcproxy
forward an auth token supplied by its client in an explicit
manner. snapshot is a stream RPC so this process is required like
watch.
2017-09-20 15:27:27 +09:00
Hitoshi Mitake
94b5071c30
etcdmain, proxy: handle authed watch in grpcproxy
...
This commit lets grpcproxy handle authed watch. The main changes are:
1. forwrading a token of a new broadcast client
2. checking permission of a new client that participates to an
existing broadcast
2017-09-20 15:27:26 +09:00
Hitoshi Mitake
e709f83253
etcdmain, proxy: support authed RPCs with grpcproxy
...
This commit lets grpcproxy support authed RPCs. Auth tokens supplied
by clients are now forwarded to etcdserver by grpcproxy.
2017-09-20 11:14:45 +09:00
Anthony Romano
7f4464415a
grpcproxy: respect KeysOnly flag
...
Fixes #8478
2017-09-13 09:57:08 -07:00
Gyu-Ho Lee
6f76d52a1a
*: deprecate grpc.Code, grpc.ErrorDesc
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-11 09:28:56 -07:00
Gyu-Ho Lee
f65aee0759
*: replace 'golang.org/x/net/context' with 'context'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-09-07 13:39:42 -07:00
Gyu-Ho Lee
f8141db2c7
proxy/grpcproxy: implement LeaseLeases API
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-08-14 14:18:56 -07:00
Anthony Romano
6a4194c556
grpcproxy: forward PrevKv flag in Put
2017-08-03 21:38:20 -07:00
Gyu-Ho Lee
cd37ef2c1b
*: expose etcdhttp.Health, define proxy health handler
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-31 14:07:54 -07:00
Gyu-Ho Lee
8a589d2d73
grpcproxy/cluster_test: serve grpc server after register service
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-07-27 10:47:24 -07:00
Xiang Li
2a348fb8e9
Merge pull request #8263 from fanminshi/hash_by_rev
...
api: hash by rev
2017-07-26 11:22:33 -07:00
fanmin shi
a6ae677d8f
proxy: support HashKV in grpcproxy
2017-07-25 17:00:56 -07:00
Anthony Romano
9581f7676c
grpcproxy: forward Canceled field when broadcasting watch responses
2017-07-25 12:36:01 -07:00
Xiang Li
fe33bd1879
Merge pull request #8294 from mitake/proxy-cachemiss
...
proxy: don't inc a cache miss count in a case of linearizable range
2017-07-24 20:47:19 -07:00
Anthony Romano
1dcae41b20
grpcproxy: return nil on receiving snapshot EOF
...
Gets "code = OutOfRange desc = EOF" errors otherwise.
2017-07-21 11:00:22 -07:00
Hitoshi Mitake
488df4db34
proxy: don't inc a cache miss count in a case of linearizable range
...
Requests of linearizable range don't touch the cache of grpcproxy. So
incrementing the miss count wouldn't be meaningful.
2017-07-20 21:51:10 -07:00
Gyu-Ho Lee
3e263d5a4d
proxy/*: add 'MoveLeader' RPC
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-23 12:51:27 -07:00
Anthony Romano
f465e3ea8a
grpcproxy: support nested txns
2017-06-21 14:33:15 -07:00
Xiang Li
a65e3c69a6
Merge pull request #8122 from yudai/fast_fail_proxy
...
grpcproxy: Disable fast fail on lease grant call to cluster
2017-06-19 15:04:25 -07:00
Iwasaki Yudai
df2cc4bc8c
grpcproxy: Disable fast fail on lease grant call to cluster
...
Problem Observed
----------------
When there is no etcd process behind the proxy,
clients repeat resending lease grant requests without delay.
This behavior can cause abnormal resource consumption on CPU/RAM and
network.
Problem Detail
--------------
`LeaseGrant()` uses a bare protobuf client to forward requests.
However, it doesn't use `grpc.FailFast(false)`, which means the method returns
an `Unavailable` error immediately when no etcd process is available.
In clientv3, `Unavailable` errors are not considered the "Halt" error,
and library retries the request without delay.
Both clients and the proxy consume much CPU cycles to process retry requests.
Resolution
----------
Add `grpc.FailFast(false))` to `LeaseGrant()` of the `leaseProxy`.
This makes the proxy not to return immediately when no etcd process is
available. Clients will simply timeout requests instead.
2017-06-16 15:09:05 -07:00
Anthony Romano
aeb2dc03aa
grpcproxy: invalidate cache on comparison range
2017-06-16 12:13:27 -07:00
Gyu-Ho Lee
5e059fd8dc
*: use metadata Incoming/OutgoingContext
...
Fix https://github.com/coreos/etcd/issues/7888 .
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-06-15 16:41:23 -07:00
Nikola Kovacs
66687da3ba
*: grammar fixes, it's -> its
2017-06-15 18:23:16 +02:00
Anthony Romano
5bb0a091fc
adapter: auth server to client adapter
2017-06-09 09:36:16 -07:00
Anthony Romano
33c375dc44
*: fill out blank package godocs
...
Mostly one-liner short descriptions, but also includes some typo fixes
and some examples.
2017-05-18 09:41:13 -07:00
Anthony Romano
713e006bc6
adpater: adapters for lock and election services
2017-05-10 12:51:05 -07:00
Anthony Romano
fd01db9e60
grpcproxy, etcdmain: add lock and election services to proxy
2017-05-10 12:19:09 -07:00