Jason Wilder
43f0407178
Ensure a node can join an existing single node raft cluster
2015-07-23 10:21:23 -06:00
Jason Wilder
cb718b9832
Only allow adding non-raft nodes for now
...
Adding raft nodes is more complicated and can break a cluster when
moving from 1 to 2 nodes. This will be fixed in later PR.
2015-07-23 10:21:23 -06:00
Jason Wilder
9db3a779e9
Assign and store a node ID when joining an existing cluster
2015-07-23 10:21:23 -06:00
Jason Wilder
3f90891b82
Proxy raft and rpc connections to leader transparently
...
Nodes that are not part of the raft cluster will not reliably know who the
current raft cluster leader is. To make communication simpler, proxy all
rpc and raft calls to the current raft leader if a non-leader receives one.
2015-07-23 10:21:23 -06:00
Jason Wilder
e06f6f421b
Add ability to join an existing cluster
...
This adds some basic ability to join a node to an existing cluster. It
uses a rpc layer to initiate a join request to an existing memeber. The
response indicates whether the joining node should take part in the raft
cluster and who it's peers should be. If raft should not be started, the
peers are the addresses of the current raft members that it should delegate
consensus operations.
To keep the meta store implementation agnostic of whether it's running
a local raft or not, a consensusStrategy type was also added.
2015-07-23 10:21:22 -06:00
Jason Wilder
abfd438a11
Implement remote meta data fetch
...
This adds some basic plumbing to make remote procedure calls to other cluster
members. This first implementation allows a node to contact the raft leader
and fetch a copy of the meta data. This will be used by non-raft members to
pull down the latest metadata.
2015-07-23 10:21:22 -06:00
Philip O'Toole
641b38f394
Merge pull request #3256 from cannium/remove-unnecessary-timeout
...
Remove unnecessary timeout in WaitForLeader()
2015-07-19 12:01:22 -07:00
Philip O'Toole
f549910a18
Merge pull request #3279 from LK4D4/fix_style_else
...
Fix style issues with else
2015-07-17 11:53:42 -07:00
gunnaraasen
9ba37325f6
Fixes authorization.
...
Adds GRANT and REVOKE statements for admin privilege. Adds authorization to the query endpoint.
2015-07-17 11:33:06 -07:00
Alexander Morozov
675eacbf2c
Fix style issues with else
...
In go it's better to just continue flow without "else", if it is return in
"if" statement.
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-17 11:10:23 -07:00
gunnaraasen
ee8ba11c4f
Add ON token to SHOW RETENTION POLICIES parser with tests
2015-07-16 13:45:50 -07:00
Philip O'Toole
74cb96646c
Refactor query engine for distributed query support
...
With this change, the query engine code gathers information about
shards and tagsets by working with individual shards, collating the
information, and returning that to the client. It does not assume that any
particular shard is local, and accesses all shards through abstracted
Mappers, of which there are two types -- a Mapper type for Raw queries
and a second type for Aggregate queries. There are corresponding
Executors for each type of Mapper, but both types of Executors share the
same interface.
2015-07-15 12:54:55 -07:00
Can ZHANG
c41ef86c3c
Remove unnecessary timeout in WaitForLeader()
...
If the timer expires and a leader is still not selected, the local data node will never be created.
2015-07-09 15:00:24 +08:00
Philip O'Toole
bc15a6ea27
Set log prefix for Metastore
...
Log messages from this package do not look the same as all other log
messages.
2015-07-06 12:24:00 -04:00
Jason Wilder
30b15d3c55
Use salted hashes for in memory password cache
2015-06-30 16:55:30 -06:00
Jason Wilder
153d18f38c
Add synchronization around authcache accesses
2015-06-30 18:29:36 -04:00
David Norton
ba6bddc5f8
fix #3102 : fix race in test
2015-06-30 18:29:36 -04:00
David Norton
3463d906e9
fix #3102 : add unit test for authentication
2015-06-30 18:29:36 -04:00
David Norton
debc3cc11c
fix #3102 : add authentication cache
2015-06-30 18:29:11 -04:00
Jason Wilder
b9b80b3d55
Make show stats return error instead of panic
2015-06-29 22:53:02 -06:00
Philip O'Toole
05d660a24d
Merge pull request #3169 from jbcrail/fix-spelling-errors
...
Fix spelling errors in comments and strings.
2015-06-29 12:47:35 -04:00
Philip O'Toole
88e8babc91
Shard supports returned OwnedBy node ID
2015-06-29 12:33:10 -04:00
Joseph Crail
5fccee3d16
Fix spelling errors in comments and strings.
2015-06-28 02:54:34 -04:00
Philip O'Toole
64ace983e8
Support return of shard groups for timerange
2015-06-26 17:28:52 -04:00
David Norton
4c194f2c8d
fix #3014 : make code review changes
2015-06-25 22:26:53 -04:00
David Norton
e2f0814904
fix #3014 : make code review changes
2015-06-25 20:10:17 -04:00
David Norton
3c7a82d91c
fix #3014 : implement snapshots
2015-06-25 19:54:00 -04:00
David Norton
90520beb70
fix #2944 : update unit test
2015-06-22 15:40:31 -04:00
David Norton
0467aa8fec
fix #2944 : don't require WHERE time on create CQ
2015-06-22 15:39:22 -04:00
Vladimir Lopes
02b8c6fbf1
Don't use deleted shard groups on pre-creation
...
The way it was, shard groups that were deleted by retention policy
enforcement were being recreated again, just to be deleted in the
next enforcement run. This change will help keep raft log free from
this unnecessary creation and deletion.
2015-06-18 15:20:23 -03:00
Philip O'Toole
01720aa246
Fix excessive shard group creation logging
...
Fixes issue #3029 .
2015-06-17 14:45:47 -07:00
Philip O'Toole
2428edb8a1
Correct skip of test
2015-06-17 11:58:16 -07:00
Philip O'Toole
c73ae8b845
Skip test TestStatementExecutor_ExecuteStatement_ShowGrantsFor
2015-06-17 11:56:48 -07:00
Philip O'Toole
4b332b7348
Enforce minimum retention duration of 1 hour
...
Fixes issue #2991 .
2015-06-17 11:02:07 -07:00
Dejan Golja
000d6b8b0b
added tests for SHOW GRANTS FOR statements
2015-06-17 01:24:09 +10:00
Dejan Golja
f133ceb350
Added support for SHOW GRANTS FOR USER syntax
2015-06-17 01:00:26 +10:00
Ben Johnson
a966482a8e
Ensure default retention policies are fully replicated
...
This commit sets the replication factor to the number of nodes
currently in the cluster.
2015-06-11 14:43:44 -06:00
Philip O'Toole
eaae2a1afb
Don't bother polling if leader already exists
2015-06-11 11:34:52 -07:00
Philip O'Toole
4dff5f48aa
Export WaitForLeader on MetaStore
...
This exported function can then be used by Services and
server-reporting, so those components don't make progress until the
cluster is ready.
2015-06-11 11:10:07 -07:00
Philip O'Toole
431034c8f4
Wait for Raft leader even when cluster exists
2015-06-11 01:23:30 -07:00
Philip O'Toole
b15a0df6d4
Wait for leader before reporting
2015-06-11 00:21:15 -07:00
Ben Johnson
405ec78f42
Limit cluster to 3 nodes
...
This commit restricts the maximum number of nodes in a cluster to 3.
Fixes #2750
2015-06-11 00:11:47 -06:00
Ben Johnson
52696ae3a1
Require replication factor to equal cluster size
...
This commit adds a requirement that retention policies must
be fully committed. This means that the replication factor
must be set to whatever the node count is in the cluster.
Fixes #2738
2015-06-11 00:11:03 -06:00
Ben Johnson
9f91cd7461
Fix missing protobuf data fields
...
This commit adds the following missing fields to the internal.Data:
- Term
- Index
- ClusterID
- MaxNodeID
- MaxShardGroupID
- MaxShardID
2015-06-10 22:48:44 -06:00
Ben Johnson
586da7f558
Generate cluster id on first node
...
This commit sets a cluster ID when the first node is initialized.
The ID is generated on every CreateNodeCommand so that it can be
applied consistently in the state machine of every server.
2015-06-10 22:33:58 -06:00
Ben Johnson
bc31783a00
Refactor backup and restore
...
This commit updates the snapshot code as well as the "backup" and
"restore" command to work with the new architecture.
2015-06-10 22:07:01 -06:00
Philip O'Toole
5798d99692
Move shard precreation logic to meta/store
2015-06-10 15:37:00 -07:00
Philip O'Toole
481e1860a0
Remove obsolete shard precreation source
2015-06-10 15:27:38 -07:00
Philip O'Toole
6ce7c6e4ad
Merge pull request #2852 from influxdb/panic_change_rp
...
Don't panic when altering retention policy
2015-06-09 14:16:11 -07:00
Philip O'Toole
c455c374d1
Increase Raft timeouts during test
...
Previous timeouts may be too short for CI testing resources.
2015-06-09 12:32:16 -07:00
Philip O'Toole
21343e4e0f
Don't panic when altering retention policy
...
Fixes issue #2846
2015-06-09 11:39:09 -07:00
Philip O'Toole
4b94a00644
Set auto-created retetion period to infinity
...
Fix issue #2817
2015-06-08 19:47:37 -07:00
Philip O'Toole
cc03030b5e
Add missing call to WaitGroup.Done()
...
Fix issue #2806
2015-06-08 11:10:02 -07:00
Philip O'Toole
38f38a5bd4
Improve AutoCreate camelcase
2015-06-06 17:03:52 -07:00
Philip O'Toole
5fcae1eb04
Improve Go style of retention auto-create
2015-06-06 17:02:32 -07:00
Philip O'Toole
37c11e4c5d
Remove retention auto-create magic values
2015-06-06 17:02:32 -07:00
Philip O'Toole
a64f7edc33
Add config support for retention autocreate
2015-06-06 17:02:32 -07:00
Philip O'Toole
8d9a28a583
Store supports auto-creating retention policy
2015-06-06 17:02:32 -07:00
Ben Johnson
d3d43246e4
Add raft check to meta store.
2015-06-06 14:24:41 -06:00
Ben Johnson
5ffb032c43
Invalidate cache on shard owner lookup.
2015-06-05 23:23:10 -06:00
Jason Wilder
1024965db7
Create shard received from cluster writer
2015-06-05 22:16:51 -06:00
Ben Johnson
413da5cdc4
add mux.Serve()
2015-06-05 22:13:49 -06:00
Todd Persen
4bf024109f
Merge pull request #2779 from influxdb/hook-CQs-back-2733
...
fix #2733 : hook CQs back in
2015-06-05 20:40:31 -07:00
David Norton
5f49934a23
fix #2733 : trying to fix CI race
2015-06-05 20:49:12 -04:00
Ben Johnson
6cf78206f0
refactor run.Server to use tcp.Mux
2015-06-05 16:31:58 -06:00
Ben Johnson
db2d94a6a5
refactor store to use external listeners
2015-06-05 16:08:07 -06:00
Ben Johnson
b925e1c1af
Multi-node clustering.
...
This commit adds the ability to cluster multiple nodes together to share
the same metadata through raft consensus.
2015-06-05 14:41:19 -06:00
Philip O'Toole
c59a234e7b
Deleted shard groups are not counted as "expired"
2015-06-05 13:08:36 -07:00
Philip O'Toole
d1864a4cdc
Unit test expired and deleted shard groups
2015-06-05 12:31:10 -07:00
Philip O'Toole
5e5f2cd37d
Move expired and deleted shard logic to MetaStore
2015-06-04 22:18:52 -07:00
Philip O'Toole
8600e2e036
Add shard group "DeletedAt" timestamps
2015-06-04 21:46:52 -07:00
Philip O'Toole
fab9adb361
Hook in actual retention service
2015-06-04 17:02:22 -07:00
Philip O'Toole
5b77a0f8e4
MetaStore supports returning leader state
2015-06-04 17:02:22 -07:00
Philip O'Toole
f449d8f687
Remove obsolete retention policy enforcer
2015-06-04 12:22:41 -07:00
Jason Wilder
4fa9fd5fe9
Merge pull request #2725 from influxdb/jw-client
...
Update client to use line protocol
2015-06-01 17:35:26 -06:00
Jason Wilder
e400e8f2d6
Use default retention policy if not specified during writes
2015-06-01 17:16:44 -06:00
Cory LaNou
d962283ae6
adding some integration tests
2015-06-01 16:04:20 -06:00
Cory LaNou
d581254719
fix tests
2015-06-01 11:59:58 -06:00
Cory LaNou
3597565955
reading and writing yo!
2015-06-01 11:59:58 -06:00
Ben Johnson
bf823d9887
Integrating cmd/influxd/run.
2015-05-30 14:06:36 -06:00
Paul Dix
f3245ab9ac
Make Authenticate return true if no users and creating a root user.
2015-05-30 14:29:16 -04:00
Ben Johnson
8c8a55a737
Removed 'failed' from test suite.
2015-05-30 08:59:27 -06:00
Ben Johnson
4872e6db7c
Move services to subpackage.
2015-05-30 08:20:12 -06:00
Ben Johnson
6677ea074f
more services, more test fixes, getting closer...
2015-05-29 14:59:57 -06:00
Ben Johnson
9d4527071e
Refactor run command.
2015-05-29 14:59:57 -06:00
Ben Johnson
1f294ce8de
Add httpd.Handler.serveQuery() tests.
2015-05-29 14:59:57 -06:00
Paul Dix
072dacc1ab
Update tx.go to work with tsdb
2015-05-29 14:59:57 -06:00
Ben Johnson
df1aeee70a
WIP
2015-05-29 14:56:30 -06:00
Ben Johnson
75ab63b538
Refactor meta statement execution to meta.StatementExecutor.
2015-05-29 14:54:04 -06:00
Ben Johnson
736875b858
Integrate meta package.
2015-05-29 14:54:04 -06:00
Ben Johnson
7258a9be3c
Implement meta.Store and meta.Data.
2015-05-25 16:28:58 -06:00
Jason Wilder
01d7bfb398
Move coordinator to data package
2015-05-21 10:16:54 -06:00
Ben Johnson
12e4253e15
Add single-node raft back metastore.
...
This commit adds the meta.RaftStore which can start a single node
cluster and create nodes on the meta.Data internal structure.
Conflicts:
meta/meta.go
2015-05-20 16:49:03 -06:00
Jason Wilder
0361d2d61a
Move point/shard calculation to ShardGroupInfo
2015-05-20 10:01:29 -06:00
Ben Johnson
19ece442d8
Add meta.Store accessors.
2015-05-08 11:56:08 -06:00
Ben Johnson
85e285623e
Refactor meta data to separate package.
...
This commit moves meta data from the influxdb.Server and extracts it
out to a new "meta" package. This package handles all strongly
consistent data in the database and maintains a small set of metadata
in-memory.
Conflicts:
meta/store.go
2015-05-08 11:52:05 -06:00
Jason Wilder
229638cfaf
Write path interfaces
...
This adds some placeholder interfaces for the new write path.
2015-05-07 23:12:12 -06:00