Commit Graph

740 Commits (4b5fb8db724fa9c2c443fafca6cb0cfd73528589)

Author SHA1 Message Date
Philip O'Toole 4b5fb8db72 WALSegmentReader counts bytes read without error 2015-12-05 22:13:57 -08:00
Philip O'Toole c67831bc79 Remove double-checking of error when reading WAL 2015-12-05 22:13:57 -08:00
Paul Dix 40e606cb14 Merge pull request #5003 from influxdb/jw-compaction
Update compaction planning
2015-12-05 16:49:54 -05:00
Jason Wilder 33a33e6a23 Fix 32bit int overflow of constant value 2015-12-05 13:09:18 -07:00
Jason Wilder 41b24995a7 Compcation fixes 2015-12-05 12:19:28 -07:00
Philip O'Toole 7296de1fac Merge pull request #4999 from influxdb/cache_sort
Always copy the Cache values for query and merge with snapshot
2015-12-05 08:15:13 -08:00
Philip O'Toole 1b12ff9c1c Only take write-lock for Values when necessary 2015-12-05 08:06:01 -08:00
Jason Wilder 6592615958 Updated compaction strategy
This changes compacting files to merge sequences of files in lower generations
up to later generations
2015-12-04 23:30:39 -07:00
Philip O'Toole 789ab10658 Merge hot cache values with snapshots
This change starts by building the sequence of entries, which also
allows the required size of destination buffer to be calculated. Then
the buffer is allocated up-front in 1 call.

