Commit Graph

10132 Commits (d13d01b516a0d73591c21642c96312db8e15e422)

Author SHA1 Message Date
Ben Johnson 525e22c92b
tsm1 query engine alloc reduction
This commit makes a number of performance improvements to
reduce allocations during query execution. Several objects
and buffers are now reused across the components to avoid
allocations.

Previously a simple `count(value)` query across 1M points
would require 26,000+ allocations. After the changes in
this commit that number has been reduced to 88.
2016-04-11 14:50:59 -06:00
Jonathan A. Sternberg 6db7db12b0 Merge pull request #6283 from influxdata/js-3773-treat-tags-as-empty-string
Support empty tags for all WHERE equality operations
2016-04-11 14:17:27 -04:00
Jonathan A. Sternberg 815c49aa5f Integration test to check for empty tag behavior 2016-04-11 14:00:08 -04:00
Jonathan A. Sternberg b2955bc44a Update README summary 2016-04-11 12:55:07 -04:00
Jonathan A. Sternberg f4d74bcb30 Merge pull request #6241 from influxdata/js-refresh-admin-assets
Refresh admin assets
2016-04-11 12:32:02 -04:00
Jonathan A. Sternberg 5bdd61bde7 Support empty tags for all WHERE equality operations
A missing tag on a point was sometimes treated as `""` and sometimes
treated as a separate `null` entity. This change modifies the equality
operations to always treat a missing tag as an empty string.

Empty tags are *not* indexed and do not have the same performance as a
tag that exists.

Fixes #3773.
2016-04-11 12:01:35 -04:00
Jonathan A. Sternberg ca534bf09f Fix the subset method on tags
If a point had no tags at all and was asked for the subset of tags with
at least one key, it would return a new set of tags that was completely
empty. In contrast, if the point had any tags at all, it would return a
set of tags with the tag value being an empty string. This lead to
a point with no tags being treated differently than a point with at
least one tag.

Fixing this so the tag value will always be an empty string for
consistency. A missing tag should always be empty.
2016-04-11 12:00:55 -04:00
gunnaraasen 915fc10591 Update CHANGELOG.md 2016-04-11 08:48:27 -07:00
gunnaraasen eec8cc94c7 Support multiple OpenTSDB inputs 2016-04-11 08:47:38 -07:00
gunnaraasen fccd0943a8 Support multiple collectd inputs 2016-04-11 08:47:38 -07:00
gunnaraasen 78086fa1f3 Remove init table attributes 2016-04-11 08:47:38 -07:00
Jonathan A. Sternberg 1c8922d25a Merge pull request #6269 from influxdata/js-fix-cluster-iterator-creator
Fix processCreateIteratorRequest panic
2016-04-11 11:06:20 -04:00
Edd Robinson 44911bc5d8 Use 'latest' alias for links to documentation
Includes a fix for #6280
2016-04-11 14:56:53 +01:00
Cameron Sparr 23e2c40923 Reduce UDP service per-packet allocation size
This will reduce memory pressure and number of GC cycles, my results
sending 100,000 UDP points were:

- udp-payload-size=0: 242 GC cycles
- udp-payload-size=1500: 142 GC cycles
- udp-payload-size=0 (with change): 114 GC cycles
- udp-payload-size=1500 (with change): 112 GC cycles
2016-04-08 13:29:47 -06:00
Jack Zampolin 94ceb736b6 Merge pull request #6264 from influxdata/jz-stress-readme
Move stress/README to stress/DESIGN and add a stress/README
2016-04-08 09:36:12 -07:00
Jonathan A. Sternberg aee06eebd0 Fix processCreateIteratorRequest panic
If a non-existant shard was requested as part of the iterator,
the influxd server would panic. Now it handles this situation by
skipping the offending shard and returning properly when none could be
found.
2016-04-08 12:34:19 -04:00
Jonathan A. Sternberg cea18536de Fixing aggregate queries with no GROUP BY to include the end time
Queries with a time constraint but no group by would not include the
final point from the underlying iterator.

Fixes #6229.
2016-04-08 16:26:22 +05:00
Jonathan A. Sternberg fefd88bd81 Move changelog lines erroneously added to 0.12.0 to 0.13.0 2016-04-08 16:26:22 +05:00
Cory LaNou 1b41bec282 CreateShardGroup was incrementing meta data index even when it was idempotent 2016-04-08 16:26:22 +05:00
Jonathan A. Sternberg 4400847d6b Throw an error when an invalid expression is used with aux iterators
The following query was fixed previously:

    SELECT 'value' FROM cpu

This ended up hitting the `buildExprIterator()` code path and was
handled properly. But this query:

    SELECT 'value', value FROM cpu

This took a different code path that would trigger a panic because it
triggered a panic instead of an error condition. This code path has now
been modified to trigger an error instead of a panic.

Fixes #6248.
2016-04-08 16:26:22 +05:00
mvadu 4aeea21b79 Add AppVeyor ci config to enable ci tests on Windows
Influxdb uses gdm for the dependency management. For gdm to work on Windows, it needs go 1.6. Influx still uses go 1.4.3. So go 1.6 will be sed for the pre-build stages, and go 1.4.3 to run the tests.
This arrangements is working in AppVeyor now.
2016-04-08 16:26:22 +05:00
aviau a1256ab57a include missing license for equal.go 2016-04-08 16:26:22 +05:00
Jonathan A. Sternberg b026c95192 Update changelog for issue #6206 2016-04-08 16:26:22 +05:00
Edd Robinson 41acb6cef4 Scope all internal protobuf packages 2016-04-08 16:26:22 +05:00
Edd Robinson adf9830992 Scopes influxql Protobuf package to prevent clashes
Fixes #6211.

