15711 Commits

Author SHA1 Message Date
Tobias Schottdorf
bc828e939a raft: pull checkQuorumActive into prs
It's looking at each voter's Progress and needs to know how quorums
work, so this is the ideal new home for it.
2019-05-21 16:02:52 +02:00
Tobias Schottdorf
a6f222e62d raft: establish an interface around vote counting
This cleans up the mechanical refactor in the last commit and will
help with etcd-io/etcd#7625 as well.
2019-05-21 16:02:52 +02:00
Tobias Schottdorf
26eaadb1d1 raft: move votes into prs
This is purely mechanical. Cleanup deferred to the next commit.
2019-05-21 16:02:52 +02:00
Tobias Schottdorf
a11563737c raft: use progress tracker APIs in more places
This doesn't completely eliminate access to prs.nodes, but that's not
really necessary. This commit uses the existing APIs in a few more
places where it's convenient, and also sprinkles some assertions.
2019-05-21 16:02:52 +02:00
Tobias Schottdorf
ea82b2b758 raft: move more methods onto the progress tracker
Continues what was initiated in the last commit.
2019-05-21 16:02:52 +02:00
Tobias Schottdorf
dbac67e7a8 raft: extract progress tracking into own component
The Progress maps contain both the active configuration and information
about the replication status. By pulling it into its own component, this
becomes easier to unit test and also clarifies the code, which will see
changes as etcd-io/etcd#7625 is addressed.

More functionality will move into `prs` in self-contained follow-up commits.
2019-05-21 16:02:52 +02:00
Fanmin Shi
0cf6e1bcb8
MAINTAINERS: remove fanmin shi
I no longer have the time to maintain etcd as my career takes me to a different direction; Hence, I think it is appropriate to remove myself from the maintainer responsibility.

Working on etcd project was one of the most challenging and rewarding experiences I ever had. Thanks @xiang90 @gyuho @heyitsanthony @philips
2019-05-20 23:47:35 -07:00
Brandon Philips
c5e5240004
*: move to etcd.io for docs
Remove all readthedocs references for https://etcd.io to ensure the SEO
goes to the right place.
2019-05-20 14:32:08 -07:00
Sahdev Zala
71881a423f
Merge pull request #10724 from majolo/patch-1
Doc: Fix typo in revision.go
2019-05-16 11:06:52 -04:00
Sahdev P. Zala
9a6f7d4361 README: update handling of security vulnerabilities
We may not want to suggest to contact CoreOS now. We could remove this
section but consiering the nature of the subject, discussion with the project
maintainers probably a good idea if someone doesn't find it comfortable
to report an issue right away.
2019-05-16 10:32:32 -04:00
Max Lowther
9ab3572662 Doc: Fix typo in revision.go 2019-05-16 14:29:10 +01:00
Xiang Li
d4cdbb1ea0
Merge pull request #10727 from jingyih/learner_part2
*: support raft learner in etcd - part 2
2019-05-15 16:41:08 -07:00
Jingyi Hu
23f1d02391 *: address comments 2019-05-15 15:58:46 -07:00
Jingyi Hu
90d28c0de7 clientv3/integration: deflake TestKVForLearner
Adding delay in the test for the newly started learner member to catch
up applying config change entries in raft log.
2019-05-15 13:58:28 -07:00
Jingyi Hu
b23c8f3e8f clientv3/integration: fix cluster tests
Fixes TestMemberAddForLearner and TestMemberPromoteForLearner.
2019-05-15 13:58:26 -07:00
Jingyi Hu
ac057951cc integration: remove unnecessary type conversion
Fixes go 'unconvert' test.
2019-05-15 13:48:54 -07:00
Jingyi Hu
c836e37a83 etcdserver: remove unnecessary bool comparison
Fixes 'gosimple' test.
2019-05-15 13:48:54 -07:00
Jingyi Hu
c55519b3a5 words: whitelist words to fix goword test. 2019-05-15 13:48:54 -07:00
WizardCXY
a039f2efb8 clientv3, etcdctl: MemberPromote for learner 2019-05-15 13:48:52 -07:00
Jingyi Hu
bd7f42855b integration: add TestTransferLeadershipWithLearner
Adding integration test TestTransferLeadershipWithLearner, which ensures
that TransferLeadership does not timeout due to learner is automatically
picked by leader as transferee.
2019-05-15 13:27:42 -07:00
Jingyi Hu
e8dc4c5c25 integration: add TestMoveLeaderToLearnerError
Adding integration test TestMoveLeaderToLearnerError, which ensures that
leader transfer to learner member will fail.
2019-05-15 13:27:42 -07:00
Jingyi Hu
44d935e90a etcdserver: exclude learner from leader transfer
1. Maintenance API MoveLeader() returns ErrBadLeaderTransferee if
transferee does not exist or is raft learner.

