Commit Graph

81 Commits (6af9912d0c524d7b422e474261bd42f65580fdbd)

Author SHA1 Message Date
Ben Johnson fd96e245cb Merge branch 'master' of https://github.com/influxdb/influxdb into broker-recovery
Conflicts:
	CHANGELOG.md
2015-04-04 08:09:06 -06:00
Ben Johnson ba3026f400 Broker log recovery.
This pull request adds recovery to the messaging.Topic when opening. If
any partial messages are found then the file is truncated at that point
and started from there. This can occur when ungracefully shutting down
a server. It can leave half written messages at the end of segments.
2015-04-04 08:06:35 -06:00
Jason Wilder 9ee0f6445e Fix broker connect race at startup
When a data node starts up, the broker URLs were not set before
they were actually being used.  The call to client.Open() in
turn triggers the raft streamer and heartbeat which try to connect
to the broker.   If those started before the subsequent client.SetURLs()
call, you would see the following error in the logs at startup:

[messaging] 2015/04/01 11:59:22 reconnecting to broker: url={  <nil>  /messaging/messages index=2&streaming=true&topicID=0 }, err=Get /messaging/messages?index=2&streaming=true&topicID=0: unsupported protocol scheme ""

Fixing this race uncovered another bug where the join urls would be
cleared the first time the broker was started.  In this case, the
join urls should be left alone since they were set properly w/ SetURLs.

Fixes #2152
2015-04-03 21:04:42 -06:00
Jason Wilder 6d4c7e9cd5 Handle broker and data node endpoints regardless of role
This is a pre-requisite for #1934.  When running separate
broker and data nodes, you currently need to know what role
a host is performing.  This complicates cluster setup in
that you must configure separate broker URLs and data node
URLs.

This change allows a broker only node to redirect data nodes endpoints
to a valid data node and a data only node to redirect broker
endpoints to a valid broker.
2015-04-03 21:00:43 -06:00
Todd Persen 82bf75c691 Merge pull request #2150 from runner-mei/connection_refused
Make InfluxDB win32 friendly, fix unit test is failed on the windows and it is for connection refused.
2015-04-03 16:31:51 -07:00
runner.mei e129c53f64 fix unit test is failed on the windows 2015-04-03 13:50:28 +08:00
runner.mei 6a7cb61f6d fix unit test is failed with connection refused on the win32 2015-04-03 13:48:52 +08:00
Jason Wilder 64f6900ce2 Change 1000ms to 1s 2015-04-02 11:27:59 -06:00
Jason Wilder 91fb7e3756 Track data node urls on brokers
This sends data node urls via the broker heartbeat from each data
node.  The urls are tracked on the broker to support simpler
cluster setup as well as distributed queries.
2015-04-02 11:27:53 -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 41d357ac04 Fixes based on code review comments. 2015-03-14 14:07:09 -06:00
Ben Johnson b045ad5d92 Wrap open logic in anonymous functions. 2015-03-14 13:55:19 -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 12e8939647 Fix messaging client redirection. 2015-03-12 15:34:20 -06:00
Ben Johnson 7880bc2452 Add zero length data checks. 2015-03-12 12:12:26 -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
Ben Johnson 4160d0b785 Add continuously streaming topic readers. 2015-03-09 22:32:12 -06:00
Ben Johnson 5f5c6ca297 Integrate stateless messaging into influxdb package. 2015-03-09 15:47:41 -06:00
Philip O'Toole c714f147e8 Merge pull request #1875 from influxdb/raft_log_trace
Support control of Raft debug logging
2015-03-09 08:31:06 -07:00
Ben Johnson 9b5aeb1a90 Refactor messaging client/conn. 2015-03-07 23:21:44 -07:00
Ben Johnson ef8658e0fc Continuing stateless broker refactor. 2015-03-08 15:28:43 -06:00
Philip O'Toole 710e0d7de9 Add unit test for client tracking leader URL 2015-03-06 15:19:18 -08:00
Philip O'Toole 96645c7b51 Only use scheme and host of redirected URL 2015-03-06 15:19:16 -08:00
Philip O'Toole fb618cb385 Support control of Raft debug logging 2015-03-06 15:13:33 -08:00
Philip O'Toole 317fe8335a Client should track current broker leader 2015-03-06 13:59:21 -08: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
David Norton ac8a062ab0 fix #1866: use RUnlock instead of Unlock 2015-03-06 12:53:19 -05:00
David Norton 8583260bc5 fix #1866: race accessing topic replicas map 2015-03-06 11:14:11 -05:00
Ben Johnson b937f06c1f Implementing stateless broker. 2015-03-05 19:32:20 -07:00
Ben Johnson 1bbf154f2a Removing replicas and subscriptions from broker. 2015-03-01 22:32:20 -07:00
Ben Johnson 85be4e1f6a Merge branch 'master' of https://github.com/influxdb/influxdb into broker-truncation 2015-03-01 09:47:39 -07:00
Ben Johnson 16dbe8ba2f Add Broker.Truncate(). 2015-03-01 07:06:25 -07:00
Cory LaNou ad16b1b1ed disabling test until fixed. Issue #1726 2015-02-25 11:20:37 -07:00
Ben Johnson 39ae8e6406 Add topic segmentation. 2015-02-24 20:32:20 -07:00
Todd Persen e45611cde3 Pull in cluster ID for reporting. 2015-02-23 10:42:39 -08:00
Ben Johnson 7107d4b0ac Start replica subscription from index zero. 2015-02-21 15:01:32 -08:00
Ben Johnson 408cf37e5a Fix broker reopen test, docs. 2015-02-21 15:25:11 -07:00
Ben Johnson a5692b71ee Add proper broker recovery.
This commit fixes the broker recovery so that it determines the last index
from the various topic logs instead of persisting the snapshot on every
message that comes in.
2015-02-21 08:21:51 -07:00
Paul Dix 36d16a3172 Update broker to have URLs for replicas
* Update the infludb broker to not need a server so that it'll work on non-data node servers
* Update messaging broker to keep track of connect urls for replicas
2015-02-17 21:02:53 -05:00
Ben Johnson 43e27680a4 Partial CQ structure.
Conflicts:
	cmd/influxd/run.go
