Commit Graph

9067 Commits (13e32f68802890e10daab8d3591c124ac1ff80d8)

Author SHA1 Message Date
Jason Wilder 9c851f790e Use go1.4.3
Fixes #5283 #5217
2016-01-10 16:43:31 -07:00
Jason Wilder 5b179113fc Don't close tsm cursor prematurely
We were closing the cursor when we read the last block which caused
the internal state to be cleared.  In a group by query, we seeked multiple
times so depending on the group by interval and how the data was laid out
in the blocks, we woudl close the cursor and the last block would get skipped.

Fixes #5193
2016-01-10 15:26:01 -07:00
Marcus Geiger ff595d7e6c Packaging arch argument for build.py.
Add --pkgarch option to build.py to specify the packaging architecture which can be different to GOARCH.
Example: build for debian on raspberry pi. GOARCH will be arm but the packaging architecture on debian will be armhf (arm hard float). The --pkgarch option is passed to fpm to specify the required architecture which is reflected in the package manifest and also in the result filename.
2016-01-10 21:26:09 +00:00
Jason Wilder 72c6a51c78 Merge pull request #5318 from influxdata/jw-restart
Remove MAP_POPULATE
2016-01-08 09:29:01 -07:00
Jason Wilder 3c45015311 Remove MAP_POPULATE
This may be causing slow restart times for systems with many large TSM files.
What I believe is happening at startup in these cases is that multiple goroutines
are started to load each TSM file concurrently.  The kernel appears to serialize
mmap calls from the same process so all of the goroutines end up getting blocked
on the actual mmap system call.  MAP_POPULATE instruct the kernel to pre-fault the
page table for the files and triggers read-ahead of the pages.  For larger, 2GB files,
this makes the mmap call more expensive and slower.  When there are many of these files
and calls it is possible to fill all available memory with pagecache.  In this case,
the OS will end up pre-faulting pages from one file and have to remove pages that it just
loaded from another files causing slowness.  MAP_POPULATE may also be cause much more data
to be pre-faulted than necessary.  To load a file, we just need to scan the index at the end
of the file.  MAP_POPULATE is likely causing the whole file to be loaded when it won't actually
be accessed for a while (or at all).