2. etcdserver TransferLeadership() only choose voting member as
transferee.
2019-05-15 13:27:42 -07:00
WizardCXY
7f9479acc1 clientv3: add member promote 2019-05-15 13:27:42 -07:00
WizardCXY
ba9fd620e8 etcdserver: support MemberPromote for learner 2019-05-15 13:27:42 -07:00
Jingyi Hu
57a11eb1e1 integration: add TestKVForLearner
Adding TestKVForLearner. Also adding test utility functions for clientv3
integration tests.
2019-05-15 13:27:38 -07:00
Jingyi Hu
43ed94f769 etcdserver: filter rpc request to learner
Hardcoded allowed rpc for learner node. Added filtering in grpc
interceptor to check if rpc is allowed for learner node.
2019-05-15 13:15:20 -07:00
Jingyi Hu
355d0ab2a6 *: add learner field in endpoint status
Added learner field to endpoint status API.
2019-05-15 13:13:59 -07:00
Xiang Li
42acdfcea7
Merge pull request #10668 from spzala/issuetriage
Doc: create issue and PR management guidelines
2019-05-15 10:30:36 -07:00
Xiang Li
919b93b742
Merge pull request #10725 from jingyih/learner_part1
*: support raft learner in etcd - part 1
2019-05-14 20:35:48 -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
1e38de5b9d etcdctl: add learner field in member list output 2019-05-14 13:10:22 -07:00
Jingyi Hu
e4296bbad9 tests/e2e: Add test for learner member add
Added an e2e test to exercise "etcdctl member add --learner".
2019-05-14 13:10:22 -07:00
Jingyi Hu
a67d934410 etcdctl: support MemberAdd for learner
Added support for "etcdctl member add --learner".
2019-05-14 13:10:22 -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
604bc04f70 etcdserver: support MemberAdd for learner
Added IsLearner field to etcdserver internal Member type. Routed
learner MemberAdd request from server API to raft. Apply learner
MemberAdd result to server after the request is passed through Raft.
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
Jingyi Hu
7dc5451fae *: Change etcdserver API to support raft learner
- Added isLearner flag to MemberAddRequest in Cluster API.
- Added isLearner field to StatusResponse in Maintenance API.
- Added MemberPromote rpc to Cluster API.
2019-05-14 13:09:17 -07:00
Sahdev P. Zala
a44a281ac3 CHANGELOG: remove mailing list reference
Recommendations for the production were bumped up recently. The related
ML email ref is old one so we should not provide the link.

Fixes #10669
2019-05-11 09:24:41 -04:00
Xiang Li
d8c89021d7
Merge pull request #10689 from joshcc3/master
raft: cleanup wal directory if creation fails
2019-05-10 15:09:16 -07:00
Joshua Coutinho
a0c889d14b wal: add a test for wal cleanup, improve comments
To add test coverage of wal cleanup.
2019-05-10 22:36:26 +01:00
Sam Batschelet
1411c585be etcdserver: fix typo in log message
Signed-off-by: Sam Batschelet <sbatsche@redhat.com>
2019-05-10 09:54:00 -04:00
Jingyi Hu
a73fb85c0c mvcc: fully concurrent read 2019-05-08 19:11:23 -07:00
paulfantom
886d30d223 Documentation: provide better user experience with autorefreshing grafana dashboard 2019-05-08 06:58:28 -04:00
jcoutin
f7f7e9c762 wal: Improve cleanup for robustness and debuggability
Rename wal with '.suffix.<timestamp>' instead of delete it and call cleanup when perr in a 'defer'ed statement.
2019-05-07 21:38:40 +01:00
Joshua Coutinho
51035bfd84 wal: cleanup wal directory if creation fails
delete <data-dir>/member/wal if any operation after the rename in
wal.Create fails to avoid reading an inconsistent WAL on restart.

Fixes #10688
2019-05-04 01:58:57 +01:00
Sahdev P. Zala
39bbc66b46 Doc: create issue and PR management guidelines
I would like to propose a formal guide for issue triage and PR management.
This should help us keep open issues and PRs under a desirable numbers.
For example, keep issues under 100. These guidelines should specially help
manage and close issues and PRs that are inactive in a timely manner.
2019-05-03 17:03:17 -04:00
Xiang Li
caee28a88e
Merge pull request #10666 from mkumatag/fix_tests
Fix tests for latest golang
2019-05-03 11:18:58 -07:00
Gyuho Lee
4d6ebafa54
Merge pull request #10704 from wilbeibi/master
raft: update raft paper link (previous link deprecated)
2019-05-03 09:34:02 -07:00
Hongyi Shen
d68f60e9a0 raft: update raft paper link (previous link deprecated) 2019-05-03 08:50:16 -07:00