Commit Graph

9760 Commits (b12cf04a73cce3780fb469bede6e4467dd9255f2)

Author SHA1 Message Date
Jason Wilder a1c9ce67d6 Switch remote write logic back to original version
CreateShard is expensive and should not be called for every write
request.
2016-03-01 21:23:28 -07:00
Jason Wilder 6bbd09ed94 Update changelog 2016-03-01 21:23:28 -07:00
Jason Wilder 43118ce78e Send database and retention policy with remote writes
There was a race where a remote write could arrive before a meta
client cache update arrived.  When this happened, the receiving node
would drop the write because it could not determine what database
and retention policy the shard it was supposed to create belonged
to.

This change sends the db and rp along with the write so that the
receiving node does not need to consult the meta store.  It also
allows us to not send writes for shards that no longer exist instead
of always sending them and having the receiving node logs fill up
with dropped write requests.  This second situation can occur when
shards are deleted and some nodes still have writes queued in hinted
handoff for those shards.

Fixes #5610
2016-03-01 21:23:03 -07:00
Jason Wilder cd4ef1856b Use TCPHost when checking for existence of data node
Host is the http endpoint and is not really needed.
2016-03-01 21:23:03 -07:00
Jonathan A. Sternberg 87fc143732 Fix limit iterator with multiple sources
The limit iterator would short circuit if there were no dimensions and
all points had been read. It also needs to consider that multiple
sources will require reading the entire iterator too, so the short
circuit requires only a single source.

Fixes #5871.
2016-03-01 21:44:45 -05:00
Jason Wilder e3fef5593c Merge pull request #5855 from jonseymour/jss-5854-go-master-breaks-build
fix tests to cope with future changes to testing.quick.Check - see #5854
2016-03-01 19:03:21 -07:00
Ross McDonald 89f755981c Merge pull request #5869 from influxdata/ross-godep-update
Pin golang.org/x/tools build dependency
2016-03-01 10:00:57 -06:00
Ross McDonald 01140fa1c1 Fixed issue with debug command output being used even though debug wasn't specified. 2016-03-01 09:45:15 -06:00
Edd Robinson 5eba0ea1b4 Merge pull request #5736 from influxdata/er-shard-owners
Cleanup shards and shard groups when dropping data node
2016-03-01 14:14:27 +00:00
joelegasse 7adbd7da6e Merge pull request #5863 from influxdata/jl-influx-tsm
influx_tsm: multiple improvements
2016-03-01 08:30:22 -05:00
Ross McDonald e2dcdcf79b Pinning golang.org/x/tools dependency in preparation for Go 1.4 EOL. 2016-02-29 16:19:06 -06:00
Joe LeGasse 3a876d483e influx_tsm: multiple improvements
- Removed a lot of unused code
- Consolidated types
- Improved allocations for converting b1 shards
- Eliminated allocations when sorting cursors
- Eliminated allocations from removing NaN and Infinity values,
    they are removed by the cursors now
- Separated out the stats from the conversion tracker
- Removed allocations from shard reader buffers
- Improved logic for shard reader Next()/Read()
2016-02-29 16:16:54 -05:00
Mark Rushakoff 70fbc46282 Merge pull request #5844 from influxdata/mr-tsm-stats-tag-db-rp
Tag TSM stats with database and retention policy
2016-02-29 09:33:51 -08:00
Mark Rushakoff cdcb079769 Tag TSM stats with database, retention policy
... by extracting the db/rp from the given path.

Now that the code has "standardized" on extracting db/rp this way, the
ShardLocation struct is no longer necessary and thus has been removed.
We're back on the previous style of passing the path and walPath to
NewShard.
2016-02-29 09:17:34 -08:00
Jason Wilder 42eb2db665 Merge pull request #5860 from influxdata/jw-builds
Update circle ci build envs
2016-02-29 10:17:01 -07:00
Jason Wilder 2433975a26 Update circle ci build envs
* Remove go tip
* Test with go1.6
2016-02-29 09:22:59 -07:00
Jon Seymour a01d02066d Update CHANGELOG for issue #5854 (PR #5855)
Signed-off-by: Jon Seymour <jon@wildducktheories.com>
2016-02-29 20:37:51 +11:00
Jon Seymour 73b3a2a056 Merge #5855 (issue: #5854).
RHS merges cleanly with 0.10.0

