Yicheng Qin
c3d4d11402
etcdhttp: adjust request timeout based on config
...
It uses heartbeat interval and election timeout to estimate the
expected request timeout.
This PR helps etcd survive under high roundtrip-time environment,
e.g., globally-deployed cluster.
2015-08-12 09:22:59 -07:00
Yicheng Qin
8e79fd85cb
integration: fix bind-addr-in-use
...
The bug happens when restarted member wants to listen on its original
port, but finds out that it has been occupied by some client.
Use well-known port instead of ephemeral port, so client cannot occupy
the listen port anymore.
2015-06-23 14:47:21 -07:00
Yicheng Qin
796d99c390
integration: fix TestIssue2904 when multiple cores
...
Do not wait for the cluster view of removed member to match with
expected view, since removed member does not apply entries after it is
removed.
2015-06-12 10:20:27 -07:00
Yicheng Qin
8725e69cf7
etcdserver: allow to update attributes of removed member
...
There exist the possiblity to update attributes of removed member in
reasonable workflow:
1. start member A
2. leader receives the proposal to remove member A
2. member A sends the proposal of update its attribute to the leader
3. leader commits the two proposals
So etcdserver should allow to update attributes of removed member.
2015-06-10 16:52:18 -07:00
Yicheng Qin
a6a649f1c3
etcdserver: stop exposing Cluster struct
...
After this PR, only cluster's interface Cluster is exposed, which makes
code much cleaner. And it avoids external packages to rely on cluster
struct in the future.
2015-05-13 10:01:25 -07:00
Yicheng Qin
032db5e396
*: extract types.Cluster from etcdserver.Cluster
...
The PR extracts types.Cluster from etcdserver.Cluster. types.Cluster
is used for flag parsing and etcdserver config.
There is no need to expose etcdserver.Cluster public, which contains
lots of etcdserver internal details and methods. This is the first step
for it.
2015-05-12 14:53:11 -07:00
Xiang Li
e866314b94
etcdserver: support update cluster version through raft
...
1. Persist the cluster version change through raft. When the member is restarted, it can recover
the previous known decided cluster version.
2. When there is a new leader, it is forced to do a version checking immediately. This helps to
update the first cluster version fast.
2015-05-12 11:44:34 -07:00
Xiang Li
077c8397d2
integration: add a test case for a full cluster rotation
2015-04-27 15:38:06 -07:00
Xiang Li
a42b9708ae
integration: add tests around the membership change issues
2015-04-24 13:07:43 -07:00
Yicheng Qin
1811701427
Revert "etcdserver: fix cluster fallback recovery"
...
This reverts commit cff005777a
.
Conflicts:
etcdserver/server.go
2015-04-19 11:34:33 -07:00
Yicheng Qin
73936d1874
integration: add TestDoubleTLSCluster
2015-04-02 10:08:40 -07:00
Yicheng Qin
ccb0934e22
integration: add TestTLSClusterUsingDiscovery
2015-04-02 00:01:39 -07:00
Yicheng Qin
d2efa2a615
integration: add TestTLSClusterOf3
2015-04-01 20:55:00 -07:00
Yicheng Qin
87e3de8b8b
integration: fix decrease cluster tests
2015-02-28 11:35:16 -08:00
Yicheng Qin
1c5a507761
rafthttp: refactor peer and add general stream
2015-02-28 11:35:16 -08:00
Yicheng Qin
2c94e2d771
*: make dial timeout configurable
...
Dial timeout is set shorter because
1. etcd is supposed to work in good environment, and the new value is long
enough
2. shorter dial timeout makes dial fail faster, which is good for
performance
2015-02-28 11:18:59 -08:00
Brian Waldon
cd85451971
client: clarify relationship of AfterIndex and waitIndex
2015-02-28 10:45:20 -08:00
Brian Waldon
1c03df62a5
client: WaitIndex -> AfterIndex
2015-02-28 10:38:46 -08:00
Brian Waldon
7255fb1b62
client: alias etcdserver/etcdhttp/httptypes.Member
2015-02-28 10:22:52 -08:00
Brian Waldon
3fdda06602
client: s/SyncableHTTPClient/Client/g
2015-02-28 10:22:51 -08:00
Brian Waldon
3b41b77cd7
client: ClientConfig -> Config
2015-02-28 10:22:51 -08:00
Brian Waldon
74fe28c5e0
client: exchange ClientConfig for SyncableHTTPClient
2015-02-28 10:22:50 -08:00
Brian Waldon
3d53e9bfaa
client: pass around options as pointers
2015-02-28 10:22:50 -08:00
Brian Waldon
01fc01ec69
client: KeysAPI.[R]Watch -> Watcher w/ opts struct
2015-02-28 10:19:04 -08:00
Brian Waldon
c6d955f4c1
client: drive Create with setAction; drop TTL
2015-02-28 10:12:35 -08:00
Yicheng Qin
cff005777a
etcdserver: fix cluster fallback recovery
...
Cluster and transport may recover to old states when new node joins
the cluster. Record cluster last modified index to avoid this.
2015-02-20 14:30:00 -08:00
Barak Michener
92dca0af0f
*: remove shadowing of variables from etcd and add travis test
...
We've been bitten by this enough times that I wrote a tool so that
it never happens again.
2015-02-17 16:31:42 -05:00
Xiang Li
163ea3f5c5
integration: wait for slow travis
2015-02-13 11:41:03 -08:00
Jonathan Boulle
f1ed69e883
*: switch to line comments for copyright
...
Build tags are not compatible with block comments.
Also adds copyright header to a few places it was missing.
2015-01-26 09:53:30 -08:00
Xiang Li
973f79e1c9
etcdserver: separate out raft related stuff
2015-01-15 15:15:13 -08:00
Xiang Li
1a6161d08a
Merge pull request #2104 from xiang90/timeout
...
etcdserver: make heartbeat/election configurable
2015-01-15 13:52:20 -08:00
Yicheng Qin
d380be8fa1
integration: fix TestForceNewCluster to wait leader
2015-01-15 13:27:24 -08:00
Xiang Li
276a4abac0
etcdserver: make heartbeat/election configurable
2015-01-15 11:11:33 -08:00
Yicheng Qin
68fdd70580
integration: fix TestForceNewCluster
2015-01-15 10:42:57 -08:00
Xiang Li
8e8552b2ad
integration: fix force cluster test
2015-01-14 16:40:09 -08:00
Xiang Li
1b9ccfc66f
Merge pull request #2084 from yichengq/294
...
integration: add TestForceNewCluster
2015-01-13 15:47:21 -08:00
Yicheng Qin
a318112c7a
integration: add TestForceNewCluster
2015-01-13 13:55:38 -08:00
Yicheng Qin
dc6aef0d02
etcdhttp: add NewPeerHandler test
2015-01-12 15:56:29 -08:00
Yicheng Qin
9132098960
integration: wait longer for member to be removed
2015-01-07 13:36:59 -08:00
Yicheng Qin
930156c18a
integration: adjust election ticks using env var
2015-01-07 11:18:29 -08:00
Xiang Li
152676f43a
*: support removing the leader from a 2 members cluster
2014-12-29 11:34:33 -08:00
Yicheng Qin
6d046d94d6
integration: improve member tests
2014-12-04 17:37:44 -08:00
Xiang Li
151f043414
*: add pauseMember test
2014-12-04 14:22:43 -08:00
Yicheng Qin
7a1d147795
integration: use timeout transport when launching cluster
...
This makes it do the same behavior as etcdmain does.
2014-12-01 16:26:27 -08:00
Yicheng Qin
670d98ec72
integration: attempt more times to listen on specified port
...
Travis is rather slow, and it may fail to listen on that port sometimes.
2014-11-26 14:21:15 -08:00
Brian Waldon
c0fb1c8a00
Merge pull request #1755 from bcwaldon/golang.org-deps
...
Switch to golang.org/x/net/context
2014-11-20 16:26:14 -08:00
Barak Michener
2d5ccf12ef
add snapshotted integration test
2014-11-20 15:38:08 -05:00
Yicheng Qin
9d53b94546
rafthttp: add streaming server and client
2014-11-20 11:34:50 -08:00
Brian Waldon
9a728a127a
dep: bump golang.org/x/net/context
...
Move from code.google.com/p/go.net/context to
golang.org/x/net/context before bumping to latest.
2014-11-20 10:19:12 -08:00
Xiang Li
c26de66262
integration: add integration test for remove member
2014-11-17 13:28:09 -08:00