Commit graph

353 commits

Author SHA1 Message Date
Michael Baird
3512dd4549 missing comments 2017-04-25 14:15:02 -05:00
Michael Baird
684a8afa23 missed these db to index changes in the merge conflicts 2017-04-25 11:48:20 -05:00
Michael Baird
e699c55700 fixed conflicts from the db index change
Conflicts:
	cluster.go
	executor_test.go
	handler_test.go
	server.go
2017-04-25 11:47:29 -05:00
Michael Baird
0c9f652ffb missing comments from merge 2017-04-24 22:38:12 -05:00
Michael Baird
5a8c165c53 Merge remote-tracking branch 'origin/master' into metrics
Conflicts:
	cache.go
	cluster.go
	db.go
	executor.go
	fragment.go
	frame.go
	gossip/gossip.go
	handler.go
	index.go
	server.go
	server/server.go
2017-04-24 16:35:25 -05:00
Alan Bernstein
5413597998 Move LongQueryTime option to cluster section of config file 2017-04-24 15:20:08 -05:00
Travis
74bf4731f5
WIP: Implement NodeState as an attribute of *Node
NodeState is shared among nodes in the cluster (via gossip
in a gossip implementation) and cached locally in Cluster.Nodes
in order to be available to the /status endpoint.
2017-04-24 12:33:43 -05:00
Alan Bernstein
615c830ecc Move LongQueryTime to Cluster 2017-04-24 11:31:50 -05:00
Travis
2ad322c2c7
Rename DB to Index
Rename `db.go` to `index.go` and `db_test.go` to `index_test.go`
2017-04-23 21:49:27 -05:00
Travis
2cacff8e09
Rename Index to Holder
Rename `index.go` to `holder.go` and `index_test.go` to `holder_test.go`
2017-04-23 15:59:20 -05:00
Ben Johnson
d34687121f
Rename bitmap/profile to row/column. 2017-04-21 21:23:24 -06:00
Alan Bernstein
6a162c4be2 Support LongQueryTime as config option 2017-04-21 18:50:25 -05:00
Michael Baird
baafc7792a Merge remote-tracking branch 'origin/master' into metrics 2017-04-21 15:36:40 -05:00
Alan Bernstein
a1ba58398d Improve comments 2017-04-21 15:10:16 -05:00
Alan Bernstein
3b415ef3fd Simplify stats naming 2017-04-21 15:01:31 -05:00
Travis Turner
ea663b980f Merge pull request #435 from travisturner/messenger-rebase
Messenger rebase
2017-04-21 14:04:27 -05:00
Linh Vo
e1404cf330 change variable name of getValidOptions 2017-04-21 11:42:31 -05:00
Linh Vo
7e935dd90a rewrite custom UnmarshalJSON for postDBRequest and postFrameRequest 2017-04-21 11:37:32 -05:00
Cody Soyland
41c900c9c4 Add WIP pared-down webui/console prototype 2017-04-21 10:52:44 -05:00
Alan Bernstein
83e13bec74 Move version vars to pilosa package 2017-04-21 10:14:21 -05:00
Alan Bernstein
222206fc3f Add stats reporting in handler 2017-04-21 10:10:09 -05:00
Linh Vo
9198dfab59 inverseEnabled check for bool type 2017-04-20 22:11:01 -05:00
Linh Vo
9c02edc4e3 #457 rewrite validateOptions, update frame options 2017-04-20 17:28:22 -05:00
Michael Baird
940b62335c move the StateHandler interface from the Gossip package back to Pilosa and us this interface for the Handler to access the LocalState 2017-04-20 16:52:05 -05:00
Michael Baird
3f43b0d496 Merge remote-tracking branch 'travis/messenger-rebase' into metrics
# Conflicts:
#	server.go
2017-04-20 16:00:17 -05:00
Michael Baird
539b134e10 Store the node state information in Cluster
Access the overall cluster state info via the /status endpoint
2017-04-20 14:23:24 -05:00
Travis
95bd4913c8
adjusted DBOptions/FrameOptions logic and removed some unused tests 2017-04-20 10:41:17 -05:00
Travis
d2e68b2980
adjust some handler comments. remove debugging line 2017-04-19 17:08:10 -05:00
Travis
5a80685052
add support for CreateDB and CreateFrame without POST data (i.e. use defaults) 2017-04-19 16:59:56 -05:00
Travis
dcaf7617de
changed some json tag names to Lower Camel Case to be consistent with the rest 2017-04-19 14:01:46 -05:00
Travis
26b524a60e fix some tests and update glide.lock 2017-04-19 11:35:02 -05:00
Matt Jaffee
2d139d299c remove server from handler - not used anymore 2017-04-19 10:36:27 -05:00
Matt Jaffee
bc8f7f702f add BroadcastReceiver and collapse Gossip structs into one
GossipNodeSet and GossipBroadcaster had a lot of cross dependency - I made them
the same object and had it implement all three interfaces (NodeSet, Broadcaster,
BroadcastReceiver).

