Commit Graph

14167 Commits (b2bc1cd315a213a0822dc63643a57b1c5b263743)

Author SHA1 Message Date
Tim Yocum b2bc1cd315
Fixing date; capitalization of InfluxDB 2019-01-07 11:28:06 -06:00
Ben Johnson dd481f35df
Merge pull request #10599 from influxdata/sgc-check-utf8
Add -check-utf8 to verify sub-command
2019-01-02 13:29:43 -07:00
Stuart Carnie 8aba6f73a5
feat(influx_inspect): Add -check-utf8 to verify sub-command 2018-12-21 10:44:43 -07:00
Ryan Betts 38b07bbaab
Merge pull request #10597 from influxdata/announce
Add repo change announcement to readme
2018-12-21 11:29:26 -05:00
Ryan Betts d7fdd7d296 Add repo change announcment to readme 2018-12-21 10:19:21 -05:00
Hercules Mango Churchill 7db3db278b Update changelog 2018-12-20 22:10:34 +00:00
Nathaniel Cook e0949fd691
Merge pull request #10590 from influxdata/flux-staging
build(flux): update to Flux v0.11.0
2018-12-20 15:10:16 -07:00
Stuart Carnie 216cfa329f feat(flux): Add user authentication and authorization support
* Add AuthorizeDatabase API to QueryAuthorizer to verify a user has
  appropriate access to the specified database
* Update serverFluxQuery handler to require a meta.User when auth is
  enabled
* update Flux createFromSource and createBucketsSource dependencies to
  require Authorizer when auth is enabled in configuration
* update createFromSource to verify read permissions for each bucket
  specified in a Flux query
* update BucketsDecoder, which implements the buckets() Flux function,
  to return buckets that the user has read or write permissions to
* add unit tests to verify authentication is required for Flux HTTP
  requests when auth is enabled in configuration
2018-12-19 14:46:12 -07:00
Jonathan A. Sternberg ee86d75361
Merge pull request #10586 from influxdata/js-flux-update
Update flux to 0.11.0
2018-12-19 14:25:50 -06:00
Jonathan A. Sternberg 41a46166e3
Update flux to 0.11.0 2018-12-19 13:49:01 -06:00
Edd Robinson 8629d001c1
Merge pull request #10583 from influxdata/er-fix-utf8-fields
Fix invalid UTF-8 fields error
2018-12-19 17:28:34 +00:00
Edd Robinson 77fe5a9a62 Treat fields and measurements as raw bytes 2018-12-19 14:38:50 +00:00
Edd Robinson 348dac1672 Add repro test case for UTF-8 issue 2018-12-19 14:38:31 +00:00
David Norton db8f51ff2f
Merge pull request #10578 from influxdata/dn-limit-name-len
Limit database and retention policy names to 255 characters
2018-12-18 12:55:49 -05:00
David Norton 8575378ae8 fix #10110: limit db & rp name length to 255 2018-12-17 16:58:28 -05:00
Ben Johnson b88d852c54
Merge pull request #10536 from influxdata/bj-limit-full-compaction
Limit force-full and cold compaction size.
2018-12-17 10:44:10 -07:00
tmgordeeva 95ac681c4b
Merge pull request #10572 from influxdata/tg-mixed-tests
tsdb: mixed shard tests
2018-12-14 14:37:19 -08:00
Stuart Carnie 0331214016 chore(platform): Update platform to resolve panic with group push down
influxdata/platform#1896
2018-12-13 11:33:13 -07:00
Tanya Gordeeva 0a39786ea7 tsdb: mixed shard tests
Specifically tests around the global index for fields with mixed shard types.
2018-12-13 08:31:49 -08:00
Nathaniel Cook 451ed5feed
Merge pull request #10569 from influxdata/flux-staging
build: update Flux to v0.9.0
2018-12-12 16:59:48 -07:00
Stuart Carnie 881f27fe6f fix(flux): Call storage API to correctly map group mode
This fix ensures group(mode:"by") is correctly pushed down to the
storage layer.
2018-12-12 13:03:33 -07:00
Nathaniel Cook 72876b1120 build: update Flux to v0.9.0 2018-12-12 12:57:54 -07:00
Nathaniel Cook d04a1b9e3e
Merge pull request #10561 from influxdata/flux-staging
chore: update Flux to v0.8.0
2018-12-12 09:28:47 -07:00
Stuart Carnie 23d1281b2a feat(influx_tools): Add gen-init and gen-exec commands
* gen-init initializes a database based on the provided CLI spec
* gen-exec generates the data for the target database based on the same
  CLI spec as gen-init
