107 Commits

Author SHA1 Message Date
Anthony Romano
8ec4215279 grpcproxy: reliably track rid in watchergroups
Couldn't find watcher group from rid on server stream close, leading to
the watcher group sending on a closed channel.

Also got rid of send closing the watcher stream if the buffer is full,
this could lead to a send after close while broadcasting to all receivers.
Instead, if a send times out then the server stream is canceled.

Fixes #6739
2016-11-02 14:42:02 -07:00
Anthony Romano
7ef17d3e97 grpcproxy: add SetHeader support to ServerStream
Fixes #6726
2016-11-01 13:28:02 -07:00
Anthony Romano
06e2ce116c Merge pull request #6704 from heyitsanthony/proxy-broadcast-race
grpcproxy: fix race on watcher revision
2016-10-24 09:17:29 -07:00
Anthony Romano
bd1985d84b grpcproxy: fix race on watcher revision
Was racing between broadcast setting the watchgroup revision
and joining single watchers.
2016-10-21 16:09:39 -07:00
Anthony Romano
65eb3038fe grpcproxy: respect {min,max}{create,mod} revision
Mutexes were breaking in proxy integration tests.
2016-10-21 15:02:00 -07:00
Xiang Li
962433c17f *: set repo correctly for logging 2016-10-03 17:03:22 +08:00
Anthony Romano
6ac284a577 grpcproxy: use valid progress notification in broadcast test 2016-09-29 10:45:25 -07:00
Gyu-Ho Lee
78cfc8db95 grpcproxy: implement 'LeaseTimeToLive' 2016-09-09 08:14:46 +09:00
Xiang Li
56cfe40184 grpcproxy: fix a data race 2016-09-03 07:53:18 -07:00
Xiang Li
b56ee178d5 grpcproxy: handle overloaded stream 2016-09-03 07:49:20 -07:00
Xiang Li
0d07154926 Merge pull request #6340 from xiang90/fix_double_create
grpcproxy: fix double create event
2016-09-02 16:37:29 -07:00
Xiang Li
805d4cbd93 grpcproxy: fix double create event 2016-09-02 16:02:46 -07:00
Xiang Li
eded62e60c grpcproxy: stop watchers in watch groups 2016-09-02 16:01:11 -07:00
Xiang Li
8cd47c4348 grpcproxy: fix more issues in watch path 2016-09-02 15:13:21 -07:00
Xiang Li
51b4d6b7a8 grpcproxy: support cancel watcher
We do not wait for the cancellation from actual etcd server,
but generate it at the proxy side. The rule is to return the
latest rev that the watcher has seen. This should be good
enough for most use cases if not all.
2016-09-02 12:36:47 -07:00
Anthony Romano
d3ecebd14e grpcproxy: shut down watcher proxy when client context is done 2016-09-01 15:20:50 -07:00
Xiang Li
9ef0f5ef8a grpcproxy: fix stream closing issue 2016-09-01 09:35:56 -07:00
Xiang Li
b982c80c14 grpcproxy: fix data race 2016-08-31 16:52:04 -07:00
Gyu-Ho Lee
86bf2bc443 grpcproxy: fix recursive Context method 2016-08-29 11:37:35 -07:00
Xiang Li
c8bbb8c53e grpc-proxy: invalidate cache entries when there is a put/delete 2016-08-19 12:52:19 -07:00
Gyu-Ho Lee
a4ef36c8bf proxy/grpcproxy: fix nil-map assign to 'singles' 2016-08-15 15:48:45 -07:00
Gyu-Ho Lee
f14fd43548 proxy/httpproxy: fix httputil.RequestCanceler 2016-08-14 14:37:08 -07:00
Gyu-Ho Lee
19b35c939a proxy/grpcproxy: fix spell 'gropu' to 'group' 2016-08-13 20:55:15 -07:00
Xiang Li
57c68ab1db grpcproxy: handle create event 2016-08-02 20:51:30 -07:00
Anthony Romano
2b4c37f54a grpcproxy: don't leak goroutines on watch proxy shutdown 2016-07-25 09:34:36 -07:00
Anthony Romano
418bb5e176 grpcproxy: bind clientv3.Watcher on initialization 2016-07-25 09:34:36 -07:00
Anthony Romano
4fa9363aca grpcproxy: client watch adapter 2016-07-25 09:34:36 -07:00
Gyu-Ho Lee
abbefc9e25 grpcproxy: define 'watchergroups' in pointer
To avoid copying mutex lock values
2016-07-22 16:54:11 -07:00
Anthony Romano
768ccb8c10 grpcproxy: respect prev_kv flag 2016-07-20 15:58:33 -07:00
Anthony Romano
54df540c2c grpcproxy: wrapper from pb.KVServer to pb.KVClient 2016-07-20 15:40:33 -07:00
Xiang Li
783675f91c grpcproxy: do not send duplicate events to watchers 2016-07-19 10:14:57 -07:00
Xiang Li
a61862acc7 Merge pull request #5977 from xiang90/b_proxy
grpcproxy: return interface
2016-07-18 19:12:43 -07:00
Xiang Li
5271cf0160 grpcproxy: return interface 2016-07-18 16:47:58 -07:00
Xiang Li
7bfe75cbf3 Merge pull request #5963 from xiang90/p_filter
grpcproxy: add filter to watcher
2016-07-18 14:56:10 -07:00
Xiang Li
e1892e264d grpcproxy: add auth 2016-07-18 14:26:22 -07:00
Xiang Li
fd24340903 grpcproxy: add maintenance proxy 2016-07-18 13:31:03 -07:00
Xiang Li
58aa3483c3 grpcproxy: add filter to watcher 2016-07-18 13:02:34 -07:00
Xiang Li
3f74e9db0d *: add lease proxy 2016-07-18 12:06:59 -07:00
Xiang Li
bdfbd26e94 *: add cluster proxy 2016-07-16 12:15:32 -07:00
Xiang Li
5f3aa43899 grpcproxy: initial watch proxy 2016-07-15 14:30:45 -07:00
Gyu-Ho Lee
244b1d7d20 tcpproxy: add start logging line 2016-07-06 14:21:26 -07:00
Xiang Li
b7d0497c47 Merge pull request #5807 from xiang90/gproxy
*: initial implementation of grpc-proxy
2016-06-29 13:28:57 -07:00
Xiang Li
6d8c647db8 *: initial implementation of grpc-proxy 2016-06-29 12:06:04 -07:00
mqliang
2e2f405b1e proxy:replace c with client to improve readability 2016-06-29 11:30:03 +08:00
mqliang
f28a87d835 proxy: implement compaction 2016-06-29 11:28:10 +08:00
Anthony Romano
74b13aab61 grpcproxy: fix go vet warnings 2016-06-17 11:41:49 -07:00
mqliang
5676c5cf26 proxy: serve range request from proxy cache if set serializable 2016-06-15 14:12:36 +08:00
Gyu-Ho Lee
1610391449 *: following changes for proto update 2016-06-07 13:33:03 -07:00
Anthony Romano
fc7da09d67 *: add missing godoc package descriptions
Fixes #4074
2016-05-27 15:15:26 -07:00
Xiang Li
c73e8fd946 httpproxy: init the rand that we use to randomize endpoints
This is actually does not change anything. The endpoints are already
randomized before feeding into proxy. But it makes the proxy more safe.
2016-05-27 10:28:03 -07:00