Commit Graph

1542 Commits (a62fbcde42d96bb79cb26cb1bcbdf73ae0559747)

Author SHA1 Message Date
Edd Robinson 289fe5bfcb Don't catch SIGQUIT; safer close of Quit channel 2016-04-27 14:38:48 +01:00
Vidhuran Harichandra Babu fedb7bfdbf added a button in admin ui to genearate URL for the query 2016-04-27 11:30:47 +03:00
Ben Johnson 291dd08cd4
remove SHOW SERVERS & DROP SERVER
This commit removes support for `SHOW SERVERS` and `DROP SERVER`
from the `influxql` package. It also removes extraneous cluster
testing code from `cmd/influxd/run`.

Fixes #6465
2016-04-26 10:28:42 -06:00
Pierre Fersing 9f9a3fc98e Fix cluster/pool release of connection 2016-04-25 20:06:51 +02:00
Ben Johnson f608e4cdb0 Merge pull request #6462 from oldmantaiter/measurement-fields-deadlock
Add safer locking to CreateFieldIfNotExists
2016-04-25 11:07:33 -06:00
Tait Clarridge df0e16a92f Add safer unlock to CreateFieldIfNotExists
A deadlock can occur if the field was created while we were waiting for the lock.
2016-04-25 12:44:58 -04:00
Kostas Botsas c39ff515ca Merge pull request #6450 from influxdata/changelog-update-0122
Changelog update for 0.12.2
2016-04-25 19:18:36 +03:00
Kostas Botsas f8885a49ee removed duplicates from v0.13
removed duplicate GH PR's from v0.13 which were merged in v0.12
2016-04-25 15:48:05 +03:00
Philip O Toole ed7229fa2d Make it clear when CLI version is unknown
This mimics the behavior of the database binary.
2016-04-22 21:35:42 -07:00
Jonathan A. Sternberg 9b6d5dfd78 Allow derivative() function to be used with ORDER BY desc
The derivative function had an arbitrary limitation that would cause it
to set the value to zero if the previous value was after the next value.
This caused all `ORDER BY desc` queries with `derivative()` to always
return zero values.

Fixes #4675.
2016-04-22 12:20:32 -04:00
Jonathan A. Sternberg e28d16cfcf Log slow queries if they pass a configurable threshold
Fixes #6429.
2016-04-22 12:04:15 -04:00
Jonathan A. Sternberg b6beec4f57 Merge pull request #6411 from influxdata/js-3558-allow-math-in-where-clause
Pass binary expressions to the underlying query
2016-04-22 12:03:27 -04:00
Jonathan A. Sternberg d55fb1b16f Merge pull request #6421 from influxdata/js-3883-sanitize-query
Improve query sanitization to prevent a password leak in the logs
2016-04-22 11:40:17 -04:00
Jonathan A. Sternberg d26e4e3650 Pass binary expressions to the underlying query
Binary math inside of a where condition was previously disallowed. Now,
these types of queries are just passed verbatim down to the underlying
query engine which can handle it.

We may want to revisit this when it comes to tags at some point as it
prevents the more efficient filtering of tags that a simple expression
allows, but it allows a query like this to be done:

    SELECT * FROM cpu WHERE value + 2 < 5

So while it can be better, this is a good initial implementation to
provide this functionality. There are very rare situations where a tag
may be used appropriately in one of these circumstances.

Fixes #3558.
2016-04-22 11:30:36 -04:00
Jonathan A. Sternberg 5070f69bb2 Merge pull request #6444 from influxdata/js-config-from-env-var
Allow setting the config path through an environment variable
2016-04-22 11:28:57 -04:00
Jonathan A. Sternberg 62c66b788c Improve query sanitization to prevent a password leak in the logs
Sanitizing is now done through pattern matching rather than parsing the
query and replacing the password in the query. This prevents
accidentally redacting the wrong part of a query and revealing what the
password is through association.

Fixes #3883.
2016-04-22 11:27:09 -04:00
Jonathan A. Sternberg 9c09023508 Allow setting the config path through an environment variable
The config path previously could only be specified through the command
line options. This made it very difficult to set a default config path
without using any option.

Now the environment variable can be set so the default configuration
path is set to a specific place, but can be overwritten using the
command line option.

The primary purpose of this is so the Docker container can have a
default configuration file, but not have to parse the command line
options to figure out if a different configuration file has been
specified while still allowing the user to only type `influxd` and have
the program start correctly.

This might also help #6392 as it would allow a default configuration
location to be included with the package by setting an environment
variable.

A default search path is also provided now with checking the following
paths for a config file when none is specified:

* `~/.influxdb/influxdb.conf`
* `/etc/influxdb/influxdb.conf`

