Commit Graph

10243 Commits (10db0aafeb8b21459a537d455afe48f8b19e22c4)

Author SHA1 Message Date
Cory LaNou 10db0aafeb Merge pull request #6591 from influxdata/cjl-issue-6590
intermittent test failing
2016-05-10 08:57:16 -05:00
Cory LaNou 639b0d7531 Merge pull request #6502 from influxdata/copy-shard
Add ability to copy shard via rpc calls.  Remove deprecated copier service.
2016-05-10 08:55:44 -05:00
Cory LaNou f39e9e910d intermittent test failing 2016-05-10 08:30:19 -05:00
Cory LaNou f9ec3c9591 update changelog 2016-05-10 08:14:51 -05:00
Cory LaNou 4d30ea1eb3 minor PR feedback refactor 2016-05-10 08:14:51 -05:00
Cory LaNou a3bf3e2ef1 added baseline backup/restore plumbing 2016-05-10 08:14:51 -05:00
Cory LaNou 4484182e86 remove old shard copier service 2016-05-10 08:14:51 -05:00
Jason Wilder afde7ce531 Merge pull request #6523 from kevgrig/patch-1
Update influxdb.service
2016-05-09 23:47:57 -06:00
Ben Johnson 514c98cef8 Merge pull request #6585 from benbjohnson/parallelize
Parallelize iterators
2016-05-09 19:56:52 -06:00
Ben Johnson 078e561820
parallelize iterators 2016-05-09 10:25:30 -06:00
Jason Wilder b4f922df15 Merge pull request #6567 from influxdata/jw-tsm-values
Fix memory spike when compacting overwritten points
2016-05-06 11:38:49 -06:00
Jason Wilder d99c5e26f6 Fix memory spike when compacting overwritten points
If a large series contains a point that is overwritten, the compactor
would load the whole series into RAM during a full compaction.  If
the series was large, it could cause very large RAM spikes and OOMs.

The change reworks the compactor to merge blocks more incrementally
similar to the fix done in #6556.
2016-05-05 22:31:30 -06:00
Nathaniel Cook 9db171890f Merge pull request #6565 from influxdata/nc-client-err
Wrap JSON decode error with meaning full data
2016-05-05 16:21:35 -06:00
Nathaniel Cook 2c3df055cf wrap JSON decode error with meaning full data 2016-05-05 16:00:52 -06:00
Ross McDonald 84fe50dbc9 Merge pull request #6561 from influxdata/ross-build-updates
Build updates
2016-05-05 15:16:37 -05:00
Ross McDonald 9953db463c Minor fixes to build script:
- Fix for --name build parameter
- Remove rc parameter from build script
- Fix regression on first-level tarball directory structure
- Change any dashes or underscores in version tag to tilde
2016-05-05 15:15:56 -05:00
Ben Johnson 4c45f8ec32 Merge pull request #6560 from benbjohnson/optimize-tsm1-call-iterator
Move call iterator to series level
2016-05-05 11:13:53 -06:00
Jason Wilder fbf1e4a620 Merge pull request #6556 from influxdata/jw-tsm-values
Fix loading huge series into RAM when points are overwritten
2016-05-05 10:09:54 -06:00
Ben Johnson fdf34d4356
move call iterator to series level
This commit moves the `CallIterator` to wrap the individual series
instead of wrapping a shard. This allows individual points to be
aggregated before being merged.

This will cause a small increase in memory usuage per series but
it shows a 20% decrease in query time when there are a moderate
number of points per series.
2016-05-05 09:59:03 -06:00
Jason Wilder a0ac754802 Fix loading huge series into RAM when points are overwritten
In some query scenarios, if there are a lot of points on disk spread
across many blocks in TSM files and a point is overwritten near the
begginning of the shard's timerange, the full series could be loaded
into RAM triggering OOMs and huge allocations.

The issue was that the KeyCursor code that handles overwriting points
had a simple implementation that just deduped the whole series in this
case.  This falls over when the series is quite large.

Instead, the KeyCursor has been changed to only decode blocks with
updated points.  It then keeps track of what section of the blocks
have been read so they are not re-read when the later points are
decoded.

Since the points in a block are always sorted, the code was also changed
to remove the Deduplicate calls since they end up
reallocating the slice.  Instead, we do a sorted merge and re-use
the slice as much as we can.
2016-05-05 09:34:44 -06:00
Edd Robinson 178ed24e09 Merge pull request #6551 from influxdata/er-monitor-remote
Enable monitor to write to remote node
2016-05-05 11:54:48 +01:00
Edd Robinson 0b338dddd8 Add remote monitor writer 2016-05-05 11:08:35 +01:00
Edd Robinson 81dbbf570f Add RPC command for remote Monitor destination 2016-05-04 18:22:01 +01:00
Edd Robinson 2ae6a43c36 Disable Monitor when running dataonly mode 2016-05-04 18:22:01 +01:00
Edd Robinson b2d5616662 Make Monitor safer; don't set clusterID 2016-05-04 18:22:01 +01:00
Jason Wilder f2bb9db1c5 Update changelog 2016-05-03 10:45:44 -06:00
Jason Wilder 57cb3fdbc0 Merge pull request #6522 from influxdata/tp-tsm-dump
Dump TSM files to line protocol
2016-05-03 10:44:33 -06:00
Ross McDonald 448c0c116e Merge pull request #6534 from influxdata/ross-gh6511
Move to Go 1.6.2
2016-05-03 11:40:44 -05:00
Ross McDonald 96ad9c57d9 Move to Go 1.6.2. 2016-05-03 11:33:49 -05:00
Jason Wilder 01ea22d818 Merge pull request #6544 from influxdata/jw-tsm
Fix overwriting points returning wrong value
2016-05-03 09:54:14 -06:00
Jason Wilder 4196554f51 Fix overwriting points returning wrong value
The cursors were returning the wrong value in the case when points
existed in both the cache and tsm files with the same timestamp. The
cache value should have been returned, but the tsm value was returned
incorrectly.