In Go-land packages with the same name, e.g., internal, do not clash
with each other when they're in different parts of the project. However
with protobufs definitions will clash if they share the same package
name.

This commit renames the influxql protobuf package to `influxql` to
avoid a clash with a message definition in another protobuf package
called internal. Go package aliases allow us to continue to refer to the
internal package as `internal` rather than `influxql`.
2016-04-08 16:26:22 +05:00
Jack Zampolin 16d1f14d11 Move stress/README to stress/DESIGN and add a stress/README 2016-04-07 15:41:40 -07:00
Jonathan A. Sternberg f232c05486 Merge pull request #6247 from aviau/fix-license
include missing license for equal.go
2016-04-07 16:11:07 -04:00
Jonathan A. Sternberg bd0a5bbb21 Merge pull request #6244 from influxdata/js-6229-missing-end-of-time-with-aggregates
Fixing aggregate queries with no GROUP BY to include the end time
2016-04-07 15:11:27 -04:00
Jonathan A. Sternberg fa5a38dcd4 Fixing aggregate queries with no GROUP BY to include the end time
Queries with a time constraint but no group by would not include the
final point from the underlying iterator.

Fixes #6229.
2016-04-07 14:11:28 -04:00
Jonathan A. Sternberg e2eb93f6d4 Move changelog lines erroneously added to 0.12.0 to 0.13.0 2016-04-07 13:47:20 -04:00
Cory LaNou cd803d2554 Merge pull request #6257 from influxdata/meta-index-bug
CreateShardGroup was not idempotent at the meta store level
2016-04-07 12:18:51 -05:00
Cory LaNou 7eaf7f8855 CreateShardGroup was incrementing meta data index even when it was idempotent 2016-04-07 11:39:45 -05:00
Jonathan A. Sternberg 61aa2980ce Merge pull request #6255 from influxdata/js-6248-strings-in-select-panic
Throw an error when an invalid expression is used with aux iterators
2016-04-07 12:32:52 -04:00
Edd Robinson 5327a75a6f Merge pull request #6216 from influxdata/er-scope-proto
Change protobuf package names to avoid clashes
2016-04-07 16:38:21 +01:00
Jonathan A. Sternberg d176c8babb Throw an error when an invalid expression is used with aux iterators
The following query was fixed previously:

    SELECT 'value' FROM cpu

This ended up hitting the `buildExprIterator()` code path and was
handled properly. But this query:

    SELECT 'value', value FROM cpu

This took a different code path that would trigger a panic because it
triggered a panic instead of an error condition. This code path has now
been modified to trigger an error instead of a panic.

Fixes #6248.
2016-04-07 11:01:45 -04:00
Edd Robinson 09e08e8f55 Merge pull request #6249 from mvadu/Add_AppVeyor_ci_windows
Add AppVeyor ci config to enable continuous integration tests on Windows
2016-04-07 15:52:43 +01:00
mvadu b670ca1936 Add AppVeyor ci config to enable ci tests on Windows
Influxdb uses gdm for the dependency management. For gdm to work on Windows, it needs go 1.6. Influx still uses go 1.4.3. So go 1.6 will be sed for the pre-build stages, and go 1.4.3 to run the tests.
This arrangements is working in AppVeyor now.
2016-04-07 19:47:01 +05:30
Jonathan A. Sternberg 99715ecca9 Merge pull request #6240 from influxdata/js-6206-update-changelog
Update changelog for issue #6206
2016-04-07 09:22:08 -04:00
Valeriy Simonov 0154a7008b Remove TSDB listener accept message 2016-04-07 17:15:56 +05:00
aviau 287b7173db
include missing license for equal.go 2016-04-06 17:08:13 -04:00
Jonathan A. Sternberg b15260dd4d Merge pull request #6201 from tehmaspc/tehmaspc_fix_typo
Fix config typo
2016-04-06 15:56:07 -04:00
Regan Kuchan 87d3800e70 Refresh admin assets 2016-04-06 12:07:18 -04:00
Jonathan A. Sternberg ccac9858f1 Update changelog for issue #6206 2016-04-06 11:53:38 -04:00
Jonathan A. Sternberg a58430bb60 Merge pull request #6217 from influxdata/js-tsdb-unused-code
Remove unused code and increase some test coverage for the tsdb package
2016-04-06 10:07:43 -04:00
Jonathan A. Sternberg 028fdaff81 Merge pull request #6222 from influxdata/js-6206-descending-tsm1-iterators
Handle nil values from the tsm1 cursor correctly
2016-04-06 10:05:20 -04:00
Jonathan A. Sternberg 94ec92d669 Handle nil values from the tsm1 cursor correctly
Send nil values from the tsm1 cursor at the end of the cursor. After the
cursor reached tsm1, the `nextAt()` call would always return the default
value rather than a nil value.

Descending also didn't work correctly because the seeking functionality
for tsm1 iterators would always act like they were ascending instead of
descending when choosing which value to select. This resulted in very
strange output from the emitter since it couldn't figure out if it was
ascending or descending.

Fixes #6206.
2016-04-06 09:27:02 -04:00
Jonathan A. Sternberg 7a229c7e4e Remove unused code and increase some test coverage for the tsdb package 2016-04-06 09:24:56 -04:00
joelegasse 84f8dd7c85 Merge pull request #6190 from influxdata/jw-race
Fix race on measurementFields
2016-04-06 08:13:58 -04:00
joelegasse 734b14b2b5 Merge pull request #6224 from mvadu/fix_windows_failure
Fix failure on Windows
2016-04-06 08:11:44 -04:00
mvadu 94524a7699 Fix failure on Windows
Windows does not allow a file to be renamed while its in use. f.Sync does not close the handle. It needs to be explicitly closed before renaming.
2016-04-06 07:32:37 +05:30