Commit Graph

12475 Commits (b463f97b154d44d2e5a95710a785ba30372099d5)

Author SHA1 Message Date
Edd Robinson b463f97b15 Batch oriented int encoders
This commit adds a tsm1 function for encoding a batch of ints into a
provided buffer.

The following benchmarks compare the performance of the existing
iterator based encoders, and the new batch oriented encoders. They look
at a sequential input slice, a randomly generated input slice and a
duplicate slice:

name                     old time/op    new time/op    delta
EncodeIntegers/10_seq       144ns ± 2%      41ns ± 1%   -71.46%  (p=0.000 n=10+10)
EncodeIntegers/10_ran       304ns ± 7%     140ns ± 2%   -53.99%  (p=0.000 n=10+10)
EncodeIntegers/10_dup       147ns ± 4%      41ns ± 2%   -72.14%  (p=0.000 n=10+9)
EncodeIntegers/100_seq      483ns ± 7%     208ns ± 1%   -56.98%  (p=0.000 n=10+9)
EncodeIntegers/100_ran     1.64µs ± 7%    1.01µs ± 1%   -38.42%  (p=0.000 n=9+9)
EncodeIntegers/100_dup      484ns ±14%     210ns ± 2%   -56.63%  (p=0.000 n=10+10)
EncodeIntegers/1000_seq    3.11µs ± 2%    1.81µs ± 2%   -41.68%  (p=0.000 n=10+10)
EncodeIntegers/1000_ran    16.9µs ±10%    11.0µs ± 2%   -34.58%  (p=0.000 n=10+10)
EncodeIntegers/1000_dup    3.05µs ± 3%    1.81µs ± 2%   -40.71%  (p=0.000 n=10+8)

name                     old alloc/op   new alloc/op   delta
EncodeIntegers/10_seq       32.0B ± 0%      0.0B       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/10_ran       32.0B ± 0%      0.0B       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/10_dup       32.0B ± 0%      0.0B       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/100_seq      32.0B ± 0%      0.0B       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/100_ran       128B ± 0%        0B       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/100_dup      32.0B ± 0%      0.0B       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/1000_seq     32.0B ± 0%      0.0B       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/1000_ran    1.15kB ± 0%    0.00kB       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/1000_dup     32.0B ± 0%      0.0B       -100.00%  (p=0.000 n=10+10)

name                     old allocs/op  new allocs/op  delta
EncodeIntegers/10_seq        1.00 ± 0%      0.00       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/10_ran        1.00 ± 0%      0.00       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/10_dup        1.00 ± 0%      0.00       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/100_seq       1.00 ± 0%      0.00       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/100_ran       1.00 ± 0%      0.00       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/100_dup       1.00 ± 0%      0.00       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/1000_seq      1.00 ± 0%      0.00       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/1000_ran      1.00 ± 0%      0.00       -100.00%  (p=0.000 n=10+10)
EncodeIntegers/1000_dup      1.00 ± 0%      0.00       -100.00%  (p=0.000 n=10+10)
2018-11-01 18:59:19 +00:00
Edd Robinson 8190edbf14 Batch oriented float encoders
This commit adds a tsm1 function for encoding a batch of floats into a
buffer. Further, it replaces the `bitstream` library used in the
existing encoders (and all the current decoders) with inlined bit
expressions within the encoder, significantly reducing the function call
overhead for larger batches.

The following benchmarks compare the performance of the existing
iterator based encoders, and the new batch oriented encoders. They look
at a sequential input slice and a randomly generated input slice.

name                   old time/op    new time/op    delta
EncodeFloats/10_seq      1.14µs ± 3%    0.24µs ± 3%  -78.94%  (p=0.000 n=10+10)
EncodeFloats/10_ran      1.69µs ± 2%    0.21µs ± 3%  -87.43%  (p=0.000 n=10+10)
EncodeFloats/100_seq     7.07µs ± 1%    1.72µs ± 1%  -75.62%  (p=0.000 n=7+9)
EncodeFloats/100_ran     15.8µs ± 4%     1.8µs ± 1%  -88.60%  (p=0.000 n=10+9)
EncodeFloats/1000_seq    50.2µs ± 3%    16.2µs ± 2%  -67.66%  (p=0.000 n=10+10)
EncodeFloats/1000_ran     174µs ± 2%      16µs ± 2%  -90.77%  (p=0.000 n=10+10)

name                   old alloc/op   new alloc/op   delta
EncodeFloats/10_seq       0.00B          0.00B          ~     (all equal)
EncodeFloats/10_ran       0.00B          0.00B          ~     (all equal)
EncodeFloats/100_seq      0.00B          0.00B          ~     (all equal)
EncodeFloats/100_ran      0.00B          0.00B          ~     (all equal)
EncodeFloats/1000_seq     0.00B          0.00B          ~     (all equal)
EncodeFloats/1000_ran     0.00B          0.00B          ~     (all equal)

