Commit graph

70 commits

Author SHA1 Message Date
Cody Soyland
d95aeae175 Unexport gossip.Transport.Net 2018-07-05 23:11:56 -05:00
Cody Soyland
d512b187b1 Unexport gossip.GossipMemberSetOption 2018-07-05 23:11:56 -05:00
Cody Soyland
6bc7470b0c Unexport gossip.GossipMemberSet 2018-07-05 23:11:56 -05:00
Matt Jaffee
21bfa5df77
remove Holder from API 2018-07-05 20:58:25 -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
59e80f9692
put Serializer on API, add QueryRequest/Response to serializer 2018-07-05 13:35:14 -05:00
Matt Jaffee
6309d3b7f7
get gossip using serializer stuff, remove proto and internal 2018-07-05 12:32:49 -05:00
Matt Jaffee
2cec75e399
add proto encoding subpackage and use for send and receive message 2018-07-05 12:00:42 -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
Matt Jaffee
d2d84d2649
remove commented code 2018-06-29 06:52:29 -05:00
Matt Jaffee
91454a5cd0
collapse *handler interfaces into MemberServer
gossip now takes a single "MemberServer" which is implemented by server. Several
interfaces have been removed.

MemberServer contains ReceiveMessage which is a superset of the functionality of
ReceiveEvent, LocalStatus and HandleRemoteStatus are all that's left of
StatusHandler -  ClusterStatus was not used and is gone. The Node() method is
actually a subset of LocalStatus() functionality. Maybe we should break up
localstatus or remove Node... not sure.

Remove BroadcastReceiver test which was a bit silly.

NodeEvent can now be unexported, and is.
2018-06-28 17:16:08 -05:00
Matt Jaffee
12a49c3e14
remove ClusterStatus method and StatusHandler interface
gossipEventReceiver uses ReceiveMessage instead of ReceiveEvent
2018-06-28 14:45:20 -05:00
Matt Jaffee
75c1440eb5
simplify gossipEventReceiver - no longer needs separate Start method
also remove some dead code
2018-06-28 11:25:07 -05:00
Matt Jaffee
965bd08225
unexport newGossipEventReceiver and remove some dead code 2018-06-28 11:00:45 -05:00
Matt Jaffee
09adc3b461
unexport gossipEventRecevier in gossip.go 2018-06-28 10:34:42 -05:00
Matt Jaffee
c312bc1316
simplify arguments to NewGossipMemberSet 2018-06-27 07:18:16 -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
ee37152cd5
consolidate gossipEventReceiver into gossip member set
pilosa.Server now implements StatusHandler and EventReceiver and needs only
start a gossip memberset. A gossip member set now takes a server as an argument
explicitly and the maze of handlers and receivers and the starting sequence is
somewhat simplified.

Server now trivially implements EventHandler by passing the call along to its
Cluster object which has the actual implementation. This means that less things
will need to refer to cluster.
2018-06-26 07:50:33 -05:00
Matt Jaffee
56ed9bfbe1
remove broadcaster methods from gossip- don't use sendAsync anywhere 2018-06-18 18:47:29 -05:00
Travis Turner
fe167ea78c
un-export some top-level functions 2018-06-13 16:44:24 -05:00
Alan Bernstein
0ba14600da Wrap a few more errors 2018-05-10 12:08:46 -05:00
Travis Turner
5e043919ae
default GossipMemberSet.Logger to NopLogger 2018-05-09 10:48:49 -05:00
Will Fitzgerald
5a56b33826 fix minor spelling errors 2018-05-01 05:45:19 -04:00
Matthew Jaffee
9f1720f01d
unexport stuff in pilosa.Server
refactor gossip.NewGossipMemberset to not take Server
2018-04-23 15:12:23 -05:00
Matthew Jaffee
876ed56e30
move pilosa.Config to pilosa/server.Config
step 1 of #1203

