Commit Graph

103 Commits (ee01a5f66ffba7115939b72ac70530f387e51524)

Author SHA1 Message Date
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
Ben Johnson 53dbec8232 Add config notifications and increased test coverage. 2015-03-14 13:36:06 -06:00
Ben Johnson 5f6bcf523f Fix broker integration bugs. 2015-03-11 12:00:45 -06:00
Ben Johnson 66115f95ca Merge branch 'master' of https://github.com/influxdb/influxdb into stateless-broker
Conflicts:
	cmd/influxd/run.go
	messaging/broker.go
	messaging/client.go
	messaging/client_test.go
	messaging/intg_test.go
	server.go
	tx_test.go
2015-03-10 16:27:37 -06:00
Ben Johnson 27e9132796 Integrate stateless broker into remaining packages. 2015-03-10 14:53:45 -06:00
Joseph Rothrock 9b63eed767 Merge branch 'master' of github.com:influxdb/influxdb into 1753
Conflicts:
	CHANGELOG.md
2015-03-06 12:37:15 -08:00
Joseph Rothrock 771ef1cec3 Don't Panic on Missing Dirs
Issue: 1753
Figure out what's missing, create it, and keep going.
2015-03-06 12:11:02 -08:00
dgnorton 3454523bae Merge pull request #1864 from influxdb/fix-1180
fix #1180: race in startStateLoop
2015-03-06 13:21:05 -05:00
Ben Johnson cae0e85ed7 Update higher term on leader during stream request.
This commit adds a check for newer terms in the streaming endpoint.
2015-03-06 11:12:54 -07:00
David Norton cb780d82d5 fix #1180: race in startStateLoop 2015-03-06 13:09:46 -05:00
Todd Persen 11fce7cb33 Seed the random Int63 generator. 2015-02-23 23:19:56 -08:00
Ben Johnson 9dd299fe80 Add small delay for single node heartbeat.
This commit adds a small 10ms delay to the heartbeat when there is only
one node in the cluster. This code needs a larger fix to avoid heartbeats
with a single node cluster but this should work well in the short term.
2015-02-23 16:18:19 -07:00
Ben Johnson 64cc1fb0f6 Lower wait interval to speed up tests. 2015-02-21 08:19:28 -07:00
Ben Johnson a7a8e0bba4 Fix candidate heartbeat step down. 2015-02-20 13:52:45 -07:00
Ben Johnson 9ff2969d38 Add set up code for raft internal tests. 2015-02-20 13:52:12 -07:00
Ben Johnson 02764a8a12 Fix raft last log index. 2015-02-20 11:02:30 -07:00
Ben Johnson 88ef9948c5 minor raft fixes 2015-02-19 11:24:23 -07:00
Ben Johnson be22933c49 Additional raft fixes. 2015-02-18 15:37:42 -07:00
Ben Johnson f6ceb9bd32 Refactor raft state handling.
This commit changes the state handling of the raft log. The actions
for related to each raft state are strictly confined within that state's
loop. To transition between states, the raft log now much clean up all
its actions before moving on.

This fixes issues where goroutines were kicked off for one state but
were delayed in their scheduling so they would begin after the log
had already changed to another state.
2015-02-16 15:45:37 -07:00