2018-12-12 07:38:21 -07:00
Nathaniel Cook f8c08d1971 chore: update Flux to v0.8.0 2018-12-11 12:28:24 -07:00
Hercules Mango Churchill 3b22abc962 Update changelog 2018-12-10 18:04:13 +00:00
Mark Rushakoff 1e1034f9f4
Merge pull request #10549 from influxdata/js-pass-query-authorizer-to-subqueries
Pass the query authorizer to subqueries
2018-12-10 10:03:49 -08:00
Jonathan A. Sternberg 9f1ac41b85
Pass the query authorizer to subqueries
The query authorizer was not being properly passed to subqueries so
rejections did not happen when a subquery was the one reading the value.
Similarly, the max series limit was not being propagated downwards
either.
2018-12-07 15:09:35 -06:00
Jonathan A. Sternberg 9dff5f072f
Merge pull request #10539 from influxdata/js-drop-nan-points
Drop NaN values when writing back points
2018-12-07 10:01:49 -06:00
Jonathan A. Sternberg 9f26eb7630
Drop NaN values when writing back points
When an NaN value was computed, it would be written back incorrectly as
a string type instead of being omitted. This happened very rarely in the
case that `stddev()` of a single value was computed and only when it was
being done on a new shard.

This correctly drops the value. The reason this wasn't correctly dropped
previously is because NaN values are represented as a `(*float64)(nil)`
which does not equal `nil` so the writeback system thought it was a
non-nil point, but the writer encoded it as a string.

In addition to the above, this also fixes the point writer to report the
number of points actually written rather than the number of points
desired to be written. Previously, if there was an error writing a point
for some reason, the point would be silently dropped, but still recorded
as a point that had been written. Now it reports the number of points
that were written and omits the ones that were dropped.
2018-12-06 10:55:46 -06:00
Stuart Carnie 809ac4f0d5 chore: Update copyright information 2018-12-05 14:49:56 -07:00
Ben Johnson 40db64d0b9
Limit force-full and cold compaction size.
This commit limits the number of files that can be compacted in
a single group when forcing a full compaction or when a shard
becomes cold. This is to prevent too many files being compacted
at the same time.
2018-12-05 10:18:56 -07:00
Nathaniel Cook 3ceb765c80
Merge pull request #10535 from influxdata/flux-staging
chore: update Flux to v0.7.2
2018-12-04 13:30:42 -07:00
Nathaniel Cook f96e55cffd chore: update Flux to v0.7.2 2018-12-04 11:10:10 -07:00
Hercules Mango Churchill 10e013ddb2 Update changelog 2018-12-04 14:48:59 +00:00
Jonathan A. Sternberg 367328aa3e
Merge pull request #10130 from karalabe/client-custom-dialer
client/v2: support custom dialer, not just socks proxy
2018-12-04 08:48:39 -06:00
Stuart Carnie 39a3d2335e chore(flux): Update to Flux 0.7.1
Resolve breaking API changes
2018-11-30 10:38:56 -07:00
Jeff Wendling 9f0cd683b9
Merge pull request #10516 from influxdata/jmw-conflict-concurrency
tsdb: conflict based concurrency resolution
2018-11-29 14:14:24 -07:00
Ben Johnson cd1e1ca755
Merge pull request #10525 from influxdata/bj-warn-series-file
Skip and warn series files in retention policy directory.
2018-11-28 11:42:29 -07:00
Jeff Wendling cca97bf9b9
Merge pull request #10517 from influxdata/jmw-always-cleanup-fields-index
tsdb: clean up fields index for every kind of delete
2018-11-28 11:33:34 -07:00
Ben Johnson 298eddb82c
Skip and warn series files in retention policy directory. 2018-11-28 11:20:18 -07:00
Jeff Wendling 72283cd9c5
Merge pull request #10509 from influxdata/jmw-tsdb-disallow-mixed-index
tsdb: don't allow deletes to a database in mixed index mode
2018-11-28 10:53:42 -07:00
Jeff Wendling 259f3fe6e5 tsdb: consider measurement drops per shard on inmem 2018-11-27 16:59:17 -07:00
Jeff Wendling 0a2f6191a6 tsdb: clean up fields index for every kind of delete
Before this, if you deleted everything with `delete where true`
for example, then you would be left with all of your measurements
in the fields index. That would cause ghost fields to reappear
if someone reinserted to the measurement.

