Commit graph

405 commits

Author SHA1 Message Date
Travis Turner
b304de6536
Treat coordinator as primary translate store.
Daisy-chain other nodes based on their position in the cluster.
Deprecate the `primary-url` configuration option.
2018-08-13 11:06:16 -05:00
Matt Jaffee
1901ffada6
make sure cluster gets into DEGRADED state when adding nodes
previously, losing a node could cause the cluster to go from NORMAL->DEGRADED,
but adding a node would not cause it to go from STARTING->DEGRADED. Cody brought
this up in code review.
2018-08-08 19:42:30 -05:00
Matt Jaffee
bb32706cb6
support DEGRADED in removeNode
now, nodes which have failed and been removed from the running cluster state can
still be manually removed to trigger a cluster resize event. This is important
because otherwise there is no way to cause the cluster to resize itself if a
node fails and you don't want to add a node to replace it.
2018-08-06 16:55:23 -05:00
Matt Jaffee
ba5b46898f
fix determineClusterState bug and add more test cases 2018-08-06 14:55:38 -05:00
Matt Jaffee
48af3adc21
add degraded cluster state and handle node failure
cluster is in degraded state when some number of nodes greater than 0 but less
than replicaN have failed. This is sort of a hybrid of "STARTING" and "NORMAL"
states because we can still respond to queries as in the NORMAL state, but we
need to be alert to re-add nodes to the cluster if they come back online which
required some changes to the cluster logic.

In order to make debugging easier, the test.MustRunCluster functionality now
names the nodes in the cluster explicitly as "node0", "node1", etc. "node0" is
the coordinator.

A number of TODOs are left in the test for scenarios that need to be checked.
2018-08-06 11:57:24 -05:00
Cody Soyland
e76c523135
Merge branch 'master' into 1517-metalinter-unconvert 2018-08-02 11:45:24 -05:00
Cody Soyland
dd7b5f517b
Merge branch 'master' into 1513-metalinter-megacheck 2018-08-02 10:29:47 -05:00
Cody Soyland
c44bb65163 Add more time to sleep in translator tests due to CI failures 2018-07-31 20:39:05 -05:00
Cody Soyland
0816ea8ecb Add sleep to test to wait for key replication 2018-07-31 12:11:21 -05:00
Cody Soyland
e79cd4b199 Add JSON parsing to translator test to verify keys 2018-07-31 11:40:30 -05:00
Cody Soyland
2739ce436c Merge remote-tracking branch 'travisturner/translate-cluster-fix' into translate-cluster-fix 2018-07-31 08:36:31 -05:00
Travis Turner
3ffafaca4a
ignore remote translation 2018-07-30 11:45:34 -05:00
Cody Soyland
ca800c683e Add test for cluster translator 2018-07-24 14:57:06 -05:00
Cody Soyland
dc50204846 Fix linter issues: unconvert 2018-07-20 11:51:55 -05:00
Cody Soyland
990780bd93 Fix linter issues: staticcheck (covered by megacheck, along with gosimple and unused) 2018-07-20 11:19:24 -05:00
Cody Soyland
e9523063b5 Fix linter issues: unused 2018-07-20 10:33:29 -05:00
Cody Soyland
de99b5720f Fix linter issues: vet 2018-07-19 11:37:50 -05:00
Cody Soyland
0b86bbb4f5 Fix linter issues: gochecknoinits 2018-07-18 11:58:27 -05:00
Cody Soyland
c464e0fe64 Fix linter issues: gofmt 2018-07-16 16:45:42 -05:00
Matt Jaffee
b7e5f8842e
add a configurable timeout to http handler closing
refactor handler Close func to use errgroup to be a bit less messy.

refactor pilosa.Server closing to actually return an underlying error if one occurs