The Config object is really just a specification of the options to pilosa
server, so it makes sense to have it in that package.
2018-04-19 14:51:42 -05:00
Travis Turner
d113ebe147
Support --verbose logging 2018-03-27 08:40:05 -05:00
Travis Turner
9a2aeac6f8
Clean up logger; make it honor --log-path flag.
Add functional options to NewGossipMemberSet.
2018-03-27 08:40:04 -05:00
Travis Turner
0ca7cfe498
Change Seeds() to GetBindAddr() to clarify GossipMemberSet testing. 2018-03-23 16:34:19 -05:00
Travis Turner
8686a8645c
Default gossip seed should be empty instead of local bind address 2018-03-23 15:11:45 -05:00
Travis Turner
836c8f4c2f
remove the Gossip stutter from memberlist-related config options 2018-03-19 14:29:53 -05:00
Travis Turner
29dcfd06da
Merge pull request #1117 from travisturner/cluster-resize-handle-error
replace swallowed error with log entry
2018-02-23 16:37:42 -06:00
Travis Turner
c3f25e6d2c
Merge pull request #1143 from travisturner/scheme-in-bind-addr
handle the scheme correctly in config.Bind
2018-02-23 14:20:59 -06:00
Travis Turner
3d1538d53c
handle the scheme correctly in config.Bind 2018-02-23 10:48:55 -06:00
Cody Soyland
a23fe86839 Convert gossip seed string to slice 2018-02-22 13:14:45 -06:00
Cody Soyland
fc6b0ea0e8 Add support for comma-separated list of gossip seeds for redundancy. 2018-02-22 11:45:50 -06:00
Travis Turner
666fe22ecb
replace swallowed error with log entry 2018-02-15 12:11:27 -06:00
Travis Turner
346e92a91d
return 0 values for errors. panic on unmarshal node meta data 2018-02-02 15:58:51 -06:00
Travis Turner
216ba7a41e
Use NodeID instead of URI for node identification 2018-02-02 15:58:46 -06:00
Travis Turner
c0fab2bcee
Merge branch 'master' into cluster-resize 2018-01-17 12:55:12 -06:00
Matthew Jaffee
0ac8648ea9
add NewServerCluster(size int) method to pilosa/test 2018-01-12 16:29:32 -06:00
Travis Turner
780078e427
add context to errors in gossip member set 2017-12-28 10:37:58 -06:00
Travis Turner
009a2482b4
change gossip config from memberlist.DefaultLocalConfig to memberlist.DefaultWANConfig 2017-12-22 17:06:24 -06:00
Travis Turner
78cddbd0c7
Add the rest of the available memberlist configuration options
into pilosa.Config.Gossip.
2017-12-15 12:37:51 -06:00
Travis Turner
2afbdba1c5
add lock protection around gossip.memberlist and holder.indexes 2017-12-13 08:54:11 -06:00
Travis Turner
0342da92bb
WIP: add tests for cluster resize
This commit adds support for allocating a gossip transport
and a server listener prior to opening server (and cluster).
Doing that allows tests to use a dynamically allocated port
by supplying bind port: 0.
2017-12-12 16:27:47 -06:00
Travis Turner
9667a04cad
Merge branch 'master' into cluster-resize 2017-12-08 17:56:31 -06:00
Travis Turner
cf1e41faf1
Merge branch 'master' into cluster-resize 2017-12-08 15:22:12 -06:00
Travis Turner
637111a76c
Change Broadcaster.SyndSync to send direct via http
as opposed to using memberlist's gossip broadcast.
Introduce a Gossiper interface for SendAsync gossip messages.
2017-12-08 09:00:47 -06:00
Michael Baird
9cf994bda7
Use the Broadcast Handler's SendSync implementation rather than Gossip 2017-12-08 08:22:59 -06:00
Travis Turner
9b54259cd7
Resume test: TestMain_SendReceiveMessage
Create a custom memberlist NetTransport (which will bind to an available
port when port = 0 in the configuration). This allows us to bind
to dynamic ports in tests while at the same time determining a valid
seed for the cluster.
2017-12-04 14:56:21 -06:00