This fixes that by making it so the deepest most delete code
checks if the measurement was removed from the index, and if so
cleaning it up out of the fields index.

Additionally, it fixes bugs in that cleanup code where if you had
a measurement like "m1" and "m10", when iterating over the cache
or file store, "m1" would match "m10" due to it only checking the
prefix. This also has it check the character right after the
measurement to be either a comma because tags started, or the first
character of the field separator.
2018-11-27 16:12:06 -07:00
Christopher M. Wolff 4eeb5ad191
Merge pull request #10523 from influxdata/cmw-controller-log
Remove "Verbose" option from controller.Config
2018-11-26 15:37:51 -07:00
Christopher Wolff 32e28c70ab Remove "Verbose" option from controller.Config (loggler log level will be used instead) 2018-11-26 14:10:59 -08:00
Jeff Wendling 4cad51a604 tsdb: conflict based concurrency resolution
There are some problematic races that occur when deletes happen
against writes to the same points at the same time. This change
introduces guards and an epoch based system to coordinate these
modifications.

A guard matches a point based on the time, measurement name, and
some conditions loaded from an influxql expression. The intent
is to be as precise as possible without allowing any false
neagatives: if a point would be deleted, the guard must match it.
We are allowed to match more points than necessary, at the cost
of slowing down writes.

The epoch based system keeps track of outstanding writes and
deletes and their associated guards. When a delete operation
is going to start, it waits until all current writes are
done, and installs its guard, blocking all future writes that
contain points that may conflict with the delete. This allows
writes to disjoint points to proceed uncontended, and the
implementation is optimized for assuming there are few
outstanding deletes. For example, in the case that there are no
deletes, a write just has to take a mutex, bump a counter, and
compare a value against zero. The epoch trackers are per shard,
so that different shards never have to contend with one another.
2018-11-21 19:19:53 -07:00
Jeff Wendling 030adf4bd5 tsdb: don't allow deletes to a database in mixed index mode
TSI1 and inmem indexes have different properties during deletes.
Specifically, inmem shares a global index across all shards, where
every tsi1 index is contained to a specific shard. When deleting
a series, it may cause the last reference to the series across all
shards to be dropped, necessitating a removal from the series file.
Since the inmem index shares the index across all shards, removing
the series when it's removed from the series file is sufficient.

However, in the case of a mixed index database, if the last shard
is a TSI1 shard, the other inmem indexes are not available when we
discover that it was the last reference to the series. This ends
up leaving the series in the inmem index without a series id in
the series file, causing all sorts of misbehavior.

Rather than continue curling ourselves into a ball to try to fix
this unsupported mode, give a helpful error message to the user
that they must run their database in a non-mixed index mode to
allow deletes.
2018-11-21 18:18:38 -07:00
Stuart Carnie 7c37b6e30c chore: Update to platform@master 2018-11-21 15:51:52 -07:00
Stuart Carnie a52f96e03d feat(storage): Export GetReadSource API for Enterprise reuse 2018-11-21 15:51:52 -07:00