Each snapshot and hot value-set is appended to the buffer. If ordering
is violated at anytime, set the 'needSort' flag. Sorting, if necessary,
is performed just before returning the data.
2015-12-04 20:58:02 -08:00
Philip O'Toole 859877fd09 Move all sort logic to entry type 2015-12-04 20:21:16 -08:00
Philip O'Toole 6e91679fab Always copy the Cache values for query 2015-12-04 15:37:45 -08:00
Paul Dix 9637446ba9 Merge pull request #4990 from influxdb/pd-loadmetadata-wal
Update TSM engine, WAL and encoding
2015-12-04 18:21:47 -05:00
Paul Dix 33506e4d3e Update TSM cache and engine LoadMetadataIndex 2015-12-04 16:40:01 -05:00
Paul Dix b0f3dcc8cc Update TSM metadata loading and write snapshot
* Update WriteSnapshot to always call synchronously
* Update LoadMetadataIndex to load WAL metadata from the cache
2015-12-04 16:03:17 -05:00
Jason Wilder 357b88c439 Increment sequence of max generation when compaction files 2015-12-04 13:46:28 -07:00
Nathaniel Cook bd6961a00e Validate previous value in derivative calc as well 2015-12-04 13:01:37 -07:00
Philip O'Toole 5c63ccaa6f Revert "Merge pull request #4988 from influxdb/revert-4984-fix-query-panic"
This reverts commit 44ff2f87db, reversing
changes made to 6fa016447f.
2015-12-04 11:05:02 -08:00
Jason Wilder 52bec1f7f6 Change TSM file naming to generation-sequence.tsm 2015-12-04 11:51:33 -07:00
Jason Wilder 479469994a Optimize FileStats calls
FileStats called frequently during compaction planning was too expensive because
they were cleared out every time a file replaced causing them all to be reloaded.
Insted, we grab the stats that are already maintained by the files themselves from
the files when needed.
2015-12-04 11:16:39 -07:00
Jason Wilder 70710df910 Fix typo 2015-12-04 10:02:59 -07:00
Jason Wilder c7e37766e7 Avoid repetitive index searches when iterating over cursors
First pass at TSM cursor iteration ended up searching the file indexes
too frequently and hurt performance.  This changes that to search it once
and then have the cursor hold onto the block locations to seek
to.  Doubles the query performance from the first iteration, but still a lot
of room for improvement.
2015-12-04 10:02:59 -07:00
Jason Wilder 4b7cc6720a Merge pull request #4983 from influxdb/jw-tsm-deletes2
Implement delete series/measurement
2015-12-04 10:02:11 -07:00
Jason Wilder c54a3da0ca Implement delete series/measurement 2015-12-04 09:10:26 -07:00
Paul Dix eafb703afc Update TSM engine, WAL and encoding
* Add InfluxQLType to Values to map the TSM type to InfluxQL
* Fix bug in WAL where close wouldn't nil out the currentSegment after closing it
* Export writeSnapshot to be used in tests, add argument to run it async or not
* Update reloadCache to load temporary metadata information in the engine
* Update LoadMetadataIndex to use the temp WAL metadata information
2015-12-04 11:09:39 -05:00
Philip O'Toole 89a3490cae Merge pull request #4989 from influxdb/cache_rename
Fix comment and remove snapshot stutter
2015-12-04 07:43:26 -08:00
Philip O'Toole f939e49f0f Fix comment and remove snapshot stutter 2015-12-04 07:29:58 -08:00
Philip O'Toole 3264b853cc Revert "fix raw math query panic" 2015-12-04 06:19:06 -08:00
Philip O'Toole 6fa016447f Merge pull request #4984 from mengjinglei/fix-query-panic
fix raw math query panic
2015-12-04 06:17:19 -08:00
Paul Dix b7bae53405 Merge pull request #4980 from influxdb/cursor_desc
Fix descending cache cursor
2015-12-04 07:02:13 -05:00
mengjingleli 2602dd241f fix raw math query panic 2015-12-04 15:17:31 +08:00
Jason Wilder 49b47d3584 Merge pull request #4978 from influxdb/jw-regressions
TSM dev regression fixes
2015-12-03 20:31:51 -07:00
Philip O'Toole 2d79d7e35f Fix descending cache cursor 2015-12-03 14:34:29 -08:00
Jason Wilder 66c9ef862e Fix regressions
Something broke with writing to the WAL now that compactions are running
concurrently.  There was also a performance problem with Next/Prev doing
twice as many searches as necessary.
2015-12-03 14:25:03 -07:00
Cory LaNou 7e1dc0231d fix data race in TSDB 2015-12-03 13:52:27 -06:00
Jason Wilder adf5c5b223 Replace Next/Prev with Scan 2015-12-03 12:39:13 -07:00
Jason Wilder 193a36eeb6 Fix code review comments 2015-12-03 12:39:13 -07:00
Jason Wilder 2019e70331 Fix reading string blocks
The block value to decode was 4 bytes too long so decoding string
block returned a snappy decode error.
2015-12-03 12:39:13 -07:00
Jason Wilder 2ad32af7ea Add desc quey support 2015-12-03 12:39:13 -07:00
Jason Wilder be59ba3455 Add Prev support to FileStore
Allows read the previous block of values given a timestamp and key.
2015-12-03 12:39:12 -07:00
Jason Wilder e9832d7414 Add multi-field cursor support to devtsm1 engine 2015-12-03 12:37:47 -07:00
Jason Wilder 6fba01df89 Implement single field TSM queries 2015-12-03 12:35:36 -07:00
Paul Dix 4624fb2a78 Update cache to address PR comments 2015-12-03 14:03:11 -05:00
Paul Dix be4891c40b Update TSM write snapshot, Compactor
* Ensure that writing snapshots in engine are goroutine safe
* Add Clone method to Compactor
2015-12-03 11:49:47 -05:00
Paul Dix 6722e9ff14 Update TSM engine, engine_test, and wal_test
* Address jwilder's comments in #4966
2015-12-03 10:49:47 -05:00
Paul Dix bf65e967aa Add test for compacting multiple TSM files 2015-12-03 10:36:17 -05:00
Paul Dix b0fb8a0a27 Update TSM cache, compact, wal, encoding
* Update cache to have a single slice of values for a key (removed checkpoints)
* Changed compact.Plan to only worry about TSM files.
* Updated Plan to not return an error since there was no case in which it would.
* Update WAL to not keep stats since they're no longer needed.
* Update engine to flush the Cache/WAL to a new TSM file when the min threshold is hit.
* Split compact logic between TSM compacts and WAL/Cache writes.
* Remove unnecessary merge iterator, wal segment iterator, and other no longer necessary stuff.
* Remove the asending bool from the Dedupe method. Values should always be in ascending order. It's up to the cursor to iterate through values based on the direction. Giving the cursor responsibility makes it so we don't need to sort, dedupe or reallocate anything for different query orders.
* Updated engine to use its locks to ensure writes and cache flushes don't cause a race.
* Update all tests with new signatures. Removed a bunch of tests around TSM rewrites and WAL segment iteration that are no longer necessary.
2015-12-03 08:11:50 -05:00
Jason Wilder 83ccaaa656 Reload cache at startup 2015-12-02 14:16:36 -07:00
Jason Wilder ba99dece0c Wire up tsm1dev engine cursor 2015-12-02 14:01:10 -07:00
Jason Wilder 3a8a19a99d Implement LoadMetaDataIndex for tsm1dev engine 2015-12-02 13:38:06 -07:00
Jason Wilder 3014d7e391 Return errors for func not implemented in tsm1dev engine 2015-12-02 11:06:01 -07:00