Commit graph

165 commits

Author SHA1 Message Date
Yuce Tekol
e223ec3f9a
Rename Host -> URI 2017-10-12 15:49:34 +03:00
Yuce Tekol
65ad94c376
clusters with https + self signed certificates work (using --tls.skip-verify) 2017-10-10 04:48:15 +03:00
Yuce Tekol
3501732b19
https with signed certificates work 2017-10-08 21:11:19 +03:00
Yuce Tekol
1bedfd6585
use URI instead of host 2017-10-04 08:20:00 +03:00
Yuce Tekol
5760d89742
Initial TLS support 2017-10-02 15:53:50 +03:00
Travis
c4a4f0dcc4
don't normalize bind address after all, just have it use defaults when necessary 2017-08-07 08:25:35 -05:00
Travis
fcb311389e
added pilosa.NormalizeAddress() to address variations in the bind configuration 2017-08-07 08:25:35 -05:00
Travis
a3b1b2ee1a
DefaultClusterType = ClusterGossip
This commit removes the `httpbroadcast` NodeSet, sets the default cluster type
to `gossip`, and uses the `static` cluster type for most test cases.
2017-08-07 08:25:35 -05:00
Travis
b6896482b9
move InternalPort config option out from under cluster and up to the root of Config 2017-07-24 17:28:23 -05:00
Michael Baird
4b53ec1f9c const cluster types, and more validation tests 2017-07-11 14:17:06 -05:00
Michael Baird
baff53ae3d config test and validate 2017-07-11 11:31:27 -05:00
Linh Vo
6a50427629 rename Config's fields 2017-07-10 13:34:10 -05:00
Alan Bernstein
d96a121347 Simplify function arguments 2017-06-27 09:52:40 -05:00
Alan Bernstein
2fe21231fc Deduplicate logfile opening code 2017-06-23 18:03:28 -05:00
Alan Bernstein
8c2d6e92c2 WIP Export Server.logger for use in server/server.go 2017-06-23 18:02:44 -05:00
Alan Bernstein
12e6b22abe WIP replace fmt prints with logger prints and Stderr with LogOutput 2017-06-23 17:27:57 -05:00
Michael Baird
d2fbc0a08f set long query time parameter at startup 2017-05-30 16:33:03 -05:00
Michael Baird
f822bb43e9 Remove long query time from Server. That parameter is managed in the Cluster. 2017-05-30 12:55:45 -05:00
Michael Baird
843e947ca8 changing datadog package name to stats 2017-05-19 09:54:19 -05:00
Michael Baird
b2343c5ce3 Stats uses the same logger output as the cluster 2017-05-16 10:52:10 -05:00
Michael Baird
bd44949cb5 Merge remote-tracking branch 'origin/master' into metrics
Conflicts:
	config.go
	executor_test.go
	server/server.go
2017-05-09 11:31:14 -05:00
Michael Baird
bf6ed942f0 Merge pull request #8 from alanbernstein/stats
Stats
2017-05-09 11:15:23 -05:00
Ben Johnson
e3d6f96657
Add max-writes-per-requests limit.
A configurable limit has been added to restrict the number of
mutating calls in a `pql.Query`. This is to prevents requests from
timing out from large queries.

The default is set to 5000 writes per request and is configurable
through the configuration file and the command line flags.
2017-05-03 08:53:20 -06:00
Michael Baird
ee159b455d Merge remote-tracking branch 'origin/master' into metrics
Conflicts:
	.gitignore
	cluster.go
	frame.go
	glide.lock
	index.go
2017-05-01 10:41:04 -05:00
Cody Soyland
3996b56b88 Apply Apache License 2.0 2017-04-28 14:22:03 -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
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
Michael Baird
445023a04f fixed some comments 2017-04-24 14:21:50 -05:00
Michael Baird
1dc5d6f348 handle Join error 2017-04-24 14:14:16 -05:00
Michael Baird
acc4b022d7 added Join method to Static Nodeset so that Status is calculated with the local node 2017-04-24 13:57:35 -05:00
Alan Bernstein
615c830ecc Move LongQueryTime to Cluster 2017-04-24 11:31:50 -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
Alan Bernstein
6a162c4be2 Support LongQueryTime as config option 2017-04-21 18:50:25 -05:00
Michael Baird
c4334b1ac6 The server uses the stats service specified in the config 2017-04-19 17:22:00 -05:00
Travis
4c8e46e17f change Config.Nodes to Config.Hosts 2017-04-19 10:37:00 -05:00
Travis
b4a69be751 Add support for Node.InternalHost.
This was required for the HTTPBroadcaster to run locally on different InternalPorts.
2017-04-19 10:37:00 -05:00
Matt Jaffee
a11daecfcb remove done TODO 2017-04-19 10:36:28 -05:00
Matt Jaffee
d10d8d94e1 simplify config structure - remove gossip sub-struct 2017-04-19 10:36:28 -05:00
Matt Jaffee
0da580d0e9 change broadcaster-type to type
It is nested under "cluster" in the config, and it controls cluster membership
as well as broadcasting, so I think type is more appropriate. Also, brevity.
2017-04-19 10:36:28 -05:00
Matt Jaffee
6e8bf5dcc1 move http messenger stuff to separate package 2017-04-19 10:36:27 -05:00
Matt Jaffee
c4d3bde501 move gossip code to separate package 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
4fc2494cc0 add panic if Atoi on DefaultGossipPort fails 2017-04-19 10:34:52 -05:00
Matt Jaffee
32d07fc9e1 rename MessageBroker -> Broadcaster 2017-04-19 10:34:52 -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
Matt Jaffee
25f3ac92bd move complex, implementation-specific config bits out of config.go
moved into pilosa/server/server.go with minimal changes for now - had to tweak a
few things to be able to get at unexported fields. Next step will be to move the
implementations of NodeSet and MessageBroker out of the pilosa package so that
pilosa core knows nothing about them. pilosa/server will deal with any
complexities involved in setting them up.
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