Commit Graph

1902 Commits (1.8)

Author SHA1 Message Date
Edd Robinson c57c1744ed Set cache size when building TSI index
If there is a significant amount of data in the WAL, then building the
TSI index can be problematic without being able to set the max cache
size to something larger.

This commit adds an option to se the maximum cache size.
2018-10-08 16:26:37 +01:00
Ben Johnson 2cb97146f0
Fix series file tombstoning.
This commit fixes an issue with the series file compaction process
where tombstones are lost after compaction and series existence
checks are not correct. This commit also fixes some smaller flushing
issues within the series file that mainly related to testing.
2018-10-05 08:23:25 -06:00
Warren Harper 216feed8ed Fix linting errors in the errlist package
References #4098
2018-10-04 21:39:08 -04:00
Jonathan A. Sternberg 677552f093
Merge pull request #9806 from mschoenlaub/master
Print error message for unknown errors in client
2018-10-01 16:27:16 -05:00
Manuel Schoenlaub 15bd336efd
Print error message for unknown errors, e.g. server crashes without message 2018-10-01 16:25:37 -05:00
Adam 5bb62597c8
Backup continue on errors (#10307)
* mod backup to continue if a shard fails to backup
2018-09-26 14:44:14 -04:00
Stuart Carnie 62b9791da8 feat(flux): Add initial support for executing Flux queries 2018-09-17 22:38:27 -07:00
Stuart Carnie 59bd822af9 refactor(storage): Export subset of APIs to facilitate reuse
* the protocol service definition, ReadRequest and ReadResponse is
  reused across projects, rather than requiring redefinition.

* the ReadRequest protocol buffer definition removes the concept of a
  database and retention policy, replacing it with a field named
  ReadSource of type google.protobuf.Any. OSS requests will use the
  ReadSource message structure defined in local to this package, which
  defines fields to represent a Database and RetentionPolicy. Other
  implementations can provide their own data structure allowing the
  remainder of the ReadRequest to be reused.

* The RPC service and Store are expected to be redefined to handle their
  specific requirements for resolving a ReadSource

* ResultSet and GroupResultSet are interfaces representing non-grouping
  and grouping read behavior respectively. Calling NewResultSet or
  NewGroupResultSet will construct instances of these types

* The ResponseWriter type is exported to deal with serialization of
  the ResultSet and GroupResultSet types
2018-08-24 11:56:04 -07:00
Sven Mäder 1a138e7dcf Fix legacy restore bug #10072 2018-08-17 09:39:25 +02:00
Tim Brooks fee13d0150 Minor fix for legacy restore (#9978)
Restore would fail when file paths contained extra periods.
Taking the basename of the files fixes this.
2018-08-15 09:06:44 -04:00
Jonathan A. Sternberg beae42a090
Merge pull request #10151 from influxdata/js-480-config-flux-section
Modify the `ifql` section to `flux`
2018-08-08 11:26:33 -05:00
Jacob Marble 5c8f350dd8 influx_inspect: Make buildtsi code resusable 2018-08-07 11:33:21 -07:00
Jonathan A. Sternberg be83e81102 Modify the `ifql` section to `flux`
Mark the breaking changes in the changelog.
2018-08-02 15:50:23 -05:00
Jeff Wendling f21d1773af move tls config into pkg
this makes it so you don't have to depend on cmd/influxd/run in
order to share the code with the parsing and stuff.
2018-08-02 14:29:07 -06:00
Jeff Wendling 767b991089 implement using tls configuration 2018-08-02 14:29:07 -06:00
Jeff Wendling 903bd6c14a add tls configuration 2018-08-02 11:21:14 -06:00
Ben Johnson 99e2ad60a4
Merge pull request #10122 from influxdata/bj-tsi-roaring
Add roaring bitmaps to TSI index files.
2018-07-31 10:28:56 -06:00
Stuart Carnie 0a4d46aedb fix(influx_tools): Use Array cursor types 2018-07-26 11:37:06 -07:00
Ben Johnson fdfd038401
Add roaring bitmaps to TSI index files. 2018-07-24 17:59:23 +01:00
Edd Robinson 1b398cf7be Megacheck 2018-07-18 12:21:54 +01:00
Stuart Carnie 497fc42779 pr(tsdb): Feedback items from megacheck
* batch cursors and cursorIterator will be removed in a follow up
  PR using Arrow array data structures
2018-07-16 08:55:37 -07:00
Edd Robinson 22d2097e6d Fix vet issues 2018-07-12 11:47:49 +01:00
Edd Robinson ad388a8fd8 Address PR feedback 2018-07-09 11:51:48 +01:00
Edd Robinson 52e291eb62 uncomment profiling 2018-07-09 11:51:48 +01:00
Edd Robinson cd0294ea70 Enable concurrent index building 2018-07-09 11:51:48 +01:00
Edd Robinson ac0f125db9 Provide an API for re-using tags 2018-07-09 11:51:48 +01:00
Edd Robinson 9c2e7635d5 Avoid allocating a string for measurment names 2018-07-09 11:51:48 +01:00
Edd Robinson 3cf20823e9 Allow LogFile buffer size to be changed
When adding many series using offline tooling, it's likely that every
series involves an entry being appended to a LogFile. Typically an entry
is 11 or 12 bytes, but the default bufio.Writer buffer size is only 4K.

This means by default a write of 10,000 new series would involve ~30
buffer flushes.

This commit makes the buffer configurable, and sets the value in
`buildtsi` such that it reflects the number of series being written to
the LogFile.
2018-07-09 11:51:48 +01:00
Edd Robinson 4a90d142a7 Batch series being created 2018-07-09 11:51:15 +01:00
Edd Robinson 32ed165d9e Don't flush/sync when building index 2018-07-09 11:51:15 +01:00
Edd Robinson 2124b5e48e Logging format 2018-07-09 11:49:26 +01:00
Edd Robinson af88db51c1 Add profiling 2018-07-09 11:49:26 +01:00
Edd Robinson ef4e525546
Merge pull request #10032 from influxdata/er-reporttsi
Add new TSI index cardinality report to influx_inspect
2018-07-04 11:40:05 +01:00
Edd Robinson 08c3800a8a Address PR feedback 2018-07-04 10:57:40 +01:00
Edd Robinson cef4c399c5 Sort shard results 2018-07-03 14:20:10 +01:00
Edd Robinson e959fd49a9 Fix build 2018-07-03 14:15:32 +01:00
Edd Robinson 07ca0378bf Implementing -tag-keys is a TODO 2018-07-03 13:52:04 +01:00
Edd Robinson 89b1a49d38 Fine tune limit for when to use bitmap 2018-07-03 13:39:33 +01:00
Edd Robinson 5bce912a39 Fix panic when no series for measurement: 2018-07-03 12:39:20 +01:00
Edd Robinson 593d530525 Add total cardinality 2018-07-03 12:13:05 +01:00
Edd Robinson 33a60dfd85 Support for cardinality by measurement 2018-07-03 11:57:08 +01:00
Stuart Carnie e832514355 pr(influx_tools): PR feedback 2018-07-02 09:45:37 -07:00
Stuart Carnie 8c2ff02ede fix(influx-tools): Reimplement compact-shard using tsm1.Compactor
* utilizes `tsm1.Compactor#CompactFull` to fully compact the specified
  shard
* the WAL is unmodified
* added `-verbose` option to show progress as TSM files are opened
2018-07-02 09:45:37 -07:00
Stuart Carnie 0887b38a65 chore(influx_tools): Rename command influx-tools → influx_tools 2018-07-02 09:45:37 -07:00
Jonathan A. Sternberg 88b81941ac Modify the storage service to expose a grpc interface instead of yarpc 2018-06-28 14:03:09 -05:00
Edd Robinson 13fd17166b gofmt 2018-06-19 16:09:59 +01:00
Edd Robinson ab293e813d
Merge pull request #9856 from pliu/backup_restore_parallel_compression
Parallelize compression/decompression during backup and restore
2018-06-15 14:30:25 +01:00
Jacob Marble 0dc5393441 tsm/cache: Remove unused function parameter 2018-06-13 15:22:37 -07:00
Ben Johnson e918e2f011
Merge pull request #9969 from influxdata/bj-cli-retention-policy
Add retention policy flag to CLI queries.
2018-06-13 14:06:07 -06:00
Stuart Carnie 88cd9f3fcf pr(influx-tools): Improvements per PR review 2018-06-13 10:29:59 -07:00
Stuart Carnie 832863c099 feat(influx-tools): Add compact-shard command for offline compactions
`influx-tools compact-shard` allows a user to fully compact a shard
when the `influxd` process is offline.

Fixes #9958
2018-06-13 10:29:59 -07:00
Stuart Carnie 0f1917fc6b fix(influx-tools): Exporter disables monitor and compactions
This should not have caused correctness issues, but is an unintended
side effect that exporting data may cause compactions to run. It is
possible that a compaction would not run to completion, leaving .tmp
files around after an export.
2018-06-13 10:29:59 -07:00
Stuart Carnie 278ca32f1f refactor(influx-tools): Move shard writer to be usable by other packages
Default behavior has not changed, however, additional options
permit writing `.tsm.tmp` files and adjusting the starting generation
and sequence.
2018-06-13 10:29:59 -07:00
Ben Johnson dae59cce7a
Add retention policy flag to CLI queries. 2018-06-13 09:10:39 -06:00
Edd Robinson b314c316a9 Add regex support to storage service 2018-06-12 15:54:18 +01:00
Edd Robinson 524f400836 Make testing of handler easier 2018-06-12 15:54:18 +01:00
Paul Dix 4f7b93342c Update Prometheus read/write to use new storage query layer.
* Update Prometheus remote write to use metric name as measurement name and value as the field name.
* Update Prometheus remote read to use the storage.Read method to bypass the InfluxQL query engine.
2018-06-12 15:54:18 +01:00
Stuart Carnie d42abde836 refactor(services/storage): Enhanced group support for Read RPC 2018-05-30 11:32:20 -07:00
Jonathan A. Sternberg 4e1228fce3
Merge pull request #9855 from influxdata/js-megacheck-importer
Remove an unused variable caught by megacheck in the importer
2018-05-29 08:44:06 -05:00
Ben Johnson 8b44e3142c
Add optional pprof http endpoint immediately on startup.
This commit adds `debug-pprof-enabled` which will start the default
`net/http/pprof` endpoint and bind against `localhost:6060`. This
will help to debug startup performance issues.
2018-05-23 14:32:15 -06:00
Ben Johnson 1fc403337e
Add -series-file flag to dumptsi command help. 2018-05-22 10:36:00 -06:00
Jeff Wendling 6409b0a441 dumptsmwal: fix minor vet error 2018-05-18 18:21:19 -06:00
Jacob Marble 3f2ff742c0 Remove unused 'database' field 2018-05-18 09:22:43 -07:00
Jonathan A. Sternberg c36e75ad17 Remove an unused variable caught by megacheck in the importer 2018-05-16 13:22:15 -05:00
Peng Liu 2e3ef6c9d7 Parallel compression
Drop-in of pgzip for gzip
2018-05-16 11:19:57 -07:00
Ben Johnson 22ffb6acda
Add dumptsmwal command to influx_inspect. 2018-05-15 11:21:35 -06:00
Jacob Marble 3cfbc33c0e Implement SHOW STATS FOR 'indexes' 2018-05-10 11:33:52 -07:00
Jacob Marble 87d73d405c tsdb/SeriesFile: remove unused function param 2018-05-04 11:22:12 -07:00
Tanya Gordeeva b4417fc7fc influx-tools: export/import fixes
- Expose io for testing
- Initialize logging only when present
- Fix nil cases when replacing retention policies
- Use meta client when getting shard groups
- Disallow updating retention policies
- Delete shard files, not shard groups, when replacing shards
- Add duration and replication options for retention policy
2018-05-03 17:06:17 -07:00
Jeff Wendling cf81a3e66e
Merge pull request #9770 from influxdata/jmw-inspect-series-file
Add verify-seriesfile to influx_inspect
2018-05-02 11:27:53 -06:00
Ben Johnson 2e470974ec
Merge pull request #9793 from influxdata/bj-delete-nonprintable-unicode
Add key sanitization to deletetsm
2018-04-30 15:38:08 -06:00
Ben Johnson 4cb36d5301
Add key sanitization to deletetsm
This commit adds the `-sanitize` flag to `influx_inspect deletetsm`
which will delete all keys that contain invalid, non-printable, or
replacement character unicode.

Usage:

```sh
$ influx_inspect deletetsm -sanitize PATH
```
2018-04-30 13:06:33 -06:00
Ben Johnson 108fa09439
Rename corrupt tsm files on load. 2018-04-27 14:27:44 -06:00
Jeff Wendling 02b90d195e verify-seriesfile: update verbose logging 2018-04-26 12:54:32 -06:00
Jeff Wendling bc2801c3fc verify-seriesfile: some style and renaming fixes 2018-04-26 12:11:02 -06:00
Jeff Wendling c38108eb8a fix some megacheck errors 2018-04-25 18:14:25 -06:00
Jeff Wendling 388a664acc verify-seriesfile: verify partitions in parallel 2018-04-25 18:10:27 -06:00
Jeff Wendling 696ab40ddb verify-seriesfile: reduce compaction threshold in tests
helps it run faster, and hopefully not OOM in teeny environments.
2018-04-25 18:10:23 -06:00
Jeff Wendling adeec62c0d reorganize the verify commands into a folder 2018-04-25 18:10:22 -06:00
Jeff Wendling 3e7a01b1db refactor verify_seriesfile
- some style changes
- export and make usable the verify functions
- make smaller functions for verification
- change the flags to be more intuitive
2018-04-25 18:10:20 -06:00
Jeff Wendling 9f09a3c1c2 add tests for verify_seriesfile
does some basic sanity checks. it's hard to be more exhaustive without
either taking a crazy amount of time, or being non-deterministic,
but at least this makes sure we barf in some cases.
2018-04-25 18:10:19 -06:00
Jeff Wendling e771040a7d Add verify-seriesfile to influx_inspect
Fixes #9767
2018-04-25 18:10:17 -06:00
Tanya Gordeeva 0badc89b11 influx-tools/importer: Clean up shards with errors 2018-04-25 09:33:43 -07:00
Tanya Gordeeva 1ea9397353 influx-tools/importer: Binary format import command
Import command using the binary format reader to directly write TSM data,
optionally replacing existing retention policies and shards.
2018-04-25 09:33:43 -07:00
Tanya Gordeeva 15b46c8ebe influx-tools/importer: Binary format reader unit tests 2018-04-25 09:33:43 -07:00
Tanya Gordeeva 6f99a3cfad influx-tools/importer: Binary format reader
Binary format reader for output from `import-tools export -format binary`.
2018-04-25 09:33:43 -07:00
Adam b3cd949c3f
Update backup flags to have long/short versions (#9713)
Updated flags, help text, removed documentation for deprecated legacy options.  Updated documentation to describe the  syntax and options for the newer -portable format. Legacy support remains, but is only referenced in the online documentation.
2018-04-25 10:49:46 -04:00
Jonathan A. Sternberg dff34939f8
Merge pull request #9028 from cbushko/lint-the-c-dirs
Fix linting on cmd files
2018-04-23 10:41:05 -05:00
Ben Johnson 9a58835b82
Merge pull request #9743 from influxdata/bj-delete-tsm
Add 'influx_inspect deletetsm'
2018-04-20 07:41:25 -06:00
Stuart Carnie 14dcc5d6e7 PR feedback 2018-04-19 18:05:55 -07:00
Stuart Carnie 29ce031fc2 influx-tools/export: driver for reshaping and exporting data
The only file require in Enterprise is a reimplementation of main.go,
the server.Interface and server.MetaClient interfaces.
2018-04-19 18:05:55 -07:00
Stuart Carnie 9e79b5cbaf influx-tools/format: implementation of various series and value writers
A format.Writer is an abstraction for reading data from
storage.ResultSet and writing to various formats. Those included are

* binary: efficient binary format using protocol buffers. This is the
  expected format for the import tooling. The data is written in the
  desired shard group shape so that it can be read and streams to
  TSM files without further transformation.

* line: line protocol use for exporting field type conflicts or as an
  alternative, lossless export format

* text: two debugging modes for outputting series or series and values
  in a more efficient format that line protocol.

* discard: reads and discards the source data. This can be useful for
  benchmarking and profiling the read and decode performance.
2018-04-19 18:05:55 -07:00
Stuart Carnie 338d6b463d influx-tools/server: abstractions to simplify usage in Enterprise
This package is the only component that must be implemented to
use the influx-tools in the Enterprise edition.
2018-04-19 18:05:55 -07:00
Stuart Carnie a8f3c8ed5b import-tools: minimal storage API to read shard data efficiently
* this implementation produces a cursor per shard to permit the export
  tool to distinguish field type conflicts
2018-04-19 18:05:55 -07:00
Ben Johnson 8c9d179a94
Add 'influx_inspect deletetsm' 2018-04-19 10:36:08 -06:00
Adam a00e4dc70b
Changed file download retry rate to have exponential wait times (#9706)
* Changed file download retry rate to have exponential wait times

* Fixes from PR review
2018-04-12 15:21:02 -04:00
Ben Johnson fd491b28a6
Check for root user when running buildtsi.
This commit also adds the `max-log-file-size` flag.
2018-04-04 09:58:02 -06:00
Mark Rushakoff b3c2d9290f Log error encountered when reading WAL files
Inspired by #9657.
2018-03-30 09:40:58 -07:00
Ben Johnson eb6215acbf
Fix buildtsi partition key. 2018-03-29 14:27:28 -06:00
Adam ca9f2510b8
check for failure case where backup dir has no manifest files (#9634) 2018-03-27 12:05:29 -04:00