2015-02-17 20:59:57 -05:00
Ben Johnson 6c14371df4 Refactor raft package.
This commit refactors the raft package to more loosely couple the individual parts. The clock is now broken into
an interface that signals individual actions in the log. The transport has been mocked to allow more control over
the log tests. The handler's log has been mocked to separate its testing from the log itself.
2015-02-04 18:59:06 -07:00
Philip O'Toole 00075be679 Disable TestBroker_Join until fixed
Panic on travis:

=== RUN TestBroker_Join
[raft] 2015/01/30 06:46:16 log open: created at
/tmp/influxdb-messaging-119432971/raft, with ID 0, term 0, last applied
index of 0
[raft] 2015/01/30 06:46:16 log state change: stopped => leader
[raft] 2015/01/30 06:46:16 log initialize: promoted to 'leader' with
cluster ID 3337066551442961397, log ID 1, term 1
[raft] 2015/01/30 06:46:16 log open: created at
/tmp/influxdb-messaging-071763182/raft, with ID 0, term 0, last applied
index of 0
[raft] 2015/01/30 06:46:17 log state change: stopped => follower
[raft] 2015/01/30 06:46:17 log join: entered 'follower' state for
cluster at http://127.0.0.1:33257  with log ID 2
[raft] 2015/01/30 06:46:17 log state change: follower => follower
[raft] 2015/01/30 06:46:17 log state change: follower => stopped
panic: write to: add stream writer: write to: replica unavailable
goroutine 410 [running]:
github.com/influxdb/influxdb/messaging_test.func·003()
    /home/travis/gopath/src/github.com/influxdb/influxdb/messaging/broker_test.go:260
+0x140
created by
github.com/influxdb/influxdb/messaging_test.(*Broker).MustReadAll
    /home/travis/gopath/src/github.com/influxdb/influxdb/messaging/broker_test.go:262
+0x14e
2015-01-29 22:47:32 -08:00
Philip O'Toole 9943f86cf4 Enable module-level logging 2015-01-29 15:07:58 -08:00