name                   old allocs/op  new allocs/op  delta
EncodeFloats/10_seq        0.00           0.00          ~     (all equal)
EncodeFloats/10_ran        0.00           0.00          ~     (all equal)
EncodeFloats/100_seq       0.00           0.00          ~     (all equal)
EncodeFloats/100_ran       0.00           0.00          ~     (all equal)
EncodeFloats/1000_seq      0.00           0.00          ~     (all equal)
EncodeFloats/1000_ran      0.00           0.00          ~     (all equal)
2018-11-01 18:59:19 +00:00
Edd Robinson 29114ec5f2 Rename time batch decoders 2018-11-01 18:59:19 +00:00
Edd Robinson 095ed44f48 Rename unsigned batch decoders 2018-11-01 18:59:19 +00:00
Edd Robinson d7a4b814d4 Rename string batch decoders 2018-11-01 18:59:19 +00:00
Edd Robinson db84dfae92 Rename boolean batch decoders 2018-11-01 18:59:19 +00:00
Edd Robinson bcb7b5d44a Rename integer batch decoders 2018-11-01 18:59:19 +00:00
Edd Robinson 2e00954703 Rename float batch decoders 2018-11-01 18:59:19 +00:00
Adam 8a1fecd727
to() for influxdb (#1194)
* update to latest flux master incl. values interface refactor, type inference, planner.  

* add measurementColumn parameter, update function params spec
2018-11-01 14:44:56 -04:00
Mark Rushakoff d9e10ff652 test(task): deflake scheduler test 2018-11-01 10:37:14 -07:00
Jeff Wendling d2b23bf518
Merge pull request #1204 from influxdata/jmw-engine-cleanup
Remove HLL, digests and backup/restore.
2018-11-01 10:03:50 -06:00
kelwang 7709537722
Merge pull request #1254 from influxdata/fix/logger_panic
fix the logger, and get resturns nothing
2018-11-01 11:23:27 -04:00
Chris Goller 680595d984
Merge pull request #1251 from zhulongcheng/fix-header
fix(http): check Accept header for mime-type
2018-11-01 09:25:14 -05:00
zhulongcheng 03634fd8a9 check Accept header for mime-type 2018-11-01 21:10:17 +08:00
Mark Rushakoff 39e115cebe fix(task): fix closure mistake when reclaiming tasks
Also improve some the coordinator tests a little bit and improve the
executor logging while we're here.
2018-10-31 19:00:02 -07:00
Kelvin Wang 0b41822434 fix the logger, and get resturns nothing 2018-10-31 19:50:04 -04:00
kelwang 47b6604b35
Merge pull request #1257 from influxdata/fix/telegraf_file_name_no_space
(fix/http) replace space with _
2018-10-31 19:34:08 -04:00
Nathaniel Cook 2d2362b695 Merged pull request #1256 from influxdata/nc-type-inference
chore: Update flux dependency for the type-infernce changes
2018-10-31 17:13:34 -06:00
Nathaniel Cook 2a1d76eb2d chore: Update flux dependency for the type-inference changes 2018-10-31 17:11:11 -06:00
Mark Rushakoff 7ae106d14a chore: add GoString method to platform.ID
While debugging, I was printing out some structs with %#v and found that
Go would format the structs' IDs as uint64s instead of with the String
method. That behavior needlessly made my debugging more difficult.

Before, %#v would format a type with an ID like:

    {ID:0x2def021097c6000}

After:

    {ID:"02def021097c6000"}

They look similar, but a search for the string ID would not match the
uint64 default formatting.
2018-10-31 14:41:47 -07:00
Jeff Wendling 6830329ef4 review feedback 2018-10-31 15:41:39 -06:00
Jeff Wendling a7657ac409 tsdb: remove hll sketches
This keeps file compatability by just writing out zeros for the
sizes and offsets. Perhaps it's ok to just nuke everything and
remove the data.

It also keeps the hll package because it seems generally useful
even if it's not currently being used.
2018-10-31 15:41:39 -06:00
Jeff Wendling 381d449b82 tsm1: remove digests and backup/restore 2018-10-31 15:41:07 -06:00
Brandon Farmer 184e8e8923
Merge pull request #1259 from influxdata/tasks/fix-task-nesting
Fix api calls for tasks, tasks are now nested in response
2018-10-31 14:39:38 -07:00
Brandon Farmer 5eaf281489 Fix api calls for tasks, tasks are now nested in response 2018-10-31 13:32:04 -07:00
Stuart Carnie 952c1440b9
Merge pull request #1249 from influxdata/sgc-cursor-cleanup
Ensure storage resources are cleaned up
2018-10-31 11:45:58 -07:00
Kelvin Wang d218892be0 (fix/http) replace space with _ 2018-10-31 14:45:28 -04:00
Stuart Carnie 869068de69
fix(reads): Ensure storage resources are cleaned
Move variable declarations outside the for loops and use nil
to test for resource ownership. defer function tests for nil and
will close resource.
2018-10-31 11:04:47 -07:00
Chris Goller 434c2bd052
Merge pull request #1250 from zhulongcheng/fix-decode
fix(http): use json decoder to decode request body
2018-10-31 11:25:30 -05:00
zhulongcheng 6fa7d8b143 use json decoder to decode request body 2018-10-31 23:32:51 +08:00
Michael Desa b99b3f2563
Merge pull request #1232 from influxdata/feat/oplog
WIP: Add keyvalue log - basis for auditlog and oplog
2018-10-31 10:04:05 -04:00
Michael Desa e27a1371b0 feat(platform): add keyvalue log interface with boltdb implementation
test(platform): add conformance test for key value log

review(platform): add example keyvalue log usage

review: make changes suggested in pr review
2018-10-31 09:41:55 -04:00
Mark Rushakoff a7e6a6634e test(task): deflake TaskService shared test
What happened here is kind of a long story.

The TaskService tests exercise different parts of the TaskService
concurrently, in hopes of exercising code that may be racy. This worked
fine so long as we were able to use arbitrary user and organization IDs
picked during test.

Then we added tests for the http-client-backed TaskService. The instance
of http.TaskService takes a single token, so the TaskService tests were
updated to use an optional override to get the user and org ID from the
TaskService implementation.

That meant our parallel tests were using one user and org ID in some
cases. One particular test to exercise concurrency would create tasks
and then retrieve them and delete one. Because this test was filtering
by user and org, sometimes it would delete a task created in a different
test.

The fix was to maintain a whitelist of tasks created in that particular
test, so that it wouldn't delete tasks created in a different test.
2018-10-30 18:52:21 -07:00
Mark Rushakoff c3e3b44a75 feat(task): include task scheduler metrics on /metrics endpoint
Closes #1223.
2018-10-30 18:52:02 -07:00
Christopher M. Wolff 4365ad3d60
Update to latest Flux (#1245) 2018-10-30 17:54:54 -07:00
Jade McGough 79bb8af889
fix(http): unswallow json decoder error (#1248)
* fix(http): unswallow json decoder error

* make fmt
2018-10-30 17:31:32 -07:00
Jorge Landivar 5a8dd6bfef
Merge pull request #1242 from influxdata/usesnowflake
Use snowflake for bolt task ids
2018-10-30 18:24:41 -05:00
docmerlin (j. Emrys Landivar) 64883a5dad Use snowflake for bolt task ids 2018-10-30 18:20:59 -05:00
kelwang c6a5cf60bb
Merge pull request #1240 from influxdata/fix/telegraf_links
fix telegraf sources
2018-10-30 16:50:58 -04:00
Kelvin Wang 5e9c0a9e76 fix telegraf sources 2018-10-30 16:48:14 -04:00
kelwang 3b1660d7d0
Merge pull request #1229 from influxdata/feat/telegraf_http
add http for telegraf
2018-10-30 15:33:51 -04:00
jlapacik 78b7ee3bf9
update flux repl (#1231) 2018-10-30 11:24:48 -07:00
Kelvin Wang 74ef984e53 add http for telegraf 2018-10-30 14:00:10 -04:00
Mark Rushakoff cd80e41220 feat(task): add ability to retry runs
This also adjusts the TaskService interface's RetryRun method to accept
a task ID rather than an org ID. Internally, we still look up runs by
organization, and maybe that will change later, but this is a more
natural way for clients to look it up.
2018-10-30 09:20:40 -07:00
Chris Goller 4295a99ab2
Merge pull request #1228 from influxdata/fix/fmt
chore(fmt): update formating with make fmt
2018-10-30 09:22:20 -05:00
Chris Goller d8548d41e1 chore(fmt): update formating with make fmt 2018-10-30 07:40:28 -05:00
Chris Goller c978ead25b
Merge pull request #1227 from influxdata/feature/clean-influxd-main
Clean up influxdb main
2018-10-30 07:37:29 -05:00
Edd Robinson 46a7b8155a
Merge pull request #1170 from zhulongcheng/rm-index
refactor(tsdb): remove tsdb.Index and tsdb.IndexSet
2018-10-30 11:10:54 +00:00
Chris Goller 7756f8dc6a feat(cmd/influxd): add log levels 2018-10-30 02:27:51 -05:00
Chris Goller eb5f4fbe8a refactor(cmd/influxd): use kit and close all services 2018-10-30 01:57:48 -05:00