Commit Graph

1903 Commits (9f5ec7732e42f54d0a9b91ba6c85948265c7f410)

Author SHA1 Message Date
Brandon Philips 7cf8a4a8d0 Merge pull request #779 from unihorn/89
feat: implement standby mode
2014-05-14 10:03:03 -07:00
Yicheng Qin 851026362a chore(standby_server): let syncInterval represent in second unit
This is done to keep consistency with other namings.
2014-05-14 10:13:05 -04:00
Yicheng Qin fc77b3e9e6 fix(simple_snapshot_test): enlarge reasonable index range 2014-05-13 22:28:28 -04:00
Yicheng Qin f6591b95c7 chore(standby): minor changes based on comments 2014-05-13 22:19:52 -04:00
Yicheng Qin 403f709ebd chore(cluster_config): set default timeout to 5s
Or the leader death could let the standbys down for a rather long time.
2014-05-13 16:13:44 -04:00
Yicheng Qin cbb706cd47 bump(goraft/raft): c76c5d95 2014-05-13 11:08:03 -04:00
Yicheng Qin c0027bfc78 feat(cluster_config): change field from int to float64
This is modified for better flexibility, especially for testing.
2014-05-12 22:42:18 -04:00
Yicheng Qin 735ffb3092 Merge pull request #782 from unihorn/90
fix(TestV1Watch): ensure server has started
2014-05-09 15:51:48 -07:00
Yicheng Qin 6a64141962 fix(TestV1Watch): ensure server has started 2014-05-09 15:42:18 -07:00
Yicheng Qin 5367c1c998 chore(standby): minor changes based on comments 2014-05-09 15:38:03 -07:00
Yicheng Qin c6b1a738c3 feat(option): add cluster config option
It will be used when creating a brand-new cluster.
2014-05-09 15:22:11 -07:00
Yicheng Qin 6d4f018887 chore(cluster_config): rename SyncClusterInterval to SyncInterval
for better naming
2014-05-09 13:28:21 -07:00
Yicheng Qin 765cd5d8b3 refactor(find_cluster): make it simpler 2014-05-09 02:27:04 -07:00
Yicheng Qin baadf63912 feat: implement standby mode
Change log:
1. PeerServer
- estimate initial mode from its log through removedInLog variable
- refactor FindCluster to return the estimation
- refactor Start to call FindCluster explicitly
- move raftServer start and cluster init from FindCluster to Start
- remove stopNotify from PeerServer because it is not used anymore
2. Etcd
- refactor Run logic to fit the specification
3. ClusterConfig
- rename promoteDelay to removeDelay for better naming
- add SyncClusterInterval field to ClusterConfig
- commit command to set default cluster config when cluster is created
- store cluster config info into key space for consistency
- reload cluster config when reboot
4. add StandbyServer
5. Error
- remove unused EcodePromoteError
2014-05-09 01:56:55 -07:00
Yicheng Qin 5bd08a327d docs(standbys): specification for standby module 2014-05-08 15:02:55 -07:00
Yicheng Qin f1c13e2d9d Merge pull request #774 from unihorn/83
feat(join): check cluster conditions before join
2014-05-08 14:08:38 -07:00
Yicheng Qin 6c950eaf97 Merge pull request #772 from unihorn/81
feat(peer_server): stop service when removed
2014-05-08 14:02:09 -07:00
Yicheng Qin 5c7a963cf0 chore(peer_server): adjust code to make it more clear 2014-05-08 13:20:46 -07:00
Yicheng Qin c92231c91a Merge branch 'master' of github.com:coreos/etcd
Conflicts:
	server/peer_server_handlers.go