Might fix issue #5311.
2016-01-08 08:45:27 -07:00
Jonathan A. Sternberg 8fc4cbe7ce Merge pull request #5186 from pires/5077-throw_parse_error
Fixes #5077
2016-01-07 20:29:00 -05:00
Philip O'Toole 82e16a1899 Merge pull request #5309 from influxdata/c_usage
Unit test scrubbing values during conversion
2016-01-07 14:59:39 -08:00
Ross McDonald aa0a379cb2 Merge pull request #4948 from influxdata/build-updates
Build and Packaging Updates
2016-01-07 16:49:20 -06:00
Philip O'Toole db2f3bd5ba Update CHANGELOG for PR 5129
[ci skip]
2016-01-07 14:49:04 -08:00
Philip O'Toole 653dba3759 Merge pull request #5129 from e-dard/fix-precision-flag
Ensure precision flag is respected in CLI
2016-01-07 14:48:57 -08:00
Jason Wilder 16829dedc8 Merge pull request #5308 from influxdata/jw-compact-large
Use block size and file size before skipping a file during compactions
2016-01-07 15:48:03 -07:00
Philip O'Toole cd2de5f25d Unit test scrubbing values during conversion 2016-01-07 14:33:42 -08:00
Edd Robinson c6d32bd1bb Fix #5127 2016-01-07 22:30:46 +00:00
Jason Wilder 756421ec4a Look for fully compacted block in addition to max size during compaction
Some data shapes would cause files to grow larger than the max size more
quickly which resulted in them getting skipped by the full compaction planner
at times.  Some datasets that could make this happen are very large keys or
very large numbers of keys (10M).  When this happened, multiple max sized
files would accumulate but the blocks would not be full.  When the shard went
cold for writes, these files would get recompacted down to the optimal size, but
a lot of space would be wasted in the mean time.
2016-01-07 15:18:42 -07:00
Philip O'Toole 7ccbbecf03 Merge pull request #5306 from influxdata/c_usage
Show disk usage reduction factor post-compression
2016-01-07 14:14:59 -08:00
Paulo Pires 17c2a344cd Fixed database creation with retention statement parsing. Fixes #5077 2016-01-07 22:08:19 +00:00
Philip O'Toole 2d2c315356 Dump points per TSM point written 2016-01-07 13:58:23 -08:00
Jason Wilder 0264d77545 Fix block sizes reported by influx_inspect 2016-01-07 14:51:59 -07:00
Philip O'Toole 13d2b69c29 Dump conversion factor on completion 2016-01-07 13:50:56 -08:00
Philip O'Toole bab2a00e5d Track bytes written by conversion tool 2016-01-07 13:50:45 -08:00
Philip O'Toole 9b02808e6c ShardInfos now returns size 2016-01-07 13:36:25 -08:00
Ross McDonald 560f691096 A few updates:
- Re-enabling support for ARM builds in `build.py`.
- Improved `build.py`'s iteration and package version.
- Fixed minor bug with logrotate file path in `build.py`.
- Improved installation pre and post install/uninstall scripts by adding distribution-specific logic to account for quirks between the different package managers.
- Added post-install as post-trans script for RPM builds due to the order of RPM upgrade commands (issue where init scripts were removed when upgrading).
- Added explicit backup to pre-install script to ensure legacy configuration survive an upgrade.
2016-01-07 15:03:43 -06:00
Jason Wilder bd63489ef0 Update changelog
[ci skip]
2016-01-07 08:30:59 -07:00
Philip O'Toole 7f673c79a3 Revert build steps since imports not updated
[ci skip]
2016-01-06 17:43:05 -08:00
Mark Rushakoff 6022775c55 Merge pull request #5172 from influxdata/quoteident-alias
Add missing QuoteIdent
2016-01-06 17:00:34 -08:00
Philip O'Toole c1e847af22 Update CHANGELOG for PR 5226
[ci skip]
2016-01-06 14:00:49 -08:00
Philip O'Toole db7c133f3c Merge pull request #5287 from influxdata/c_fixes
Ignore points without fields
2016-01-06 13:54:33 -08:00
Jason Wilder 382a2d601d Merge pull request #5289 from influxdata/jw-memory
Reduce allocations with TSM queries
2016-01-06 13:27:07 -07:00
Jason Wilder faf8ee17fa Fix typo 2016-01-06 12:53:04 -07:00
Philip O'Toole 067cc71923 Count number of fieldless points filtered 2016-01-06 11:52:42 -08:00
Jason Wilder d2b7c03175 Re-use the series key
Avoid allocating the string twice.
2016-01-06 12:52:13 -07:00
Jason Wilder 59e08606cb Avoid copying slice when escaping/unescaping tags
byte.Replace will return a copy of the input even when nothing has
been replaced.  This is called in lower level query execution and
create some garbage that isn't necessary.
2016-01-06 12:45:29 -07:00
Philip O'Toole ff96e17ddb Skip points without fields 2016-01-06 11:45:20 -08:00
Jason Wilder 2f7a0090c1 Don't allocate a pre-sized buffer for each cursor
This is contributing to some of the high memory usage on queries and possibly
some OOMs.  This is slightly slower, but removing it allows some fairly large
count queries over 5M series to complete instead of crashing the process using
tsm1 engine.
2016-01-06 10:50:38 -07:00
Philip O'Toole 614a37cdcd Merge pull request #5281 from influxdata/c_fixes
Cleanup TSM files
2016-01-05 20:45:07 -08:00
Philip O'Toole 9c916b0b76 Best-effort cleanup of converter. 2016-01-05 19:27:27 -08:00
Philip O'Toole 2a547b0db3 Increment sequence, not generation
Avoid having all the new files getting picked up by the compaction
planner on startup.
2016-01-05 19:27:22 -08:00
Philip O'Toole 53afa0addc Merge pull request #5280 from influxdata/c_fixes
Gather conversion stats and filter NaN and Inf
2016-01-05 21:13:45 -05:00
Philip O'Toole fbb3e861ca Clearer database backup message 2016-01-05 17:51:52 -08:00
Philip O'Toole 075ef45ae1 Gather conversion stats 2016-01-05 16:55:22 -08:00
Philip O'Toole cac96113c0 Merge pull request #5278 from influxdata/c_fixes
Skip bz1 bolt files without any points
2016-01-05 19:09:49 -05:00
Jason Wilder 90292dd429 Merge pull request #5279 from influxdata/jw-compaction-memory
Reduce allocations during TSM compactions
2016-01-05 16:50:18 -07:00
Philip O'Toole 140f54a01d Skip bolt files without any points 2016-01-05 15:19:56 -08:00
Jason Wilder 6f577cfef5 Reduce allocations when compacting
Key() returned the key and the entries.  We did not always need the
entries so they would be allocated and ignored.  Added a KeyAt func
that just returns the key to avoid the unnecesary entries allocation.
2016-01-05 16:16:44 -07:00
Jason Wilder 9a9ccab560 Reduce allocation in wal encoder
Use sync.Pool for some temporary buffers used while encoding instead of
allocatin new ones each time.  Also increased the default buffer size which
might be too small.  Probably need to make this a config var.
2016-01-05 16:12:25 -07:00
Jason Wilder ee54a1e791 Write TSM data directly to writer
We were buffering up the data to write into byte slices to reduce
IO calls but at larger sizes, this causes memory to spike.  The TSMWriter
was switched to use a bufio.Writer internally so this byte slice buffering
is unnecessary and costly now.
2016-01-05 14:46:07 -07:00
Jason Wilder d2889ecd6a Avoid creating slices of all keys during compaction 2016-01-05 09:38:00 -07:00
Jason Wilder dd90824eb5 Fix go vet in restore.go 2016-01-05 09:37:44 -07:00
Philip O'Toole d9ed54ce37 More updates for new Github org 2016-01-04 15:48:47 -08:00
Philip O'Toole 7c77d63eab Update packaing and build for new github org 2016-01-04 15:47:04 -08:00