I implmented an HTTPBroadcastReceiver which runs as as separate server.
BroadcastReceiver is a separate entity on the pilosa.Server object and is
started separately from broadcaster and nodeset. In the case of GossipNodeSet,
the broadcast receiver must be started before Open()ing the Nodeset, because it
doesn't actually start listening until Open() is called, but it needs the
handler set up before then.

server/server.go was heavily refactored to configure the new structs and
interfaces on the pilosa.Server object.
2017-04-19 10:36:27 -05:00
Matt Jaffee
32d07fc9e1 rename MessageBroker -> Broadcaster 2017-04-19 10:34:52 -05:00
Matt Jaffee
4b8c2630e3 split MessageBroker.Send into SendSync and SendAsync 2017-04-19 10:34:30 -05:00
Matt Jaffee
5079ee7a22 remove messenger "wrapper" around messagebroker
all the functionality aside from the broker has been removed
2017-04-19 10:33:59 -05:00
Matt Jaffee
1aca2ce1de implement LocalState and internal message reception on Server
greatly simplifies Messenger, to the point of making it basically shell around
MessageBroker. Next stesp are to make the receiving of internal messages more
well-defined and behind an interface, remove/merge Messenger and MessageBroker,
and have the implementations of MessageBroker in separate packages.
2017-04-19 10:33:26 -05:00
Travis
b0f1fc7523 Makes Messenger a first-class object under Server (with pointers in Handler and Index).
Primary message interface is the MessageBroker which is an attribute of the Messenger.
MessageBroker implementations:
- Gossip (memberlist)
- Broadcast (uses HTTP, received by existing Handler)
- Static (no-ops)

Changes CacheSize from `int` to `uint32` for consistency with protobuf.
Removes unnecessary dependencies in glide:
- `github.com/aws/aws-sdk-go`
- `golang.org/x/net` (although this gets included by memberlist)

TODO:
- [ ] Add tests around the Messenger and MessageBroker objects.
- [ ] Refactor CreateSliceMessage to work with views.
- [ ] Support propogation of meta data on PATCH calls.

fixing some issues from last rebase
2017-04-19 10:33:26 -05:00
Travis
8fa45649b6 WIP: Added support for NodeState.
Modified the gossip implementation to optionally send messages directly (instead of over gossip).
Added support for local and remote NodeState, as well as function to merge remote into local state.
Refactored Protobuf models to include `DBMeta` and `FrameMeta` as well as support for NodeState.
2017-04-19 10:19:17 -05:00
Travis
7c2f6a9bae adds a basic gossip implementation using hashicorp/memberlist
Changes Gossiper to NodeSet.
Adds StaticNodeSet (for testing) and GossipNodeSet (for memberlist) implementations.
Changes NodeSet interface to return a pilosa-specific generic instead of `NodeSet interface`.
Removes NumMembers from interface (which is specific to memberlist).

Implements a Messenger interface with which to send inter-node messages via NodeSet.
The Pilosa implementation occurs in the GossipNodeSet.

Implements the Messenger as an object on Server, Handler, and Index.

Uses HealthStatus constants.
Removes commented-out code.

for gossip, make sure to bind to both host and port, and advertise those as well

adjust messenger to work with the db schema logic

add dependencies: hashicorp/memberlist, golang.org/x/sync
add dependency: golang.org/x/net

Uses `errgroup` to handle errors from broadcast messages.
Marshals message one time instead of once for every node.
Adds error handling for some errors that were being swallowed.
2017-04-19 10:13:38 -05:00
Travis
95a546e138 adjust tests and client to comply with the new HTTP endpoints 2017-04-18 14:19:36 -05:00
Travis
63df926968 put the handler router endpoints in alphabetical order 2017-04-18 14:12:59 -05:00
Cody Soyland
a6c7a0f894 WIP handler changes 2017-04-18 14:12:59 -05:00
Cody Soyland
4397e13a82 Use gorilla mux instead of big switch statement 2017-04-18 14:12:59 -05:00
Ben Johnson
d32edb5329 Add cacheType to frame options.
Previously the cache type (`lru` or `ranked`) was determined by
checking the ending suffix of the frame. If it ended with a `.n`
then it was ranked. Otherwise it was an LRU.

This commit changes frames so that a `cacheType` option can be
passed in during creation to set either `lru` or `ranked`.
2017-04-18 08:24:58 -06:00
Linh Vo
9abdb29269 remove duplicate code, move ValidateName out of validateOptions 2017-04-06 23:28:16 -05:00
Linh Vo
b2db339741 remove comment code 2017-04-06 16:20:08 -05:00
Linh Vo
37ffcd4ed9 refactor validateOptions 2017-04-06 16:03:35 -05:00
Linh Vo
07e689ed58 custom UnmarshalJSON unit test 2017-04-05 15:40:02 -05:00
Linh Vo
22475df035 revise unmarshalJSON 2017-04-05 10:50:56 -05:00