add option to pilosa/test.Cluster and pilosa/server.Command to control close
timeout. currently is only used by the http handler, but conceivably could be
passed as a parameter to other subsystems of pilosa/server.Command
2018-07-10 15:16:35 -05:00
Travis Turner
1723616aac
add gossip Closer 2018-07-10 11:41:54 -05:00
Travis Turner
d22507d36d
rename gossip.NewGossipMemberSet to gossip.NewMemberSet 2018-07-09 17:05:58 -05:00
Travis Turner
babdb5ff4e
adjust test to account for new source of error downstream 2018-07-06 17:38:06 -05:00
Cody Soyland
50d57ec229 Unexport server.DefaultDiagnosticsInterval (in release tag) 2018-07-05 23:11:57 -05:00
Cody Soyland
167e41787f Unexport server.NewStatsClient 2018-07-05 23:11:56 -05:00
Cody Soyland
94e633b7eb Unexport server.DefaultDiagnosticsInterval 2018-07-05 23:11:56 -05:00
Cody Soyland
6023474ed4 Unexport server.Command.SetupNetworking 2018-07-05 23:11:56 -05:00
Matt Jaffee
d032c8941f
Merge branch 'develop' into dead-code-removal 2018-07-05 18:02:39 -05:00
Matt Jaffee
21cf6b6e57
remove URI getters since the fields were exported for serialization 2018-07-05 17:59:18 -05:00
Matt Jaffee
0a94d2f10d
Merge branch 'develop' into core-structs 2018-07-05 16:38:14 -05:00
Matt Jaffee
a164233c92
fix handler tests not to use internal and fix bug 2018-07-05 16:21:27 -05:00
Cody Soyland
da4cd84820 Remove some dead code 2018-07-05 15:31:07 -05:00
Matt Jaffee
2cec75e399
add proto encoding subpackage and use for send and receive message 2018-07-05 12:00:42 -05:00
Travis Turner
44f0b992f6
change all CreateField() methods to take functional options instead of FieldOptions 2018-07-04 21:22:35 -05:00
Matt Jaffee
5ff77c816a
get rid of unecessary server stuff and export node and uri 2018-07-03 13:26:51 -05:00
Matt Jaffee
f6aef32093
make gossip's interface to Pilosa the API struct rather than effectively being pilosa.Server 2018-07-03 12:58:18 -05:00
Travis Turner
cba91be126
move internal http endpoints under /internal 2018-07-02 08:48:23 -05:00
Travis Turner
3adc3f5978
add tests for index and field success responses 2018-07-01 19:54:09 -05:00
Travis Turner
7dd1f50a75
consolidate http errors into a shared response type 2018-07-01 19:54:09 -05:00
Travis Turner
5dd7a9556a
rename slice to shard 2018-06-28 14:07:07 -05:00
Cody Soyland
824474160e Enhance test utilities (introduce Cluster type, improve naming) 2018-06-28 13:34:58 -05:00
Travis Turner
22661f3571
Merge branch 'develop' into field-options 2018-06-28 10:20:17 -05:00
Matt Jaffee
ea448fee9c
remove remaining external references to Server.Cluster 2018-06-27 13:37:07 -05:00
Matt Jaffee
fbe035ef25
simplify test cluster setup by exposing gossip transport on server.Command 2018-06-27 10:46:37 -05:00
Matt Jaffee
41bdfceb57
remove MemberSet from cluster, Open in server package 2018-06-27 07:22:32 -05:00
Matt Jaffee
c312bc1316
simplify arguments to NewGossipMemberSet 2018-06-27 07:18:16 -05:00
Travis Turner
6ab2729f0c
Merge branch 'develop' into field-options 2018-06-26 23:39:42 -05:00
Matt Jaffee
bcb6942c80
continue simplifying memberset and pilosa setup
since the gossip MemberSet has access to Server, it wasn't really necessary to
pass it a Node object when calling Open on it from Cluster. The end goal is to
have it be removed from Cluster entirely, and have it be Opened externally, and
this is a step toward that.

Exposing Node method on Server doesn't really expose any more than was already
there as the same info can be gotten from LocalStatus with a bit of type
casting. I figured adding the method was a little cleaner, and we could collapse
all the functionality when the dust has settled.

The Cluster.open method has been broken into two parts - one of which happens
earlier (at NewServer time), and the other will eventually just be "waiting to
make sure we've joined the cluster". Right now it's calling Memberset.Open, and
then waiting to make sure the cluster has been joined.
2018-06-26 14:36:05 -05:00
Matt Jaffee
d9b4cfacb0
Merge branch 'develop' into fix-translate-merged 2018-06-26 12:51:41 -05:00
Matt Jaffee
3314a0372c
Merge branch 'develop' into simplify-event-receiver 2018-06-26 11:45:14 -05:00