Fixes #6439
2016-05-03 09:21:31 -06:00
Ben Johnson 417df18396 Merge pull request #6533 from benbjohnson/optimize-show-series
Optimize SHOW SERIES
2016-05-03 09:15:21 -06:00
Edd Robinson fd77dbe648 Merge pull request #6546 from influxdata/er-build-tag
Fix invalid build tag
2016-05-03 16:00:39 +01:00
Jonathan A. Sternberg a2a5c32770 Merge pull request #6539 from influxdata/js-6495-fix-aggregates-with-empty-shards
Fix aggregate returns when data is missing from some shards
2016-05-03 10:56:21 -04:00
Ben Johnson 49eb3b8d04
optimize show series iterator
This commit changes the `SeriesIterator` to process one measurement
at a time and uses a `floatFastDedupeIterator` to avoid point
encoding during deduplication.
2016-05-03 08:52:44 -06:00
Jonathan A. Sternberg d6d0addcec Fix aggregate returns when data is missing from some shards
If a shard is empty for a specific field and the field type is something
other than a float, a nil iterator would get returned from one of the
empty shards and cause the combined iterators to be cast to the float
type and all other iterator types to be discarded (or for integers, to
be cast).

This is rare since most aggregates don't accept strings or booleans, but
for queries like:

    SELECT distinct(string) FROM mydata

It would result in nothing getting returned if one of the shards didn't
have a value for `string`.

This change modifies the query engine to return nil for the shards
instead of a fake iterator and then to only use the fake iterator if the
final aggregate iterator is nil (meaning that no iterators could be
constructed for the field from any shard).

Fixes #6495.
2016-05-03 10:41:22 -04:00
Edd Robinson d35fa1ec97 Remove redundant windows build tags 2016-05-03 14:22:02 +01:00
Todd Persen efdc54ac5d Display value according to type. 2016-05-02 22:08:15 -07:00
Todd Persen 318a966b94 Change `dump` to `export` 2016-05-02 21:42:42 -07:00
Ross McDonald b6be0e9e6a Merge pull request #6537 from influxdata/ross-disable-packaging
Remove automatic upload of packages to S3
2016-05-02 18:08:00 -05:00
Ross McDonald 1e0cd325f8 Remove automatic upload of packages to S3. 2016-05-02 18:03:16 -05:00
Jonathan A. Sternberg 0cc99a3e27 Merge pull request #6504 from influxdata/js-2074-group-by-offsets
Support offset argument in the GROUP BY time(...) call
2016-05-02 15:00:26 -04:00
Jason Wilder 6cf0ed439a Merge pull request #6524 from influxdata/jw-delete-series-bug
Delete series fixes
2016-05-02 12:54:08 -06:00
Jonathan A. Sternberg 64556e4f8e Support offset argument in the GROUP BY time(...) call
An offset of `time(1m, now())` will anchor the offset to the current
time of the query. The default offset is `0s` which is the current
default anyway.

This fixes #2074 by making time zone offset support unnecessary. Time
comparisons can use timezones inside of the time clause and the offset
needed for non-hour timezone differences can be used as part of the
offset argument.
2016-05-02 14:02:35 -04:00
Ross McDonald fbacc88767 Merge pull request #6372 from influxdata/ross-build-updates
Build script updates
2016-05-02 12:52:15 -05:00
Jason Wilder d82aa98951 Reduce indentation in filter func 2016-05-02 11:38:25 -06:00
Jason Wilder e0304ae3d5 Fix shards not getting assigned to series on restart
Also, simplifies the LoadMetaDataIndex func to not require a *Shard
2016-05-02 11:36:05 -06:00
Jason Wilder 2d09937fd2 Fix removing fully deleted index blocks
If multiple tombstone entries happen to exist for the same key in a
tombstone file, it was possible to panic.  The first application
would remove all index entries and the second time around the code
still assumed entries would exist and would index into the nil slice.

Also fixes a case where the range of time would fully delete all index
entries, but it did not align with math.MinInt64 and math.MaxInt64.  This
would cause the index locations to still exist in the offset slice.  This
is inefficient because the BlockIterator would still scan and decode the block
only to discover that all the values are deleted.  We now just remove it from
the offsets slice in this case since the range of values are deleted.
2016-05-02 11:36:05 -06:00
Jason Wilder 58aa65d5a8 Optimize applyTombstones
When a large tombstone file existed on disk, this code was slow since
it would apply each tombstone to the index one at a time causing the
index to be scanned for each key.

Instead, we group all the tombstones together by timestamp and apply
in bulk so that the index in scan once for each set of tombstones.

If we change to immuntable tombstone files, it might be better to just
write a file where all the keys have the same tombstone so we can re-apply
them efficiently.
2016-05-02 11:36:05 -06:00
Jason Wilder c73c7cea25 Revert filtering index entries in BlockIterator
This was the wrong fix.  The real issue was the tombstones were
being read incorrectly and also applied incorrectly at times.  This
code is slower and not necessary so reverting it.
2016-05-02 11:36:04 -06:00