Signed-off-by: Jon Seymour <jon@wildducktheories.com>
2016-02-29 20:37:32 +11:00
Jon Seymour 716cdd7f41 tsm: modify encoding tests to deal with possible nil slices from testing.quick.Check in go master
The current go compiler at the tip of the go master (1d5001af) has a modified implementation of
testing.quick.Check that now generates nil slices as test data. (See: https://gophers.slack.com/archives/general/p14567053570110). The existing tests expect round tripping to work in this case
but it does not. So, in these cases we change the expectation to reflect actual behaviour.

This needs to be checked for reasonableness.
2016-02-29 20:36:19 +11:00
Ross McDonald f18d7e7596 Merge pull request #5849 from influxdata/ross-build-updates
Minor change to build.py
2016-02-26 15:10:47 -06:00
Ross McDonald 28965597fb Small fix for 'go get'/'gdm' call. Added verbose debug output to circle build output. 2016-02-26 12:32:37 -06:00
Jonathan A. Sternberg ba6186f199 Merge pull request #5815 from influxdata/js-5579-show-field-keys
Convert `SHOW FIELD KEYS` to the new query engine
2016-02-25 18:41:01 -05:00
Jonathan A. Sternberg aa0b603938 Convert `SHOW FIELD KEYS` to the new query engine
Fixes #5579.
2016-02-25 18:31:02 -05:00
Jonathan A. Sternberg 1cec8e730d Merge pull request #5843 from influxdata/js-fix-remote-point-decoder
Fix remote execution for partially replicated clusters
2016-02-25 18:30:43 -05:00
Jonathan A. Sternberg cddc1b2241 Fix remote execution for partially replicated clusters
The RPC handler for remote queries would attempt to reuse a closed
connection for certain commands that didn't use pooling. The RPC
commands that close the connection have been fixed to not try reusing
the connection.

When creating an iterator, if there are no points to return, the points
decoder would hit an EOF that it didn't catch and would return that
error back to the client who made the request. It now properly returns
no points by using a `nilFloatIterator` if there are no points to
return.

This fixes remote execution when a cluster has nothing to return.
2016-02-25 17:46:51 -05:00
Ben Johnson 1fb8806616 Merge pull request #5842 from benbjohnson/series-list-marshal
Add SeriesList binary marshaling
2016-02-25 15:38:44 -07:00
Ben Johnson 16eea8eecc add SeriesList marshaling 2016-02-25 15:38:16 -07:00
Jason Wilder 941fe4ce69 Merge pull request #5841 from influxdata/jw-time-int64
Convert time.Time to int64
2016-02-25 15:32:12 -07:00
Jason Wilder 8d70d65a82 Convert time.Time to int64 2016-02-25 15:15:01 -07:00
Jason Wilder 55a503671d Merge pull request #5833 from jonseymour/jss-5832-snapshot-may-not-be-sorted
tsm: cache: need to check that snapshot has been sorted
2016-02-25 15:10:49 -07:00
Mark Rushakoff 56aebebc87 Merge pull request #5810 from influxdata/mr-shard-diagnostics-tags
Add database, RP as tags on shard stats
2016-02-25 13:53:26 -08:00
Mark Rushakoff 40a98e0d55 Add database, RP as tags on shard stats
This commit updates tsdb.Shard to contain a ShardConfig and updates
tsdb.Store to directly reference a map of tsdb.Shard rather than the
previous tsdb.shardLocation abstraction.
2016-02-25 13:41:55 -08:00
Jon Seymour ddcb92c8db Update CHANGELOG for #5832.
Signed-off-by: Jon Seymour <jon@wildducktheories.com>
2016-02-26 07:59:18 +11:00
Jon Seymour 11123d2694 Merge #5833 (issue: #5832).
Signed-off-by: Jon Seymour <jon@wildducktheories.com>
2016-02-26 07:59:03 +11:00
Jon Seymour 2c7cd06b99 tsm: cache: need to check that snapshot has been sorted.
Previously, the for loop at the end of the method assumed that all entries
had been deduplicated, including the entry discovered in the snapshot.

However, this wasn't actually true. With this change, we make it true.

Signed-off-by: Jon Seymour <jon@wildducktheories.com>
2016-02-26 07:56:25 +11:00
Jon Seymour 7eabae68de tsm: cache: add a test for the write sequence {6,1,snapshot,7,2}
Consider the write sequence: 6,1,snapshot,7,2.

The hot cache gets deduplicated, so is 2,7.

Now consider the test if 1 >= 2, this is false, so needSort is not set to true.

The problem is the implicit assumption that the snapshot is always sorted
by the time that merged() runs, but this may not be true.

Signed-off-by: Jon Seymour <jon@wildducktheories.com>
2016-02-26 07:43:50 +11:00
Jason Wilder c6f5aa038f Merge pull request #5834 from Gouthamve/master
Added Pull Request Template
2016-02-25 09:59:37 -07:00
Jason Wilder 6ebc192298 Merge pull request #5678 from jonseymour/typo
doc: typographical, spelling, grammar, word-choice and phrasing improvements.
2016-02-25 09:33:41 -07:00
Jason Wilder 76dc958db0 Update changelog
[ci skip]
2016-02-25 09:20:49 -07:00
Jason Wilder daf68dbbd2 Merge pull request #5701 from jonseymour/js-deduplicate-safety
tsm: cache: improve thread safety of Cache.Deduplicate (see #5699)
2016-02-25 09:18:10 -07:00
Mark Rushakoff e7bb855ab2 Merge pull request #5816 from influxdata/mr-database-stats
Track stats for number of series, measurements
2016-02-25 08:13:04 -08:00
Ben Johnson eaed2aadcf Merge pull request #5811 from benbjohnson/remote-exec-2
Remote Execution
2016-02-25 09:05:17 -07:00
Ross McDonald e8262b306c Merge pull request #5596 from influxdata/ross-build-updates
Build updates
2016-02-25 10:03:44 -06:00
Ross McDonald 2b66f521fa Updated changelog for build updates. 2016-02-25 09:42:20 -06:00
Ben Johnson 0dda9f6608 add remote execution
This commit adds remote execution to the query engine.
2016-02-25 08:41:20 -07:00
Ross McDonald 82970e8dc3 Updated handling of default 'arm' arch build process, removing the
`--pkgarch` and `--goarm` flags from the build.py script. Also
improved `gdm` functionality if the GOBIN path is not on the user's
path.
2016-02-25 09:35:03 -06:00
Ross McDonald 1a62cdbd9a Removed builtTime reference from influxd. Removed default version information from influxd. 2016-02-25 09:35:03 -06:00
Ross McDonald b91008d2c1 Re-added Windows builds to build script. Minor bug fixes. 2016-02-25 09:35:03 -06:00
Ross McDonald 6efd822810 Remove build time linker flag so that we can create reproducible builds. 2016-02-25 09:35:03 -06:00
Ross McDonald ee4743abee Updates to build.py script:
- Merged generalized changes from the Kapacitor build.py script for
  easier porting of features between projects
- Changed the nightly versioning scheme to use a tilde instead of a
  dash for easier upgrade paths.
- Added `go get` call for each platform in case of platform-specific
  build flags.
- Added a `--no-stash` option to prevent uncommitted changes from
  sneaking into packaged builds.
- Better automatic handling of version numbers.
- Removed per-platform go get command (for now).
- Added better build and packaging logic for ARM architectures.
2016-02-25 09:35:03 -06:00