The config command has also been modified to read this config file
before outputting a sample config.
2016-04-22 09:33:53 -04:00
Kostas Botsas d56ec7ef8a Changelog for 0.12.2
Updated Changelog with details for 0.12.2
2016-04-22 14:21:00 +03:00
Jason Wilder caa9592163 Fix setting uint config options via env vars 2016-04-20 14:38:08 -06:00
Jason Wilder bfa225f149 Merge pull request #6430 from influxdata/jw-cache-load-size
Disable cache max memory size when reloading the cache
2016-04-20 14:35:23 -06:00
Stephen Gutekanst 9dc09c5257 Make logging output location more programmatically configurable (#6213)
This has various benefits:

- Users embedding InfluxDB within other Go programs can specify a different logger / prefix easily.
- More consistent with code used elsewhere in InfluxDB (e.g. services, other `run.Server.*` fields, etc).
- This is also more efficient, because it means `executeQuery` no longer allocates a single `*log.Logger` each time it is called.
2016-04-20 21:07:08 +01:00
Jason Wilder f679787080 Disable cache max memory size when reloading the cache
The cache max memory size is an approximate size and can prevent a
shard from loading at startup.  This change disable the max size
at startup to prevent this problem and sets the limt back after
reloading.

Fixes #6109
2016-04-20 10:41:30 -06:00
thbourlove 0e3964d8c2 fix panic in transform iterator on division
if left point is nil in division expr, the influxd server would panic. Now check left point before use it.
2016-04-21 00:07:20 +08:00
Seif Lotfy c6e3c87e00 Add Block checksum validation and "influx_inspect verify" tool
Fixes #5502
2016-04-19 22:33:03 +02:00
Nathaniel Cook 7def8bc0c9 Merge pull request #6423 from influxdata/nc-elapsed
Add elapsed function
2016-04-19 13:43:30 -06:00
Cameron Sparr 21db76b337 Prevent InfluxDB client from leaking TCP connections
If users properly call client.Close(), then this will make sure that
established tcp connections dont continually grow when creating new http
clients.

This fixes the case where users are creating new http clients on top of
existing _valid_ connections.

This was encountered in Telegraf when we were recreating our http
clients after getting write failures that were unrelated to the actual
connection being severed (such as typos in the retention policy, see
https://github.com/influxdata/telegraf/issues/1058)
2016-04-19 13:18:33 -06:00
Nathaniel Cook 465f5a375f add elapsed function 2016-04-19 12:54:54 -06:00
Jonathan A. Sternberg 132b9e5496 Merge pull request #6414 from influxdata/js-prevent-query-pipelining
Send the "Connection: close" header for queries
2016-04-19 14:54:07 -04:00
Jonathan A. Sternberg 09c46a451a Sort the series keys inside of a tag set so the output is deterministic
The series keys within a tag set were previously not sorted which would
cause the output to be non-deterministic. This sorts the output series
by their keys so it has a consistent output especially when using
limits.

Fixes #3166.
2016-04-18 17:45:31 -04:00
Jonathan A. Sternberg 8bdd44107f Send the "Connection: close" header for queries
CloseNotify() is not compatible with pipelining. Adding this header
prevents the client from attempting to pipeline requests.
2016-04-18 15:38:50 -04:00
Aaron Knister 77db7ad618 Prevent goroutine leak in http service for persistent query connections 2016-04-18 15:11:04 -04:00
Jonathan A. Sternberg 34544d2c4b Fix CREATE RETENTION POLICY parsing so it doesn't consume tokens it shouldn't
The optional sections of the command consumed the semicolon token and
didn't put it back for the outer loop. The code shouldn't explicitly
check for a semicolon or EOF anyway, so these checks were removed and
the token gets unscanned if it doesn't match the optional token that the
parser is looking for.

Fixes #6398.
2016-04-17 02:41:17 -04:00
Jonathan A. Sternberg 86046bb2d0 Implement derivatives across intervals for aggregate queries
For aggregate queries, derivatives will now alter the start time to one
interval behind and will use that interval to find the derivative of the
first point instead of giving no value for that interval. Null values
will still be discarded so if the interval before the one you are
querying is null, then it will be discarded like if it were in the
middle of the query. You can use `fill(0)` to fill in these values.

This does not apply to raw queries yet.

Also modified the derivative and difference aggregates to use the stream
iterator instead of the reduce slice iterator for space efficiency.

Fixes #3247. Contributes to #5943.
2016-04-15 18:16:08 -04:00
Jonathan A. Sternberg f4ce20c92a Merge pull request #6394 from influxdata/js-integer-literal-duration-math
Allow time math with integer timestamps
2016-04-15 18:15:43 -04:00
Jonathan A. Sternberg 0144903686 Merge pull request #6272 from influxdata/js-3369-query-time-range-overflow
Detect when a time literal will overflow or underflow the query engine
2016-04-15 18:15:13 -04:00
Jonathan A. Sternberg a85188bd61 Allow time math with integer timestamps 2016-04-15 17:36:37 -04:00
Jonathan A. Sternberg 425e315f45 Detect when a time literal will overflow or underflow the query engine
Fixes #3369.
2016-04-15 17:35:54 -04:00
Jonathan A. Sternberg 6dbfe81e6b Update the changelog in master from v0.12.1
Removed bugfixes from 0.13.0 that were included in 0.12.1.
2016-04-15 17:34:56 -04:00
Jonathan A. Sternberg 1160b52a3a Merge pull request #6383 from influxdata/js-query-executor-panic-recovery
Recover from a panic during query execution
2016-04-15 17:30:56 -04:00
gunnaraasen d983a8c0d3 Support env overrides for all inputs of the same type 2016-04-15 09:39:22 -07:00
Jonathan A. Sternberg 207a4b9d07 Recover from a panic during query execution 2016-04-15 11:13:54 -04:00
Jonathan A. Sternberg 9c2e430a72 Removing no longer used code in the query engine 2016-04-15 10:22:34 -04:00
Jonathan A. Sternberg 42b68d915f Return a deprecated message when IF NOT EXISTS is used
The deprecated message is now attached to a new attribute returned with
the results. This message can then be read by clients to warn a user
about upcoming changes to the query engine.

The `influx` client has already been modified to read this message and
print it out for every format except CSV.

The first warning message is a deprecated message about removing `IF NOT
EXISTS` from `CREATE DATABASE`.

The message will also be printed to the server log.

Fixes #5707.
2016-04-15 09:17:59 -04:00
Seif Lotfy 64a4808dcb
Merge branch 'fix6294' of https://github.com/seiflotfy/influxdb into seiflotfy-fix6294
Conflicts:
	CHANGELOG.md
2016-04-14 14:08:38 -06:00
Jonathan A. Sternberg 03bbff1a65 Merge pull request #6380 from influxdata/js-6379-validate-percentile-args
Added checking for the first argument in percentile()
2016-04-14 15:57:07 -04:00
Seif Lotfy 7a2dcd3131 Check FieldCodec f before calling FieldCoded.Fields()
If FieldCodec f == nil don't call FieldCoded.Fields().

Fixes #6294
2016-04-14 20:30:30 +02:00
Jonathan A. Sternberg 1b6ffa1d2d Merge pull request #6363 from influxdata/js-6292-percentile-as-selector
Allow percentile to be used as a selector
2016-04-14 12:28:16 -04:00
Jonathan A. Sternberg d36698ebd0 Added checking for the first argument in percentile()
The `percentile()` call previously did not validate that the first
argument was a variable reference and that would let an invalid query
slip by that would panic the query engine.

Added checking for this case and also included test cases for the other
calls that require a variable reference as the first argument.

Fixes #6379.
2016-04-14 12:12:31 -04:00
Jonathan A. Sternberg 9d01f3aa56 Allow the implicit time field to be renamed
Fixes #6296.
2016-04-14 11:04:06 -04:00
Chris Ramón 93aa287d0a updates CHANGELOG 2016-04-13 13:10:40 -05:00
Jonathan A. Sternberg 66a599825b Allow percentile to be used as a selector
Fixes #6292.
2016-04-13 13:29:14 -04:00
Todd Persen 00ed9ebaf3 Remove TSDB listener accept message 2016-04-12 16:09:31 -07:00
Gunnar cfa50bbd3d Merge pull request #6228 from influxdata/ga-multiple-inputs
Support multiple listeners per input
2016-04-12 15:31:38 -07:00
Edd Robinson 592d668e1b Ensure Client is safe for concurrent use
Fixes #6287.
2016-04-12 14:23:32 +01:00
Pierre Fersing d4668af4d7 Updated changelog 2016-04-12 09:39:27 +02:00
Valeriy Simonov 1e6b76e0a6 Changelog update 2016-04-12 09:11:55 +05:00
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 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
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
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 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
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 ccac9858f1 Update changelog for issue #6206 2016-04-06 11:53:38 -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
Paul Dix 092cf4ee4a Update CHANGELOG.md with release notes for 0.12.0 2016-04-04 17:54:19 -04:00
Todd Persen ffa0ece3ac Update CHANGELOG.md 2016-04-04 11:12:35 -07:00
Edd Robinson 712cc3f290 ShardGroup Duration is checked when recreating rp
Fixes #6178.
2016-04-01 11:59:41 +01:00
Cory LaNou 7bda8102ac update changelog 2016-03-31 17:15:58 -05:00
Jonathan A. Sternberg 8752d1b1e3 Support chunked queries in the Go InfluxDB client
Modify the CLI to always use chunked queries.
2016-03-31 15:30:43 -04:00
Jonathan A. Sternberg c193bde61c Throw an error when time is compared to an invalid literal
A bigger refactor of these functions is needed to support #3290, but
this will work for the more common case that someone uses double quotes
instead of single quotes when surrounding a time literal.

Fixes #3932.
2016-03-31 11:29:20 -06:00
Edd Robinson f68637205c Check ShardGroup Duration when recreating database
Fixes #6153
2016-03-31 18:11:50 +01:00
Edd Robinson 105bcd3bb3 Merge pull request #6174 from influxdata/er-fix-shard-duration
Let SHARD DURATION be specified in isolation
2016-03-31 17:54:42 +01:00
Jason Wilder 328b39ae9b Add v0.11.1 changelog entries
[ci skip]
2016-03-31 10:50:32 -06:00
Edd Robinson 9cd0bc65f5 Let SHARD DURATION be specified in isolation
Fixed #6152.
2016-03-31 17:42:50 +01:00
Jason Wilder 34f1f4a1fb Update changelog 2016-03-31 10:19:46 -06:00
Ross McDonald 630996e2a1 Re-add RPM upgrade logic for 0.9 branch. 2016-03-31 11:07:02 -05:00
Edd Robinson 63b89b9215 Merge pull request #6151 from influxdata/er-iterator-panic
Ensure safe access to Shard engine
2016-03-31 16:36:50 +01:00
Jonathan A. Sternberg d8807ffaff Merge pull request #6167 from influxdata/js-6078-max-group-by-buckets
Limit bucket count in selection
2016-03-31 11:16:24 -04:00
Edd Robinson 8e2d1e48c7 Check if engine closed. Fixes #6140 2016-03-31 15:59:04 +01:00
Jason Wilder 3f34ae69c1 Update changelog 2016-03-31 00:06:12 -06:00
Jonathan A. Sternberg ad7480e64b Limit bucket count in selection
Fixes #6078.
2016-03-30 22:57:09 -04:00
Jonathan A. Sternberg eb467d8d7f Merge pull request #6126 from influxdata/js-6115-chunked-query-support-mid-series
Support chunking in the middle of a series in the emitter
2016-03-30 20:59:24 -04:00
Jonathan A. Sternberg 178a6e2f0a Merge pull request #6113 from influxdata/js-6112-simple-moving-average
Implement simple moving average
2016-03-30 20:57:55 -04:00
joelegasse de94acc79d Merge pull request #6163 from influxdata/jl-content-type
Don't use Request.FormValue() in HTTP handler
2016-03-30 17:34:59 -04:00
Joe LeGasse c149906cbf Use r.URL.Query().Get() rather than r.FormValue()
FormValue() would attempt to parse the body of a request when the
content-type is set to `application/x-www-form-urlencoded`. The write
handler never wants url-encoded forms, and should only ever check the
URL for query parameters.

Fixes #6061
2016-03-30 17:16:10 -04:00
Jonathan A. Sternberg 4702460854 Update the changelog for #6077 2016-03-30 16:53:02 -04:00
Jonathan A. Sternberg 364dce36ab Support chunking in the middle of a series in the emitter
Limit the maximum size of the return value when chunking is not used to
prevent the server from going out of memory.

Fixes #6115.
2016-03-30 14:36:35 -04:00
Joe LeGasse 59b9768655 updated CHANGELOG 2016-03-30 13:34:48 -04:00
Ross McDonald e15f9e8bc7 Updated changelog. 2016-03-29 17:03:34 -05:00
Jason Wilder cc60b6c1d9 Update changelog 2016-03-29 12:59:26 -06:00
Jonathan A. Sternberg 6453dbc249 Implement simple moving average
The simple moving average will gradually emit points instead of waiting
until the end. This should apply to derivative and difference in the
future too.

Fixes #6112.
2016-03-29 14:36:43 -04:00
Jonathan A. Sternberg 819e7a819f Merge pull request #6142 from diamondo25/patch-2
Fix typo in url of issue referenced in CHANGELOG.md
2016-03-29 12:33:58 -04:00
Jonathan A. Sternberg c1643e69c1 Have the server kill all queries on shutdown
Related to #6140, but won't actually fix that problem. It will correctly
stop new queries from being started during shutdown and will send the
interrupt signal to queries during shutdown.

Since the interrupt signal is asynchronous, there isn't currently a way
to wait for the queries to complete themselves before shutting down the
engine.
2016-03-29 11:48:21 -04:00
Jonathan A. Sternberg 9ddc59aab5 Merge pull request #6105 from influxdata/js-1825-difference-function
Implement the difference function
2016-03-29 09:37:59 -04:00
Jonathan A. Sternberg a9720f926e Implement the difference function
The difference function is implemented very similar to how derivative is
implemented. It is an aggregate function that acts over the entire
aggregate. This function will also have the same problems that
derivative has with getting values from the previous interval or point.
This will be fixed separately as part of #5943.

Fixes #1825.
2016-03-29 09:27:12 -04:00
Edd Robinson dcb6e318e9 Creating CQ with identical query does not error
Partially fixes #6094.

Prior to this when passing the same query and CQ name in a CREATE
CONTINUOUS QUERY command an error would be returned. This means the
command was not behaving in a similar way to other commands.a

Now when running the command with the same CQ name and query string no
error will be returned. Note, this change does not parse the query, it
simply compares a normalised query string to the existing one on the CQ.
2016-03-29 11:35:04 +01:00
Erwin Oegema bda8e0267e Fix typo in url of issue referenced in CHANGELOG.md 2016-03-29 11:41:42 +02:00
Ross McDonald eb172ba678 Three improvements to the `build.py` script:
- Improved handling of tar and zip package outputs
- Added support for statically-compiled binary outputs
- Modifyed the nightly version format to be more human-readable
2016-03-24 16:28:39 -05:00
Cory LaNou a8e7e681d2 Update CHANGELOG.md 2016-03-24 13:04:07 -05:00
Tait Clarridge 45b3e61ac7 Add configurable shard duration to retention policies
Allows configuration of shard group duration at database creation, and retention
policy create/alter time.

Query examples:

```
CREATE DATABASE testdb WITH DURATION 90d SHARD DURATION 30m NAME rp_testdb
CREATE RETENTION POLICY rp_testdb2 ON testdb DURATION INF REPLICATION 1 SHARD DURATION 30m
ALTER RETENTION POLICY rp_testdb2 ON testdb SHARD DURATION 1h
```

This can be useful with long duration retention policies with lots of data, where
you can split into smaller shards to relieve memory pressure.
2016-03-24 00:25:49 -04:00
Ben Johnson a6d9930b6f limit series count in selection
This commit adds a configurable limit to the number of series that
can be returned from a `SELECT` statement. The limit is checked
immediately after planning and is determined by the use of iterator
stats.

Fixes #6076
2016-03-23 12:48:48 -06:00
Jason Wilder f233a8bac8 Update v0.11.0 release date 2016-03-23 09:35:52 -06:00
Jonathan A. Sternberg d85b7334cd Merge pull request #6081 from influxdata/js-6075-query-time-limit
Support a timeout for running queries in the query manager
2016-03-23 11:32:08 -04:00
Valeriy Simonov 938453b0dc Changelog update 2016-03-23 10:41:52 +05:00
Jonathan A. Sternberg b89edfd71c Fix the code that handles semicolons
This allows multiple semicolons in a row now and also requires that a
semicolon separate commands. The query specification says this is
required, but a boolean error in `ParseQuery` makes one semicolon
optional and multiple semicolons an error.

Fixes #5728.
2016-03-22 15:32:54 -04:00
Jonathan A. Sternberg 79fe4490c2 Support a timeout for running queries in the query manager
Include an interrupt iterator at the top level to interrupt the fill
iterator if it is producing too many points.

Fixes #6075.
2016-03-22 13:30:40 -04:00
Jonathan A. Sternberg a35d9602cd Fix where filters when a OR is used and when a tag does not exist
If an OR was used, merging filters between different expressions would
not work correctly. If one of the sides had a set of series ids with a
condition and the other side had no series ids associated with the
expression, all of the series from the side with a condition would have
the condition ignored. Instead of defaulting a non-existant series
filter to true, it should just be false and the evaluation of the one
side that does exist should take care of determining if the series id
should be included or not. The AND condition used false correctly so did
not have to be changed.

If a tag did not exist and `!=` or `!~` were used, it would return false
even though the neither a field or a tag equaled those values. This has
now been modified to correctly return the correct series ids and the
correct condition.

Also fixed a panic that would occur when a tag caused a field access to
become unnecessary. The filter using the field access still got created
and used even though it was unnecessary, resulting in an attempted
access to a non-initialized map.

Fixes #5152 and a bunch of other miscellaneous issues.
2016-03-22 12:19:06 -04:00
Jonathan A. Sternberg abae1cfed0 Limit the maximum number of concurrent queries
Fixes #6079.
2016-03-21 22:34:27 -04:00
Ben Johnson 7156c1f9bd add IteratorStats
This commit adds an `IteratorStats` that holds aggregate
iterator processing information. A method is also added to
`Iterator` to return the stats:

	Stats() influxql.IteratorStats

The remote iterators will also emit their stats in the point
stream upon first connection, on a given interval, and then
finally once the last point has been sent.
2016-03-21 16:25:19 -06:00
Jason Wilder ee2f21e76f Merge pull request #6082 from influxdata/jw-tsm
Fix partially written TSM files
2016-03-21 15:42:27 -06:00
Jason Wilder 7567453c9a Ensure TSM files are fsync'd
Make sure TSM files are fsync'd when closed and also that the parent
dir is fsync'd when they are renamed.
2016-03-21 15:03:52 -06:00
Jonathan A. Sternberg 504bac53a9 Update changelog for the query management feature 2016-03-21 12:40:56 -04:00
mvadu 8af9170c1d Add platform specific override for file rename.
In windows, it first deletes the target file (if it already exists).
2016-03-18 21:45:29 +05:30
Jonathan A. Sternberg e47426ff6e Support integer literals in the query language
Numbers in the query without any decimal will now be emitted as integers
instead and be parsed as an IntegerLiteral. This ensures we keep the
original context that a query was issued with and allows us to act more
similar to how programming languages are typically structured when it
comes to floats and ints.

This adds functionality for dealing with integers promoting to floats in
the various different places where math are used.

Fixes #5744 and #5629.
2016-03-17 10:37:34 -04:00
Gunnar c6ff2588d1 Merge pull request #6025 from influxdata/ga-remove-json
Remove deprecated JSON write path
2016-03-16 14:17:23 -07:00
Todd Persen 58d1c8ded0 Display results of multiple queries in Admin UI, Not just the first query. 2016-03-16 13:22:37 -07:00
gunnaraasen 773486ae35 Update CHANGELOG.md 2016-03-15 23:55:48 -07:00
Jason Wilder 0703b85589 Add 0.10.3 changelog entries
[ci skip]
2016-03-15 16:13:51 -06:00
Paul Dix ce8f994d55 Update CHANGELOG with 0.11 release notes 2016-03-15 14:40:36 -07:00
Edd Robinson e5a41f7796 DROP SHARD 2016-03-14 22:59:55 +00:00
David Norton a369ed8565 update CHANGELOG.md 2016-03-14 17:48:53 -04:00
Cory LaNou ba6a95e9bc Merge pull request #5994 from influxdata/single-server-lite
Single Server
2016-03-14 16:11:37 -05:00
Joe LeGasse 288ac64e9d updated changelog 2016-03-14 16:49:06 -04:00
Jason Wilder 348c468ea2 Update changelog 2016-03-14 12:38:02 -06:00
Ben Johnson ea37ed98e5 CHANGELOG 2016-03-14 16:55:54 +00:00
Vidhuran Harichandra Babu 90b9291953 Removed condition to check if values are returned for queries so that the admin ui displays the same results as cli.
Fixes #4688
2016-03-11 06:29:19 +02:00
Jason Wilder db9d403fd1 Update changelog
[ci skip]
2016-03-10 09:08:25 -07:00
Jason Wilder 998cb0a6a2 Merge pull request #5963 from influxdata/jw-deadlock
Fix possible deadlock
2016-03-10 09:01:31 -07:00
Jason Wilder f020547d60 Update changelog 2016-03-09 17:42:06 -07:00
Jonathan A. Sternberg a55896a555 Merge pull request #5956 from influxdata/js-2715-allow-regex-for-field-values
Support using field regex comparisons in the WHERE clause
2016-03-09 17:38:39 -05:00
Edd Robinson 58c03448aa Merge pull request #5514 from influxdata/er-engine-panic
Ensure shards and engine are safely closed
2016-03-09 18:56:36 +00:00
Jonathan A. Sternberg 4ba3386679 Support using field regex comparisons in the WHERE clause
Fixes #2715.
2016-03-09 13:21:24 -05:00
Jonathan A. Sternberg 546de3f7cb Return error message when improper types are used in SELECT
Fixes #5949.
2016-03-09 11:36:18 -05:00
Ben Johnson 41dde61226 SHOW SERIES 2016-03-08 11:47:57 -07:00
Joe LeGasse af967a3cac Fix b1 conversion regression added in 0.10.2
Fixes #5924
2016-03-08 11:17:59 -05:00
Todd Persen 31d5f13e86 Update CHANGELOG.md 2016-03-07 17:17:19 -08:00
Jonathan A. Sternberg 2f0e246757 Implemented the tag values iterator for `SHOW TAG VALUES`
`SHOW TAG VALUES` output has been modified to print the measurement name
for every measurement and to return the output in two columns: key and
value. An example output might be:

    > SHOW TAG VALUES WITH KEY IN (host, region)
    name: cpu
    ---------
    key     value
    host    server01
    region  useast

    name: mem
    ---------
    key     value
    host    server02
    region  useast

`measurementsByExpr` has been taught how to handle reserved keys (ones
with an underscore at the beginning) to allow reusing that function and
skipping over expressions that don't matter to the call.

Fixes #5593.
2016-03-06 09:52:34 -05:00
Jason Wilder a937e8af98 Add 0.10.2 changelog entries
[ci skip]
2016-03-03 15:38:42 -07:00
Joe LeGasse acd2e1eb51 influx_tsm: Properly limit blocks per key per TSM file
This should fix #5865

This commit also removes the dependecy on the influxql package constants
that were used to write b1 and bz1 files and have changed since the
release of 0.10
2016-03-03 09:05:32 -05:00
Joe LeGasse 92955fa701 Updated CHANGELOG
Fixes #5880
2016-03-02 13:03:10 -05:00
Jason Wilder 6bbd09ed94 Update changelog 2016-03-01 21:23:28 -07: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
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
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
Ben Johnson 16eea8eecc add SeriesList marshaling 2016-02-25 15:38:16 -07:00
Jason Wilder 8d70d65a82 Convert time.Time to int64 2016-02-25 15:15:01 -07:00
Jon Seymour ddcb92c8db Update CHANGELOG for #5832.
Signed-off-by: Jon Seymour <jon@wildducktheories.com>
2016-02-26 07:59:18 +11:00
Jason Wilder 76dc958db0 Update changelog
[ci skip]
2016-02-25 09:20:49 -07:00
Ross McDonald 2b66f521fa Updated changelog for build updates. 2016-02-25 09:42:20 -06:00
Jonathan A. Sternberg 0730573e27 Fix running multiple CQs with the same name
Previously, CQs with the same name would be stored in the last run map
the same way. This caused only one of the CQs to run because after the
first one ran it would update the last run time for all CQs with the
same name.

Add the database name to the CQ ID in the last run map to differentiate
between CQs in different databases.

Fixes #5814.
2016-02-24 12:23:52 -05:00
Edd Robinson 8add49fd96 Ensures meta queries work in clusters.
Fixes #5612, #5573 and #5518.

Using the MetaExecuter, queries that need to run on both data nodes
and optionally the meta store will be executed across all data nodes
in the cluster.
2016-02-24 11:24:45 -05:00
Chris Ramón f235852c0b updates changelog 2016-02-23 00:03:32 -05:00
Jason Wilder a2d3d44505 Fix creating meta only nodes
This fixes a couple of issues with starting meta-only nodes.

1. We were always calling CreateDataNode regardless of whether the the
node is running data services.  We only call that now when node is
data enabled.
2. The node.json was created along-side creating the data node. Since
we are not creatinga a data node, this didn't happen anymore.  There
wasn't a simple way to do this in one place so it's actually handle
for when creating a meta or a data node now.  Since the ID assigned
to the node is the same regardless of role this works in all combinations
of roles.
3. The JoinMetaServer didn't return the ID of the joining node which
created some races when multiple nodes were joining.  The join call now
returns that information to the caller.

Fixes #5754
2016-02-22 15:06:05 -07:00
Mark Rushakoff fc5c8597ab Merge pull request #5758 from influxdata/mr-disk-stats
Track cache, WAL, filestore stats within tsm1 engine
2016-02-22 13:01:55 -08:00
Mark Rushakoff 688863cec5 Update changelog 2016-02-22 12:51:52 -08:00
Jason Wilder aa2e878019 Fix cache not deduplicating points in some cases
The cache had some incorrect logic for determine when a series needed
to be deduplicated.  The logic was checking for unsorted points and
not considering duplicate points.  This would manifest itself as many
points (duplicate) points being returned from the cache and after a
snapshot compaction run, the points would disappear because snapshot
compaction always deduplicates and sorts the points.

Added a test that reproduces the issue.

Fixes #5719
2016-02-22 13:24:42 -07:00
Jon Seymour a8877badcd Update CHANGELOG for #5716, #5664
Note that this series also includes cherry-pick of #5697.

Signed-off-by: Jon Seymour <jon@wildducktheories.com>
2016-02-21 03:56:37 +11:00
Edd Robinson 99a7341701 Wire up DROP retention policy to TSDB store.
Fixes #5653 and #5394.

Previously dropping retention policies did not propogate to local TSDB
shards. Instead, the retention policiess would just be removed from the
Meta Store.

This PR adds ensures that data associated with retention policies is
removed, when the retention policy is dropped.

Also, it cleans up a couple of other methods in `tsdb`, including the
requirement to provide (redundant) shardIDs when deleting databases.
2016-02-19 11:15:00 +00:00
Mark Rushakoff b72c684afb Merge pull request #5681 from influxdata/mr-expand-stats
Add more stats for httpd, query executor
2016-02-18 14:11:09 -08:00
Mark Rushakoff c2d2e23832 Update changelog 2016-02-18 13:55:46 -08:00
Jason Wilder a90114aa4d Use same node ID for meta and data nodes
Fixes #5669
2016-02-18 14:45:34 -07:00
Gabriel Levine a9fcc3229a Enable golint for influxql package. 2016-02-18 15:52:37 -05:00
Jason Wilder 84eac81ba1 Add 0.10.1 release nodes
[ci skip]
2016-02-18 12:42:49 -07:00
joelegasse 7479584afd Merge pull request #5725 from influxdata/jl-influx-tsm
influx_tsm: close bolt databases properly
2016-02-18 10:01:00 -05:00
bastard a5cbc43afd Merge remote-tracking branch 'upstream/master' into conjoined-field-names-for-graphite-templates 2016-02-18 00:10:11 +00:00
Jason Wilder b4490788a0 Merge pull request #5512 from influxdata/ga-remove-json-write
Remove JSON write path
2016-02-17 16:52:22 -07:00
Joe LeGasse 58033b1efa influx_tsm: close bolt databases properly
Fixes #5724
2016-02-17 14:20:28 -05:00
gunnaraasen a7a8258b3e Add config option to enable JSON write path 2016-02-16 16:29:25 -08:00
Jonathan A. Sternberg 23da067593 Fix meta.Client CreateDatabaseWithRetentionPolicy RPC command
Previously, meta.Client would drop the default retention policy when
trying to create a database with a retention policy. The RPC has now
been modified to include the desired retention policy in the
CreateDatabase command and have it use that retention policy information
instead of the default configuration when provided.

This also lowers the number of RPC calls for
CreateDatabaseWithRetentionPolicy to only a single RPC call instead of
two.

Protections have also been included so creating a retention policy with
different parameters will return an error similar to if you tried to
modify the retention policy separately.

Fixes #5696.
2016-02-16 16:21:26 -05:00
Joe LeGasse 7657d01f86 Updated CHANGELOG 2016-02-16 13:51:51 -05:00
Jason Wilder 06c1c48b3b Merge pull request #5666 from influxdata/jw-gdm
Manage dependencies with gdm
2016-02-16 09:52:22 -07:00
Jason Wilder 6fb00c1a9b Remove MetaServers from node.json
This removes the MetaServers property from node.json to eliminate one
of the four places those addresses are stored on disk.  We always use
the values that come through the config (via file, env var or -join arg).
2016-02-15 22:42:51 -07:00
Chris H (CruftMaster) e981e202b8 Updating CHANGELOG 2016-02-14 22:46:41 +00:00
Jason Wilder 2af618c2d7 Manage dependencies with gdm
Since we are pinned to go 1.4.3, we're using the same dependency
manager as telegraf to make builds more reproducible.  We'll re-evaluate
vendoring when we can move off of 1.4.3.
2016-02-12 16:27:17 -07:00
Cory LaNou 360f40561e misc fixes and changelog 2016-02-12 11:35:19 -07:00
Joe LeGasse 1852814612 Update authentication cache to work for clusters
Also removed unused code and duplicated test code
2016-02-12 07:16:57 -05:00
Seif Lotfy 18f22a22fb Make sure parenthesized SELECT arguemnts are evaluated properly without panic
Fixes #5630
2016-02-11 17:41:33 -06:00
Jason Wilder c8b41d1b56 Update changelog
[ci skip]
2016-02-11 11:45:39 -07:00
Todd Persen 8d7a4a9acc Update CHANGELOG.md 2016-02-10 22:38:17 -08:00
Jason Wilder 8ce831eba4 Update changelog
[ci skip]
2016-02-10 15:58:20 -07:00
Jason Wilder 26dafa68ac Update changelog
[ci skip]
2016-02-10 14:34:20 -07:00
Ben Johnson 2f1e83427b Merge pull request #5617 from benbjohnson/influxdata
Rename influxdb/influxdb to influxdata/influxdb
2016-02-10 13:29:46 -07:00
Jason Wilder 045fdaa4c7 Remove incorrect changlog entry
#4299 will be in 0.11.  Not in 0.10.

Fixes #5611

[ci skip]
2016-02-10 13:07:44 -07:00
Jason Wilder 8a39123ed2 Update changelog
[ci skip]
2016-02-10 12:13:46 -07:00
Ben Johnson 5a0d1ab7c1 rename influxdb/influxdb to influxdata/influxdb
This commit changes all the import and URL references from:

    github.com/influxdb/influxdb

to:

    github.com/influxdata/influxdb
2016-02-10 10:26:18 -07:00
Edd Robinson cfbb219e49 Fixes #5545 2016-02-09 18:41:26 +00:00
Nic Grayson 87deeb6348 fixed grammar/typos in collectd section of docs 2016-02-09 10:32:43 -06:00
Nic Grayson 3a12b2e392 fixed grammar/typos in collectd section of docs 2016-02-09 10:31:57 -06:00
Jason Wilder aacacbc4c3 Update changelog
[ci skip]
2016-02-09 09:25:09 -07:00
Jason Wilder efc5de0bf4 Update changelog
[ci skip]
2016-02-09 09:19:49 -07:00
Edd Robinson 142ff668c8 Merge pull request #5550 from gabelev/lint_engine_wal
Enable `golint` on the tsdb/engine/wal
2016-02-09 15:54:12 +00:00
Gabriel Levine 7d4217ab97 enabled golint for tsdb/engine/wal.go and wal_test.go and updated changelog. 2016-02-09 10:29:09 -05:00
Tait Clarridge 63ff0ca488 Fix for lease redirect
Previously, the lease redirect was invalid causing anything relying
on a lease for execution (eg. continuous queries) to cease functioning.

The name/nodeid URL param parsing has been moved up to the top of the
handler so the options can be forwarded on to the real leader.

X-Github-Closes: #5592
2016-02-09 09:48:19 -05:00
Jason Wilder a9552fdd91 Merge pull request #5565 from tpitale/configure-udp-precision
Configurable precision on UDP services
2016-02-08 15:20:55 -07:00