Commit graph

147 commits

Author SHA1 Message Date
Todd Gruben
1eb2f8d568 reusing containers for memory efficiency 2017-09-07 12:59:09 -05:00
Todd Gruben
a8b070716d reuse fragment memory 2017-09-06 14:41:14 -05:00
Todd Gruben
1d55d1c2c5 cleanup commented code 2017-09-05 15:41:52 -05:00
Todd Gruben
6f3c5ac51b wrapped fragment with buffered writer 2017-09-05 13:23:51 -05:00
Michael Baird
62791e7a2f Merge pull request #785 from raskle/613-delete-view
Delete view API
2017-08-28 13:38:07 -05:00
Ben Johnson
ad847f2c8a
Add field Range() support to Executor. 2017-08-24 13:34:57 -06:00
Michael Baird
2dfa689d71 Fragment.Close now returns an error.
This required changing the Holder test utility Reopen, since in those cases we needed to close the file before making permission changes that Close() was failing silently on.
2017-08-22 14:52:07 -05:00
Ben Johnson
562fba9de1
Sum() and Average() field queries. 2017-08-22 08:27:52 -06:00
Todd Gruben
5d39bc0b1c addressing concerns 2017-08-09 15:34:59 -05:00
Todd Gruben
93257af5d2 CountRange was incorrect if rangekey was prior to inital container 2017-08-09 14:06:22 -05:00
Todd Gruben
728308a5bb Merge branch 'master' into 16bitcontainer 2017-08-08 10:17:44 -05:00
Todd Gruben
51f980f695 replaced counting method on cache load 2017-08-05 17:12:31 -05:00
Ben Johnson
3b1428a84e
Remove IntersectInverse() 2017-08-04 09:48:25 -06:00
Ben Johnson
0bb94fc83d
Implement BSI Field Range internally
This commit adds `FieldRange()` to the `Frame`, `View`, and
`Fragment` types. It accepts an operator & a predicate and
returns a bitmap of matching field values.
2017-08-01 14:44:53 -06:00
Linh Vo
326a162094 fixed review 2017-07-24 22:09:31 -05:00
Linh Vo
2cfcf497e1 add tests for none cache 2017-07-21 00:16:37 -05:00
Linh Vo
f68362c40c implement nopcache 2017-07-20 16:11:13 -05:00
Ben Johnson
800e3844f9
Set & retrieve field values.
This commit adds support for set/get field values at the
`Frame`, `View`, and `Fragment` levels.
2017-06-30 12:21:21 -06:00
Alan Bernstein
12e6b22abe WIP replace fmt prints with logger prints and Stderr with LogOutput 2017-06-23 17:27:57 -05:00
Todd Gruben
bed7b41faf fixed memory hit on startup 2017-06-23 08:13:57 -05:00
Michael Baird
d43d83ad2f need to add sample rate to stats 2017-05-30 16:19:18 -05:00
Michael Baird
f0c3fdcdda Merge remote-tracking branch 'origin/master' into metrics 2017-05-30 15:36:19 -05:00
Ben Johnson
a961473422
Add statsd gauges for row count. 2017-05-30 09:23:51 -06:00
Michael Baird
1c5f374c1a lower the StatsD sampling rate 2017-05-18 16:40:18 -05:00
Michael Baird
4a051900c0 Add sampling rate to StatsD functions, and fix data dog logging 2017-05-16 10:35:49 -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
Matt Jaffee
11b84cec94 change default cache type to ranked
All tests which use MustOpenFragment now explicitly pass a cacheType parameter.
If this parameter is an empty string, it means that whether the test works
should not depend on the cache type of the fragment. Otherwise the test should
explicitly set the cache type it needs rather than relying on the default.
2017-05-02 16:58:03 -05: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
Travis Turner
a1871388b0 Merge pull request #504 from travisturner/default-row-label
change DefaultRowLabel from `id` to `rowID`
2017-04-28 22:06:34 -05:00
Travis
0b5e058579
change DefaultRowLabel from id to rowID 2017-04-28 15:26:30 -05:00
Cody Soyland
3996b56b88 Apply Apache License 2.0 2017-04-28 14:22:03 -05:00
Linh Vo
b450a62816 add entropy statsD 2017-04-25 09:22:30 -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
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
Ben Johnson
d34687121f
Rename bitmap/profile to row/column. 2017-04-21 21:23:24 -06:00
Alan Bernstein
e0fb322632 Simplify stats naming 2017-04-21 15:11:43 -05:00
Alan Bernstein
44aa9fded5 Remove duplicate tags 2017-04-21 13:33:07 -05:00
Alan Bernstein
57f9dcf44a Move logging and reporting back to defer'd track() 2017-04-21 12:13:45 -05:00
Alan Bernstein
0e5ba0c56f Add stats to snapshot 2017-04-21 12:05:35 -05:00
Linh Vo
4f07113f65 readd stastD report with new branch 2017-04-20 21:37:31 -05:00
Travis
25e649add8 remove cacheSize argument from NewFragment() 2017-04-19 11:41:41 -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
Michael Baird
e864a45d57 cleaned up the comments and code for the cache threshold. Also made the max size the set value of the cache rather than the calculated index. This ensures the user will not receive less cached values than they expect 2017-04-19 10:26:47 -05:00
Michael Baird
ce1e8e2e75 changed the frame cache name 2017-04-19 10:24:00 -05:00
Michael Baird
9a1a631dd4 test storing frame cache size 2017-04-19 10:22:44 -05:00
Michael Baird
591c35c95f set the cache size on frame creation 2017-04-19 10:06:11 -05:00
Michael Baird
3b71ed1b2f make the fragment cache ThresholdIndex a function at 90% of ThresholdLength 2017-04-19 10:06:10 -05:00
Michael Baird
8ceaef1eaa fragment cache size is set on frame creation with a default value of 50,000 2017-04-19 10:06:10 -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
Ben Johnson
eff08af112 Separate physical data layout with views.
Previously, multiple frames with different prefixes were used to separate
different data layouts. This included separating standard row/column
layouts from inverted column/row layouts as well as storing aggregate
information for timestamp data.

Unfortunately, this caused frame meta data to be copied between multiple
frames and it made it difficult to keep these frames in sync.

This commit separates these different physical layouts into `Views`.
A `Frame` now has one or more views which represent each layout.
Fragments have been moved from under the `Frame` to be contained
within the `View`.

There are two primary views:

- `standard`
- `inverse`

If a frame has a time quantum, then views are generated for these
each of the standard/inverse views. For example a time quantum
of `YMDH` for the date `2000-01-02T00:00:00Z` would create the
following views:

- `standard_2000`
- `inverse_2000`
- `standard_200001`
- `inverse_200001`
- `standard_20000102`
- `inverse_20000102`

From the user's perspective, nothing should change in PQL. Different
PQL statements will handle the appropriate view automatically. For
example, `Bitmap()` and `Profile()` will fetch using the `standard`
view or the `inverse` view, respectively. The `Range()` statement
will lookup the appropriate time-based views automatically.
2017-03-24 13:57:02 -06:00