Ben Johnson
00ce4a504e
Wait for quorum write before returning from Log.Apply().
...
This commit ensures a commit is written to a quorum before returning
from Log.Apply().
2015-05-13 16:05:26 -06:00
Philip O'Toole
f063ebfad2
Default Raft election timeout to 5 seconds
2015-05-12 13:57:28 -07:00
Ben Johnson
16c8449ca1
Add additional logging for RequestVote.
2015-05-11 15:41:05 -06:00
Philip O'Toole
b8b396807e
Set leader ID on log open if only 1 node
...
Without this change a restart of a single-node cluster would result in
no Raft leader.
2015-05-11 11:23:43 -07:00
Cory LaNou
3205d8e182
removing unused code
2015-05-04 09:53:03 -06:00
Philip O'Toole
c539072519
Return whether a snap should occur as bool
...
This avoids a race condition when accessing snapshotIndex.
2015-04-30 15:14:25 -07:00
Philip O'Toole
77fea49cca
Use a locking-buffer to prevent races during tests
2015-04-30 14:44:20 -07:00
Ben Johnson
80a6f2eccd
Do not require snapshot on Log.WriteEntriesTo().
...
This commit fixes a bug where snapshots were always sent when connecting
to the leader -- even when not required.
2015-04-29 14:41:11 -06:00
Philip O'Toole
43827a4ca3
Merge pull request #2423 from influxdb/reenable_elect_test
...
Re-enable leader election test
2015-04-24 15:53:00 -07:00
Philip O'Toole
5894f6580c
Merge pull request #2415 from xiaost/fix-leaderid-error
...
raft: fix leaderID error when state changed
2015-04-24 15:50:33 -07:00
Philip O'Toole
b6fd3605f9
Re-enable leader election test
...
This may have been fixed by PR #2418 .
2015-04-24 15:24:00 -07:00
Jason Wilder
da5935e885
Fix node getting stuck in candidate state
...
During an election, a node can sometimes get stuck in candidate state
causing it to never read from the new leader. This would prevent
it from incrementing it's index and staying consisistent w/ the
leader.
2015-04-24 16:00:54 -06:00
Jason Wilder
a9bdfb3b86
Log node state and id in raft traces
...
When running multiple nodes locally w/ raft tracing, it's very difficult
to determine which node is logging. This adds the nodes state(leader,follower,candiate) and
id to all the log messages so we can tarce the nodes states more easily.
2015-04-24 13:25:27 -06:00
Jason Wilder
a4017fa4fd
Replace heartbeat log threshold time w/ constant
2015-04-24 10:33:34 -06:00
Jason Wilder
49b80a6d19
Track and log the number of times a heartbeat has failed
2015-04-24 09:44:44 -06:00
Jason Wilder
2e47a8de11
Log when heartbeat succeeds again
2015-04-24 09:32:15 -06:00
Jason Wilder
174afb5eb9
Log heartbeat error once every 15s
...
Prevents logs from getting flooded with a message every second when
a broker node is down.
Fixes #1896
2015-04-24 08:43:42 -06:00
xiaost
e521ac9b73
raft: fix leaderID error when state changed
2015-04-24 22:23:45 +08:00
Philip O'Toole
12c02923c1
Issue 2303
2015-04-15 18:24:33 -07:00
Ben Johnson
b54f81fcac
Fix stream writer flushing to be thread safe.
...
This change fixes the raft streams so that Flush() is not called
asynchronously while the snapshot is being written.
2015-04-15 12:07:03 -06:00
Ben Johnson
090f8c7120
fix race
2015-04-15 11:57:03 -06:00
Ben Johnson
6e124f3ab6
Start cluster before broker.
...
This commit fixes an issue where the second node joins but the first node
cannot commit because it doesn't have the HTTP endpoint running yet. This
is a side effect of streaming raft since we don't synchronize the quorum
set with the heartbeats. We should cache the config per term in the future.
2015-04-15 11:18:44 -06:00
Ben Johnson
e3e98d67b1
Merge branch 'master' of https://github.com/influxdb/influxdb into raft
...
Conflicts:
CHANGELOG.md
2015-04-13 13:55:30 -06:00
Ben Johnson
4c4c03852c
Merge branch 'master' of https://github.com/influxdb/influxdb into raft
2015-04-13 13:54:06 -06:00
runner.mei
5750b35b0f
fix chmod is unsupported on the windows
2015-04-13 22:56:27 +08:00
Ben Johnson
df605fce74
Add log entry cache to raft log.
2015-04-12 16:34:37 -06:00
Ben Johnson
44b4992b75
Add handling for snapshotting pseudo-state.
2015-04-12 14:24:30 -06:00
Ben Johnson
908fe7db4a
Wrap raft.Log mutex.
2015-04-12 12:57:34 -06:00
Philip O'Toole
cfea766039
Merge pull request #2213 from cannium/seed
...
Give a seed to rand to make it really random
2015-04-10 16:06:24 -07:00
Ben Johnson
eaf4bfca0a
Fix term signal.
...
This commit changes raft so that term changes are made immediately and
term change signals are made afterward. Previously, election timeouts
were invalidated by incoming term changes which caused an election loop.
Stale term was also fixed and http/pprof was added too.
2015-04-10 13:52:20 -06:00
Ben Johnson
c757039f70
Update term change immediately, only send signal.
2015-04-09 17:07:12 -06:00
Ben Johnson
3f0adcf105
Always notify term change on RequestVote.
...
Previously there was a bug that ignored new terms from incoming vote
requests when the sender's log was out of date.
2015-04-09 13:33:04 -06:00
Philip O'Toole
566f6558b4
Persist term to disk when it changes
2015-04-09 11:12:09 -07:00
Ben Johnson
7815d47bc3
Merge pull request #2217 from influxdb/cluster-fix
...
Cluster fix
2015-04-09 11:52:52 -06:00
Ben Johnson
37829ea4c3
Only update term if higher in candidate loop.
...
This fixes a bug where votes were overwritten because terms were
being reset by incoming terms that were the same.
2015-04-09 10:55:39 -06:00
Can ZHANG
722aa0866f
Give a seed to rand to make it really random
2015-04-09 22:19:55 +08:00
Ben Johnson
bcfc259fe8
Wait for first applied index on Log.Join().
...
Previously the join method returned immediately after connecting.
Now the join method will wait until the snapshot and/or log entry
is replicated as well before returning.
2015-04-08 13:34:21 -06:00
Ben Johnson
3d71d45cf6
Return term from vote, add term logging.
2015-04-04 10:59:50 -06:00
runner.mei
6a7cb61f6d
fix unit test is failed with connection refused on the win32
2015-04-03 13:48:52 +08:00
Ben Johnson
bc444821b9
Add raft term logging.
2015-04-01 15:42:16 -06:00
Philip O'Toole
c326a9c9c9
Fix race condition in Raft unit test
2015-03-30 11:53:27 -07:00
Ben Johnson
947c776dc8
Fix comments.
2015-03-30 08:13:13 -06:00
Ben Johnson
189aaa0d82
Remove debug statements.
2015-03-29 15:36:55 -06:00
Ben Johnson
27f4a3efec
Fix raft transition and reader edge cases.
2015-03-29 15:04:11 -06:00
Ben Johnson
3d03602fa7
Raft documentation, read from index fix.
2015-03-29 09:08:44 -06:00
Ben Johnson
057309fc8e
Simplify raft snapshotting, entry apply.
2015-03-26 20:32:39 -06:00
Philip O'Toole
c461c7e7b4
Remove logging to specific file
2015-03-25 17:41:39 -07:00
Ben Johnson
11c808f55f
Add restore and bootstrap.
...
This commit adds the "influxd restore" command to the CLI. This allows
a snapshot that has been produced by "influxd backup" to be restored
to a config location and the broker and raft directories will be
bootstrapped based on the state of the snapshot.
2015-03-22 15:31:49 -06:00
Ben Johnson
75450466a6
Fix leader id initialization.
2015-03-16 11:27:57 -06:00
Ben Johnson
96748cb217
Update file permissions.
2015-03-14 13:49:25 -06:00