2014-05-08 13:17:51 -07:00
Yicheng Qin e960a0e03c chore(client): minor changes based on comments
The changes are made on error handling, comments and constant.
2014-05-08 13:15:10 -07:00
Yicheng Qin 015d228b04 Merge pull request #763 from unihorn/77
fix(raft_server_stats): set startTime when init
2014-05-08 12:28:44 -07:00
Yicheng Qin e31249fa22 Merge pull request #778 from unihorn/88
fix(TestV2Watch): ensure server has started
2014-05-08 12:26:56 -07:00
Yicheng Qin b3e66ee980 fix(TestV2Watch): ensure server has started 2014-05-08 12:18:08 -07:00
Yicheng Qin af33d61774 Merge pull request #775 from unihorn/84
refactor(tests/server_utils): use etcd instance
2014-05-08 11:53:46 -07:00
Yicheng Qin bc4a98c386 Merge pull request #776 from unihorn/85
feat(peer_server): add State field to machineMessage
2014-05-08 11:53:26 -07:00
Yicheng Qin fb17ccf5ee chore(cors): more explanation for flush in ServeHTTP 2014-05-08 10:54:50 -07:00
Yicheng Qin 04f09d2fd0 feat(peer_server): add State field to machineMessage
State field indicates the state of each machine.
For now, its value could be follower or leader.
2014-05-08 10:25:39 -07:00
Yicheng Qin 6450d6dfb9 Merge pull request #777 from unihorn/86
fix(registry): fetch peers from store instead of cache
2014-05-08 09:11:04 -07:00
Yicheng Qin 0558b546ff fix(registry): fetch peers from store instead of cache
The current cache implmentation may contain removed machines, so we
fetch peers from store for correctness.
2014-05-08 08:44:32 -07:00
Yicheng Qin 5465201292 chore(peer_server): more explanation for asyncRemove 2014-05-07 16:31:17 -07:00
Yicheng Qin ae81f843f1 refactor(client): remove useless logic in redirection 2014-05-07 16:09:08 -07:00
Yicheng Qin c9ce14c857 chore(peer_server): set client transporter separately
It also moves the hack on timeout from raft transporter to
client transporter.
2014-05-07 13:26:05 -07:00
Yicheng Qin bed20b7837 chore(peer_server): add more function description 2014-05-07 12:51:41 -07:00
Yicheng Qin 206881bfec fix(peer_server): check running status before start/stop
This makes peer server more robust.
2014-05-07 12:44:48 -07:00
Yicheng Qin cf25650b3c fix(etcd): exit 0 when removed 2014-05-07 12:39:07 -07:00
Yicheng Qin 7dce4c8fbb refactor(tests/server_utils): use etcd instance
Remove duplicated etcd start code.
2014-05-07 11:49:03 -07:00
Yicheng Qin b0ffb4fd10 chore(config): move Sanitize and Force check to boot process
Make Load function just load parameters. So etcd instance could
use Config struct to start service.
2014-05-07 11:48:53 -07:00
Yicheng Qin 001b1fcd46 feat(join): check cluster conditions before join 2014-05-07 11:46:21 -07:00
Yicheng Qin 4e14604e5c refactor(server): add Client struct
This is used to send request to web API.
It will do this behavior a lot in standby mode, so I abstract this
struct first.
2014-05-07 11:46:15 -07:00
Xiang Li b56aa62bcc Merge pull request #773 from unihorn/82
tests(snapshot): expand reasonable range for index
2014-05-07 13:02:41 -04:00
Yicheng Qin ba36a16bc5 feat(peer_server): stop service when removed
It doesn't modify the exit logic, but makes external code know
when removal happens and be able to determine what it should do.
2014-05-07 10:00:27 -07:00
Yicheng Qin 997e7d3bf4 Merge pull request #771 from unihorn/80
refactor(peer_server): remove standby mode in peer server
2014-05-07 09:57:02 -07:00
Yicheng Qin c4cd86e094 tests(snapshot): expand reasonable range for index
snapshot file was createed with name '0_503.ss' and '0_1010.ss' when testing.
2014-05-07 09:41:36 -07:00
Yicheng Qin 17e299995c refactor(peer_server): remove standby mode in peer server 2014-05-07 09:10:09 -07:00
Xiang Li e11fd7cd40 Merge pull request #770 from shawnps/patch-1
Fix comment typo
2014-05-07 11:09:34 -04:00
Yicheng Qin d78116c35b Merge pull request #675 from unihorn/56
fix(peer_server): exit all server goroutines in Stop()
2014-05-07 08:09:14 -07:00
Yicheng Qin 6516cf854c chore(server): rename daemon to startRoutine
For better understanding.
2014-05-07 07:51:44 -07:00
Yicheng Qin e55512f60b fix(peer_server): graceful stop for peer server run
Peer server will be started and stopped repeatedly in the design.
This step ensures its stop doesn't affect the next start.
The patch includes goroutine stop and timer trigger remove.
2014-05-07 07:43:27 -07:00
Yicheng Qin 43ad623965 Merge pull request #740 from unihorn/67
docs(upgrade): instructions for upgrade to v0.4
2014-05-07 07:01:20 -07:00
Yicheng Qin 2d5c7d7fb0 docs(upgrade): instructions for upgrade to v0.4 2014-05-07 07:00:35 -07:00