Commit Graph

591 Commits (1f75ca2df1a1701bbd398392cf7b282ac7cf549f)

Author SHA1 Message Date
Ben Johnson 767307eed6 convert meta shard owners to objects
This commit converts meta.ShardInfo.OwnerIDs from a slice of ids
to a slice of objects. This is to support adding statuses for a
shard for a given node. For example, a node may have a shard
assigned to it but it is currently copying the shard and is not
ready to serve data for it.

The old `OwnerIDs` is marked as deprecated, however, the code
still supports loading from older protobuf-encoded data.
2015-08-31 16:33:13 -06:00
Jason Wilder 027b6e36e7 Fix inconsistent results from show measurements
Running show measurements in a partially replicated cluster produces inconsistent
results due to the connection pooling.  When running remote meta-data queries,
the cluster service ends ups keeping map shard request open but still checks the connection
back into the pool. This causes inconsistent results because data from the last request
interferes with the new request.

This removes the connection pool which fixes the issue.  It also has the side effect of fixing
a nodes pool connections that have gone bad when a node restarts.  For example, in a 3 node cluster
that has been responding to queries correctly, restarting 1 node will cause all the other to fail
to query that node indefinitely.  This is now fixed as well.
2015-08-31 14:31:00 -06:00
Jason Wilder c8bf095342 Fix panic with show measurements with partially replicated shards
Some nodes may receive requests for shards that they are assigned but
do not have the shards locally yet.  Just return no results in this case
instead of panicing.
2015-08-31 14:10:43 -06:00
Jason Wilder f72fd247b5 Fix panic when querying against non-fully replicated shards
The TSDBStore was returning a nil mapper if the shard did not exist.  The caller always
assumed the mapper would not be nil causing a panic.  Instead, have the mapper skip the mapping
phase if it's shard reference is nil.  This fixes queries against data-only nodes and against
shards that are not fully replicated in the cluster.

Fixes #3574
2015-08-31 10:03:07 -06:00
Jason Wilder af2531b373 Use read lock to check current memory size of partition
A write lock was being taken to read the memory size to determine if writes
should be paused.  What happens is that writers get blocked indefintely when
trying to acquire a write lock which makes writes pause (or stop) for long periods
of time.
2015-08-28 15:11:30 -06:00
Jason Wilder 6ba17eca36 Reduce lock contention on Log.WritePoints
The log was deferring the release of the read lock on the WAL.  This had
the affect that a read-lock was held until after the partition finished writing
(which maintains it's own locks).  The read lock is only needed around the call
to pointsToPartions so it can get a consistent copy of the points to write.  After
that calls returns, a lock is not needed so free it immediatedly.
2015-08-28 15:11:30 -06:00
Jason Wilder f5f8f04116 Fix panic in addToCache
addToCache is called in a goroutine and can panic if the server is closed while opening.  If
part of the open func errors, it returns an error and immediately calls close.  close sets
p.cache to nil which causes the goroutine trying to initialized the cache to panic as well.  The
goroutine should run under a write lock to avoid this race/panic.
2015-08-28 13:01:17 -06:00
Jason Wilder eb4a8d4f4a Fix panic when logging error in WAL
If LoadMetadataIndex() tries to log an error, it causes a panic because the
logger is not set until Open() is called, which is after LoadMetaDataIndex() returns.
Instead, just set the logger up when the WAL is created.
2015-08-28 12:59:38 -06:00
Philip O'Toole cf58c38995 go fmt fixes 2015-08-27 18:20:41 -07:00
Jason Wilder 6493cfdc45 Merge pull request #3870 from influxdb/jw-3869
Remove unused Database index names and sorting
2015-08-27 14:00:30 -06:00
Jason Wilder a4c1d9a9a7 Remove unused Database index names and sorting
Writes could timeout and when adding new measurement names to the
index if the sort took a long time.  The names slice was never
actually used (except a test) so keeping it in index wastes memory
and sort it wastes CPU and increases lock contention.  The sorting
was happening while the shard held a write-lock.

Fixes #3869
2015-08-27 11:57:20 -06:00
Daniel Morsing ca7a806e93 Only seek the cursor if it would yield a value of interest
If we've seeked a cursor, then we can be sure that there will be no
data between it and the point that was seeked to. Take advantage of
this fact to only seek when it would yield us a value that would be
different from the last.

In addition, only init the pointsheap when doing a raw query. For
aggregate queries, it is reinitialized on every time bucket, so no
need to seek through all the cursors

For a synthetic database where there was only entries for a tiny
slice of time, it cut queries from 112 seconds to 30 seconds doing
`select mean(value) from cpu where time > now - 2h group by time(1h)`
2015-08-27 10:57:18 -06:00
Ben Johnson 3ce001929c Use 4KB default block size for bz1
This commit changes the default block size from 64KB to 4KB for
bz1. This was lowered because small blocks were being uncompressed,
merged, recompressed, and inserted for a large portion of updates.
This became slower and slower over time until it reached the 64KB
threshold. We moved to the 4KB threshold in order to lower the
impact of this recompression.
2015-08-26 11:05:01 -06:00
dgnorton 2cf6233cbc Merge pull request #3808 from influxdb/dmq-show-measurements2
convert SHOW MEASUREMENTS to a distributed query
2015-08-26 11:43:38 -04:00
Daniel Morsing 3d92f3ab0a Merge pull request #3846 from influxdb/reuseheap
reuse pointsheapItem
2015-08-25 17:27:49 -06:00
Daniel Morsing 391d8cd8d7 reuse pointsheapItem
Since we already got a pointsHeapItem, let's just reuse it instead
of allocating a new one. This cuts allocated memory of a 1 million
points aggregate query from 4881.97MB to 4139.86MB
2015-08-25 17:07:34 -06:00
Paul Dix d903cc351e Merge pull request #3845 from influxdb/pd-fix-wal-meta-panic
Fix metafile so it doesn't get trampled by other goroutines.
2015-08-25 18:35:03 -04:00
Paul Dix 0d744dafed Fix metafile so it doesn't get trampled by other goroutines.
Fixes #3832 and fixes #3833
2015-08-25 18:23:24 -04:00
Daniel Morsing 71a83b7f9d Remove unused buffer allocation
The buffer allocation in bz1 was unused and I'm fairly certain that it
was harmful to performance if used. For queries that run through a bz1
block, needing to hold on to a 64kb block is expensive. Better to churn
on the allocator and have the blocks be released when they are unused
than to have 64kb hanging around for each series regardless of size.

Thanks to @jwilder for brainstorming this issue with me.
2015-08-25 14:51:17 -06:00
Paul Dix a4735624f8 Merge pull request #3829 from influxdb/pd-fix-missing-data-after-flush
Fix missing data in aggregates with bz1
2015-08-25 16:27:03 -04:00
David Norton d8be9b4222 test SHOW MEASUREMENTS when no rows returned 2015-08-25 16:18:28 -04:00
Paul Dix 8c6af91e93 Fix bug with bz1 where some data would get hidden.
Seeking to the middle of a compressed block wasn't working properly. Fixes #3781
2015-08-25 16:16:59 -04:00
Daniel Morsing 40dab87ac9 Merge pull request #3817 from influxdb/walmem
Walmem
2015-08-25 13:29:42 -06:00
David Norton 7b19a93459 add test for distributed SHOW MEASUREMENTS 2015-08-25 14:33:49 -04:00
Cory LaNou 6ba24e804a do not support uint64 2015-08-25 10:47:25 -05:00
David Norton 6f0ba18904 fix TestDropMeasurementStatement 2015-08-25 10:01:38 -04:00
Cory LaNou 7916cade08 support all number types when decoding a point 2015-08-25 08:49:49 -05:00
Daniel Morsing 5455851ac7 move allocation outside struct + gofmt 2015-08-24 15:28:30 -06:00
Daniel Morsing 35b6c7867d reuse memory buffers for marshaling wal entries
By using preallocated buffers for marshaling WAL entries, we can
reduce the amount of memory we allocate.

On a run of `influx_stress -series 10000 -points 1000` this cuts
total allocations from 18684.15MB to 15200.73MB
2015-08-24 14:49:25 -06:00
David Norton 636b4d1603 don't send empty row from ShowMeasurementsExecutor 2015-08-24 13:16:48 -04:00
Daniel Morsing b7bbe8b5e0 remove unused backoffcount field 2015-08-24 10:25:38 -06:00
David Norton 88f556af72 convert SHOW MEASUREMENTS to a distributed query 2015-08-23 23:09:51 -04:00
Paul Dix 981d7175fb Improve WAL flush log output. 2015-08-23 11:28:06 -04:00
David Norton 5d26cfa4d7 return interface{} from nextChunk* functions 2015-08-22 10:59:29 -04:00
David Norton c8f88f9a61 refactor remote mapping 2015-08-22 10:16:41 -04:00
Todd Persen a9e3b9d176 Merge pull request #3797 from influxdb/pd-fix-wal-dirty-sort
Ensure WAL cache gets sorted when needed.
2015-08-21 22:05:28 +00:00
Paul Dix 15cf803b57 Ensure WAL cache gets sorted when needed.
Fixes #3792
2015-08-21 17:48:42 -04:00
Paul Dix a52a4be94c Merge pull request #3793 from influxdb/pd-fix-unsafe-series-shard-access
Fix map concurrent race with adding a shard to a series in the index.
2015-08-21 16:37:04 -04:00
Paul Dix 1a3074ed54 Fix map concurrent race with adding a shard to a series in the index. 2015-08-21 16:24:55 -04:00
Paul Dix 0a6c8b1968 Merge pull request #3788 from influxdb/pd-add-drop-database-to-wal
Update store to properly manage WAL create/delete.
2015-08-21 15:29:02 -04:00
Jason Wilder 589f840ef9 Fix parsing NaN values without timestamps
Fixes #3539 partially.  NaN cannot be queried though and needs to be handled
by the query engine differently.
2015-08-21 12:14:17 -06:00
Jason Wilder 91313f7206 Fix regression where measurement names with equals could not be parsed 2015-08-21 12:14:17 -06:00
Daniel Morsing 27162dd904 only convert key to string once. 2015-08-21 11:01:34 -07:00
Paul Dix 73f3dc1e14 Update store to properly manage WAL create/delete.
* Update the store to remove the WAL directories associated with a shard or database when they are deleted.
* Fix the Store so that it creates separate WAL directories for databases and retention policies.
2015-08-21 11:22:04 -04:00
Jason Wilder 1f846d5edb Optimize Point.unescape
This func show up in profiling.  It's called frequently from multiple places and
can be made more efficient.  The previous implementation looped over the input
slice 4 times updating an returning a new slice each time.  The changes it to loop
once and create one result slice.

With influx_stress

Before:

  Wrote 10000000 points at average rate of 241750
  Average response time:  187.78968ms

After:

  Wrote 10000000 points at average rate of 254618
  Average response time:  172.235028ms
2015-08-20 17:05:18 -06:00
Jason Wilder afe1f598ca Cache name and fields if requested
Through profiling of writes, point.Fields() and point.Name() were called
repeatedly in PointsWriter and the Shard.  These calls are somewhat expensive
when writing large batches so we can cache them to avoid wasting CPU cycles.

Using influx_stress with default settings

Before:
  Wrote 10000000 points at average rate of 202570
  Average response time:  235.450355ms

After:
  Wrote 10000000 points at average rate of 246120
  Average response time:  182.881008ms
2015-08-20 15:48:38 -06:00
Paul Dix 2882ef88dc Merge pull request #3766 from influxdb/pd-close-wal-before-bolt
Make bz1 close the WAL before closing bolt so it can flush
2015-08-20 15:25:51 -04:00
Paul Dix 51c565e461 Ensure partition only closes current segment if its there 2015-08-20 14:37:02 -04:00
Ben Johnson 9e336bacf9 fix wal close deadlock 2015-08-20 11:56:50 -06:00
Paul Dix 9567b2c8a6 Fix logic with closing partitions 2015-08-20 13:53:59 -04:00
Ben Johnson 8f12cef883 Merge pull request #3735 from benbjohnson/append-threshold
Append to small bz1 blocks
2015-08-20 11:47:34 -06:00
Paul Dix 4e7631a135 Merge pull request #3765 from influxdb/pd-fix-wal-io-reads
Fix reads of metadata file in WAL
2015-08-20 13:08:29 -04:00
Ben Johnson e57d60210a Append to small bz1 blocks
This commit changes the bz1 append to check for a small
ending block first. If the block is below the threshold
for block size then it is rewritten with the new data
points instead of having a new block written.
2015-08-20 10:52:52 -06:00
Paul Dix e817036952 Make bz1 close the WAL before closing bolt so it can flush, fix locking on write. 2015-08-20 12:51:47 -04:00
Ben Johnson 6c4297ece5 Add bz1 size benchmarks
This commit add benchmarks to show the size difference between
different block sizes.
2015-08-20 10:22:29 -06:00
Paul Dix 72da8d9741 Merge pull request #3750 from influxdb/pd-fix-wal-logging
Fix WAL logging enable.
2015-08-20 12:05:01 -04:00
Paul Dix 5dd97d39ca Merge pull request #3749 from influxdb/pd-fix-query-engine-no-mutex
Fix query engine not goroutine safe issue.
2015-08-20 11:32:56 -04:00
Paul Dix 370f008220 Fix reads of metadata file in WAL 2015-08-20 10:52:29 -04:00
Paul Dix 1f21d50005 Fix logging in segments and style on log messages 2015-08-20 10:43:25 -04:00
Paul Dix 13d606eaf6 Fix bug querying data from WAL while compacting.
If a flush is happening and you bring up a cursor for a series, if that series didn't have any data in the cache (after the flush started) then it would return no data. What it should have done instead is return the data that is in the flush cache, which is held in separate area of memory until it is committed to the index.
2015-08-20 09:34:02 -04:00
Paul Dix 564625eef7 Fix WAL logging enable. 2015-08-19 18:45:12 -04:00
Paul Dix 1c24cbd8a7 Fix query engine not goroutine safe issue. 2015-08-19 18:43:50 -04:00
Paul Dix 4c1f7110f8 Make the WAL cursor create a copy of the cache 2015-08-19 17:25:44 -04:00
Jason Wilder 6ca7970f01 Fix inserting string values with backslashes
Fixes #3682
2015-08-19 09:33:16 -06:00
Jason Wilder fc3bce872a Ensure tags use the correct escape codes.
Similar to measurement names, some characters were being escaped
incorrectly.
2015-08-19 09:32:53 -06:00
Jason Wilder 329a0cdb74 Fix panic: runtime error: index out of range
If the measurement started with a quote, a panic would happen.  This
is a reegression due to cb7f0b8.

This also uncovered that measurement names were being escaped incorrectly.
The escape codes for tag and fields also includes `=` and '"` which should
not be escaped for measurement names.

Fixes #3681
2015-08-19 09:32:53 -06:00
Jason Wilder 4eb48b5a18 Fix measurement name being double-escaped during replication
Fixes #3708 #3704
2015-08-19 09:31:26 -06:00
Paul Dix c31b88de60 Merge pull request #3569 from influxdb/pd-wal
Add initial WAL implementation and tests
2015-08-18 20:45:32 -04:00
Paul Dix 028d0a6d7d Fix compaction logging, make default idle flush interval 5 minutes. 2015-08-18 20:41:03 -04:00
Paul Dix e5704e4ea1 Merge pull request #3567 from influxdb/update-line-readme
Update line protocol README for new integer spec
2015-08-18 20:36:03 -04:00
Ben Johnson 0f2d66fb70 add WAL recovery 2015-08-18 15:08:01 -06:00
Paul Dix 9df3b7d828 Add WAL configuration options 2015-08-18 16:59:54 -04:00
Philip O'Toole abcb9ef35e Update test to also test Mapper fields 2015-08-18 13:41:35 -07:00
Paul Dix 30bcd3e0e4 Combine all WAL partition cache maps into one 2015-08-18 10:18:06 -04:00
Paul Dix a3cdf0b97c Ensure that metadata is always loaded out of the index in sorted order 2015-08-18 08:27:09 -04:00
Paul Dix 41cf76f722 Fix vet 2015-08-18 08:15:02 -04:00
Paul Dix a509df0484 Compress metadata, add Delete to WAL.
* All metadata for each shard is now stored in a single key with compressed value
* Creation of new metadata no longer requires a syncrhnous write to Bolt. It is passed to the WAL and written to Bolt periodically outside the write path
* Added DeleteSeries to WAL and updated bz1 to remove series there when DeleteSeries or DropMeasurement are called
2015-08-18 08:10:51 -04:00
Philip O'Toole deabf8d2a8 Minor GoDoc fix 2015-08-17 11:26:12 -07:00
Paul Dix 3348dab4e0 Fix bug with new shards not getting series data persisted. 2015-08-16 15:45:09 -04:00
Daniel Morsing 1548f6289f Merge pull request #3671 from influxdb/enginecache
protect engine points cache from concurrent modifications.
2015-08-16 11:12:51 -07:00
Paul Dix abc71aee53 Add failing test for metadata not getting persisted in new shards. 2015-08-16 12:46:50 -04:00
Paul Dix 9a53406e55 remove extraneous debug stuff 2015-08-16 12:46:50 -04:00
Paul Dix 6776014047 Fix bug in stress script, remove extraneous printlns 2015-08-16 12:46:50 -04:00
Paul Dix a77a91933e WIP: fix bug with how bz writes index. fix bug with wal not having index set. 2015-08-16 12:46:50 -04:00
Paul Dix b583b896ce Integrate WAL and BZ1 and make BZ1 the default engine. 2015-08-16 12:46:50 -04:00
Paul Dix 301b014f3f Make WAL flush after inactive for writes for a given interval. 2015-08-16 12:46:50 -04:00
Paul Dix d4b04510ab Make flush check configurable to avoid race in tests 2015-08-16 12:46:49 -04:00
Paul Dix 006403ce1d Add WAL back pressure when over memory threshold 2015-08-16 12:46:49 -04:00
Paul Dix 1bffb70a61 Refactoring and cleanup based on PR comments 2015-08-16 12:46:49 -04:00
Paul Dix eebdd5b7db Add initial WAL implementation and tests 2015-08-16 12:46:49 -04:00
Philip O'Toole 7e72a1a6b9 Precompute cursor keys
CPU profiling shows that computing the tagset-based key of each point is significant CPU cost. These keys actually don't change per cursor, so precompute once at mapper-open time, and then use those values as points are drained from the cursor.

Before this change the cursor tag was getting computed on every point, which involved marshalling tags.
2015-08-14 20:02:21 -07:00
Philip O'Toole 21a6bd267b Merge pull request #3673 from influxdb/dont_list
No need to list, just take map's size
2015-08-14 16:09:14 -07:00
Philip O'Toole 2a77726f94 No need to list, just take map's size
A particular test query goes from 2 minutes 40 seconds to 1 minute 25
seconds.
2015-08-14 16:00:12 -07:00
Jason Wilder 70aa6961c5 Remove unused in-memory index hash
The series map on Measurement was updated and deleted from but never
actually used.  Series keys can be very bia since they are the the
string representation of the measurement plus sorted tags.

Locally I see 20%-30% reduction in memory usage with 1M series.
2015-08-14 16:37:21 -06:00
Daniel Morsing 432fa31060 protect engine points cache from concurrent modifications.
Creating a cursor would access the engine cache concurrently with
writes, causing data races. Fix by adding a mutex around cache
accesses.
2015-08-14 14:02:03 -07:00
Cory LaNou 4e04c069f9 error out if only tags are in the select clause 2015-08-14 15:24:37 -05:00
Cory LaNou e5bb5282da add more non GROUP BY * test scenarios 2015-08-14 15:05:27 -05:00
Cory LaNou 1f7f977c5e minor refactorings based on pr feedback 2015-08-14 15:05:26 -05:00
Cory LaNou 7fdb682966 first pass at raw queries with tags 2015-08-14 15:05:26 -05:00
Cory LaNou dc83c57d7e more wip 2015-08-14 15:05:26 -05:00
Cory LaNou 8ea3c47747 wip 2015-08-14 15:05:26 -05:00
Ben Johnson 45ea87ce3f Fix nil FieldCodec panic
This commit changes FieldCodec to always be non-nil. Normally it should
always be non-nil, however, if metadata is not persisted correctly or
consistently then it could be missing. A nil FieldCodec causes queries
to panic.

Fixes #3535
2015-08-14 13:12:40 -06:00
Philip O'Toole 7b4879f0ce Fully remove a series when dropped
Fix issue #3226.
2015-08-14 10:50:35 -07:00
Jason Wilder 668181d275 Make log statements more consistent
* Capitalize first letter of message
* Log all services staring consistently
* Remove some extraneous log statements in meta.Store
* Log data dirs for meta, data and hinted handoff
2015-08-13 10:01:42 -06:00
Ben Johnson 2547049c6f Merge pull request #3626 from benbjohnson/fix-3571
Fix duplicate points in b1/cursor
2015-08-11 16:15:35 -06:00
Ben Johnson 10c1ae782a fix duplicate points in b1/cursor
This commit fixes the b1 cursor so that reads from either the cache
or bolt buffer will check against the previously read key to ensure
that two of the same keys are not returned.

Fixes #3571.
2015-08-11 13:43:44 -06:00
Philip O'Toole 480998974d Align batcher stats for i386
Fixes issue #3213.
2015-08-10 16:37:16 -07:00
Jason Wilder 68b82f3030 Fix regex queries regression
ValidateGroupBy was returning an error if a tag does not exist
but it appears that function was supposed to be validating that
a field name was not used as a group by field.

Fixes #3326
2015-08-10 15:02:29 -06:00
Jason Wilder bc81a4283f Fix panic when parsing value in scientific notation with trailing i
Fixes #3583
2015-08-10 13:46:53 -06:00
Jason Wilder 03dfec31db Add integer derivative tests
There was one for aggregates that was misnamed.  Added one for
raw derviative.
2015-08-10 12:58:36 -06:00
Ben Johnson 25293052b6 add b1 test harness 2015-08-10 12:46:57 -06:00
Jason Wilder d4ce2f9048 Fix panic when running derivative on non-numeric values
Fixes #3401
2015-08-10 12:45:34 -06:00
Daniel Morsing 41733f6817 Merge pull request #3521 from DanielMorsing/sharderrcheck
check error when opening shard DBs.
2015-08-10 11:28:20 -07:00
Daniel Morsing 65ea56ae2c check error when opening shard DBs.
This should catch the case where someone messed up the permisssions
for a database that they moved from one machine to another.
2015-08-10 09:31:22 -07:00
Ben Johnson 1ebcb10b03 Add tsdb.MultiCursor
This commit adds a cursor that wraps multiple `tsdb.Cursor` objects
and streams them out as one cursor. The multi-cursor automatically
dedupes keys by using the first cursor specified in the argument
list.
2015-08-07 17:02:29 -06:00
Paul Dix bd512762db Merge pull request #3586 from benbjohnson/bz1-fix
Ffix bz1 quickcheck bugs
2015-08-06 17:28:58 -04:00
Ben Johnson 394e9635cf fix bz1 quickcheck bugs
This commit fixes issues found from using a more complex `testing/quick`
implementation of the `WriteIndex()` test. The newer test inserts
multiple sets of random data that's confined to a smaller random space
so there's more chance of overlapping data.

The fixes were primarily around inserting old data or inserting the same
timestamp multiple times for a single write. The block splitting was not
working correctly before and the sorting and deduping was not handled
correctly.
2015-08-06 15:12:48 -06:00
Cory LaNou b19a8f3968 Fix alias, maintain column sort order 2015-08-06 14:01:03 -05:00
Michael Desa adaef74a44 Add invaled interger example 2015-08-06 10:43:30 -07:00
Michael Desa c0e9fdc3e0 Change float description 2015-08-06 10:43:06 -07:00
Jason Wilder cb7f0b8228 Fix parsing string fields with newlines
Newlines in a string field would cause the parser to return
the line prematurely causing "unbalanced quotes" errors.  This
makes the line scanning aware of quote fields so that the whole
line is returned.

Fixes #3545
2015-08-06 09:28:01 -06:00
Jason Wilder 5aacb3485b Merge pull request #3570 from influxdb/jw-fuzz
Fix panics found via go-fuzz
2015-08-05 20:03:44 -06:00
Ben Johnson 4436036acd Merge pull request #3544 from benbjohnson/bz1
BZ1 Pt. II
2015-08-05 16:56:03 -06:00
Jason Wilder 2d604ac537 Fix panics found via go-fuzz
Fixes #3288
2015-08-05 16:41:59 -06:00
Michael Desa 25b2f7cbb1 Update line protocol README for new integer spec
As noted in https://github.com/influxdb/influxdb/pull/3526 writing
integer values now requires a tailing i. This commit updates the README
appropriately
2015-08-05 14:01:54 -07:00
Jason Wilder 56d962261e Fix panic parsing measurement with large number of tags
Defaults to handling measurements with up to 100 tags and will
now grow the slice if there are more instead of panicing.

Fixes #3511
2015-08-05 12:45:55 -06:00
Ben Johnson f7111e037b add bz1 testing/quick coverage 2015-08-04 18:36:14 -06:00
David Norton d661bf1a06 fix #3414: shard mappers perform query re-writing 2015-08-04 09:49:50 -04:00
dgnorton d810682019 Merge pull request #3520 from influxdb/mas-optimize-key
Query performance optimization
2015-08-03 17:32:54 -04:00
Ben Johnson 4077148245 refactor bz1 to integrate with WAL 2015-08-03 14:32:17 -06:00
Ben Johnson 6be31e7f15 2015-08-03 14:32:17 -06:00
Ben Johnson de09c02874 add benchmarks 2015-08-03 14:32:17 -06:00
Ben Johnson 1ada790de7 add bz1 storage engine 2015-08-03 14:32:17 -06:00
David Norton b003522a18 use heap for tagSetCursor lookahead 2015-07-31 13:28:46 -04:00
Cory LaNou b154e64d42 add point conversion test for 1.0i 2015-07-30 20:55:08 -05:00
Cory LaNou 0b5eb09181 integers in line protocol now have to end with `i` 2015-07-30 20:51:18 -05:00
David Norton 0b248e225c Fix aggregate queries and time precision on where clauses. 2015-07-29 15:54:55 -04:00
Ben Johnson a9cbf6c857 Rename v1 engine to b1
This commit changes the 'v1' engine to 'b1' to represent "bolt v1".
2015-07-29 08:55:07 -06:00
Philip O'Toole 9949de3f44 Fix typo in comment 2015-07-22 13:59:43 -07:00
Jason Wilder 37c971bb82 Fix querying measurements with spaces
Fixes #3319
2015-07-22 14:49:54 -06:00
Ben Johnson 2a9f1d0704 remove Engine.DB 2015-07-22 11:08:10 -06:00
Ben Johnson cc0607a5cf remove Engine.Flush() 2015-07-22 11:08:10 -06:00
Ben Johnson a7f50ae03c refactor storage to engine 2015-07-22 11:08:10 -06:00
Ben Johnson 4dc15a833e rename engine.go to executor.go 2015-07-22 11:07:06 -06:00
Ben Johnson de1f9a3736 refactor tsdb tests into test package 2015-07-22 11:07:06 -06:00
Philip O'Toole 42b4a0b8bf string return is totally unused 2015-07-22 02:55:13 -07:00
Philip O'Toole 45dcf9960c Optimize the very inner loop of cursor iteration
This change moves tracking of next timestamp and values to simple
slices, as performance measurement showed that Peek() on TagSet cursors
was a huge performance drain. There is much more that can be done here,
but with this in place query performance has been restored to 0.9.1
levels.

This change also uses -1 to indicate that no value is available for a
given timestamp.
2015-07-22 02:55:09 -07:00
Jason Wilder 8c715f72ab Merge pull request #3415 from influxdb/jw-3411
Fix parse stuck in loop causing 500 timeout
2015-07-21 14:14:36 -06:00
Philip O'Toole 122d81bd43 Cosmetic change to mapper unit tests
This change makes it clear that the key "value" in the Mapper output is
a special value, and not related ot the field name of the input data.
2015-07-21 11:05:25 -07:00
Jason Wilder f9287ad47d Fix parse stuck in loop causing 500 timeout
Fixes #3411
2015-07-21 11:20:14 -06:00
Jason Wilder 7ee7dfd6e1 Merge pull request #3405 from jhorwit2/jah/3379
Fixes #3379 - added check for no fields in point
2015-07-21 11:18:58 -06:00
Philip O'Toole bfc55c16aa Small refactor of store-creation test code 2015-07-21 09:44:59 -07:00
Josh Horwitz e19dea8703 Fixes #3379 - added check for no fields in point 2015-07-21 09:01:51 -04:00
Philip O'Toole 7e0fa132c8 Raw query with no valid SELECT fields is not data 2015-07-20 15:59:52 -07:00
Philip O'Toole aeb51ec2f5 Remove existence restrictions on field and tags 2015-07-20 15:44:07 -07:00
Philip O'Toole 9b19e1e664 Correctly build union of fields and tags
Previously the fields and tags were getting overwritten with every loop
of Sources.
2015-07-20 14:44:40 -07:00
Philip O'Toole df3caefcf9 stringSet now takes varadic slice to add 2015-07-20 14:40:39 -07:00
dgnorton 2aa2fe90dc Merge pull request #3399 from influxdb/mapper-use-statement
mapper takes Statement instead of *SelectStatement
2015-07-20 15:57:56 -04:00
David Norton 7e20c53025 mapper takes Statement instead of *SelectStatement 2015-07-20 15:48:38 -04:00
Philip O'Toole 425a65fca1 RemoteShard mapping now performed over TCP
With this change remote mapping no longer uses HTTP, as the HTTP ports
exposed by nodes on the cluster are not known cluster wide. The TCP
ports exposed by the cluster service are, so this change uses that
functionality. Each RemoteMapper has its own dedicated connection pool
for each node, and remote mapping TCP connections are in no way coupled
with query TCP connections.
2015-07-20 10:44:38 -07:00
Philip O'Toole 4569f3d2ea Factor out aggregate-only code in LocalMapper Open 2015-07-18 22:37:41 -07:00
Philip O'Toole 6b5b652f39 Correct explanatory comments for LocalMapper 2015-07-18 22:28:32 -07:00
Philip O'Toole 3695ebcd4e Move to a single LocalMapper type 2015-07-18 16:10:12 -07:00
Philip O'Toole a2e3f0af3c Remove unused field attribute 2015-07-18 13:19:36 -07:00
Philip O'Toole abc05b0fa8 Remove unused decoders attribute 2015-07-18 13:14:58 -07:00
Philip O'Toole 5016caabb1 One Query Executor to rule them all
This change significantly simplifies query executor code. Before this
change there were two types of executors -- RawExecutor and
AggregateExecutor. These two types only differed in one function
Execute(). Otherwise all other methods on the Executors were common and
duplicated between executors

This change merges the two executors into a single type called, wait for
it, Executor and simply switches execute functions depending on the
statement type.
2015-07-18 11:27:17 -07:00
Philip O'Toole f549910a18 Merge pull request #3279 from LK4D4/fix_style_else
Fix style issues with else
2015-07-17 11:53:42 -07:00
gunnaraasen 9ba37325f6 Fixes authorization.
Adds GRANT and REVOKE statements for admin privilege. Adds authorization to the query endpoint.
2015-07-17 11:33:06 -07:00
Alexander Morozov 675eacbf2c Fix style issues with else
In go it's better to just continue flow without "else", if it is return in
"if" statement.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-07-17 11:10:23 -07:00
Philip O'Toole 23b95bf939 Add comment re the complex mapperOutput type 2015-07-17 08:27:53 -07:00
Philip O'Toole b5984a7032 There is now a single StatefulMapper 2015-07-17 08:27:53 -07:00
Philip O'Toole 5f357020c6 It's not raw or aggregate, it's just "mapper" 2015-07-17 08:27:49 -07:00
Philip O'Toole 56b61beff9 Remove aggMapperOutput type
It's identical to rawMapperOutput type.
2015-07-17 08:23:36 -07:00
Philip O'Toole 12f50eba04 Remove aggMapperValue type
Identical to rawMapperValue type.
2015-07-17 08:23:36 -07:00
Philip O'Toole dc0aadf3b0 aggMapperValue is the same as rawMapperValue 2015-07-17 08:23:36 -07:00
Philip O'Toole 134ab87a49 Store a []interface{} in an interface{}
This is really pushing the type system, but needs to be done to cleanly
combine the raw and aggregate output mapper types.
2015-07-17 08:23:36 -07:00
Philip O'Toole 0d6c6bbe6f Correctly check if raw derivative is required
The multiple checks for Mapper and Executor type -- the lack of DRYness
in this code -- meant the same checks would need to be copied. Therefore
this change, as well as fixing the bug, improves the situation a little
bit by *asking* the Mappers what type of Executor is required. This code
is still not ideal.

Fixes #3355.
2015-07-16 23:28:38 -07:00
Philip O'Toole a1ac8e49cc Correct JSON tag name 2015-07-16 21:39:43 -07:00
Philip O'Toole 3ddff9114d Delimit measurement name for Mapper tagsets 2015-07-16 13:28:49 -07:00
Philip O'Toole d8c31f0b3c Merge pull request #3320 from influxdb/streaming_dq
Support Distributed Queries
2015-07-16 12:33:21 -07:00
Philip O'Toole 16250c5976 More replacement of "now" to outside loop 2015-07-16 12:19:46 -07:00
Philip O'Toole 6131983f83 More unit tests of tagset ordering across Mappers 2015-07-16 11:42:08 -07:00
Philip O'Toole c468a65bd2 Actually check tagset when looking for lowest time 2015-07-16 11:33:09 -07:00
Philip O'Toole 76d5b7085e Add engine unit tests 2015-07-15 22:28:41 -07:00
Philip O'Toole 2d162acb53 Rename query_engine.go to engine.go
The functionality in this file is more like the older file, so a rename
makes sense.
2015-07-15 22:06:08 -07:00
Philip O'Toole e254245f2f Implement simple remote node choice policy 2015-07-15 19:53:10 -07:00
Philip O'Toole f41d2bab5d Start move to unified query executor 2015-07-15 19:31:13 -07:00
Philip O'Toole 74cb96646c Refactor query engine for distributed query support
With this change, the query engine code gathers information about
shards and tagsets by working with individual shards, collating the
information, and returning that to the client. It does not assume that any
particular shard is local, and accesses all shards through abstracted
Mappers, of which there are two types -- a Mapper type for Raw queries
and a second type for Aggregate queries. There are corresponding
Executors for each type of Mapper, but both types of Executors share the
same interface.
2015-07-15 12:54:55 -07:00
Philip O'Toole 09d7dfbaae Form database path correctly on DROP DATABASE
Fixes #3330
2015-07-15 11:14:49 -07:00
Jason Wilder ebd6e55997 Fix regression parsing boolean True/False values 2015-07-13 11:29:02 -06:00
Jason Wilder f4f0373579 Sort points after appending if needed
Writing points that were not sorted by time could cause very high
CPU usages and increased latencies because each point inserted would
cause the in-memory cache to be resorted.  The worst case would be
writing a large batch of N points in reverse time order which would
invoke N sorts of the slice.

This patch keeps track of which slices need to be sorted and sorts
them once at the end.  In the previous example, the N sorts becomes
one.  There is still a pathalogical case that would require N/2 sorts.
For example, 10000 points split across 5000 series.  Each series has two
points that are in reverse time order.  This would incur 5000 sorts still.

Fixes #3159
2015-07-13 10:51:58 -06:00
Jason Wilder 1641c25479 Fix panic parsing floats without decimal
Fixes #3289
2015-07-10 14:18:51 -06:00
Philip O'Toole 7a87fbc58a Flush WAL as fast as possible on start-up
This addresses complaints of long start-up times when there is lots of
data sitting in the WAL.
2015-07-08 17:14:28 -06:00
Jason Wilder 6b8d3268e6 Fix code review comments 2015-07-07 11:41:12 -06:00
Jason Wilder cb75de8b7c Use UTC for test assertion data 2015-07-06 21:11:09 -06:00
Jason Wilder 351bc03655 Don't panic if NaN or -/+Inf is used as a field value
These are not supported types but previously it would cause the
point.Fields() func to panic.  This prevents it from panicing
so the values can be ignored if needed.
2015-07-06 16:14:02 -06:00
Jason Wilder 4d511571c5 Serialized unknown types as strings
When creating a point manually, the field values are interface{}
which allows unsupported types to be passed in.  Previously, the
code would panic.  It will now default to string representation of
the value if it's not a known type.
2015-07-06 16:14:02 -06:00
Jason Wilder 736f1c142e Only start flush timer if duration is set
The default of 0 causes the time timer to flush immediately.  If
only a batch size is set but not a time, the batch size setting does
not work.
2015-07-06 16:14:02 -06:00
Jason Wilder a3ab093996 Parse NaN as float
Fixes #3230
2015-07-06 16:14:01 -06:00
Philip O'Toole dd66491f65 stringSet now returns elements in sorted order 2015-07-06 12:03:58 -04:00
Philip O'Toole ca86fa2633 Allow WAL inter-flush time to be configurable 2015-07-02 10:40:26 -04:00
Philip O'Toole 39af8e49de Remove obsolete retention config from tsdb 2015-07-01 09:39:11 -04:00
Philip O'Toole 071c985b5b Remove obsolete retention auto-create from tsdb 2015-07-01 09:37:29 -04:00
Philip O'Toole babc63d941 Use typed error for "field not found" 2015-06-30 14:17:04 -04:00
Philip O'Toole 7a284885f2 Add helper to decode specific field by name 2015-06-30 14:16:54 -04:00
Philip O'Toole fde3d1f6a2 Remove unused, unexported function 2015-06-30 13:28:56 -04:00
Jason Wilder 41ae8bdae7 Handle escaped commas in measurement name
Fixes #3183
2015-06-29 15:15:50 -06:00
Jason Wilder eb71f78afb Merge pull request #3167 from influxdb/jw-2608
Fix panic when droppping measurement while writing to it concurrently
2015-06-29 14:05:42 -06:00
Jason Wilder 7232e6ea7c Fix panic when droppping measurement while writing to it concurrently
Fixes #2608
2015-06-29 14:01:07 -06:00
Joseph Crail 5fccee3d16 Fix spelling errors in comments and strings. 2015-06-28 02:54:34 -04:00
Jason Wilder 1a5a8d1675 Fix typos in comments 2015-06-26 14:36:19 -06:00
Jason Wilder d33b8bcd6a Return parsing error when tag name is missing
Fixes #2678
2015-06-26 13:47:09 -06:00
Jason Wilder 5081481ca8 Return error when parsing fields with no name
Fixes #3061
2015-06-26 13:39:25 -06:00
Ben Johnson b574e2f755 Add write ahead log
This commit adds a write ahead log to the shard. Entries are cached
in memory and periodically flushed back into the index. The WAL and
the cache are both partitioned into buckets so that flushing doesn't
stop the world as long.
2015-06-25 15:47:13 -06:00
Jason Wilder 17432598b1 Prevent out of range ints and floats from being parsed sucessfully
Field values that were out of range for the type would panic the database
when being inserted because the parser would allow them as valid points.
This change prevents those invalid values from being parsed and instead
returns an error.

An alternative fix considered was to handle the error and clamp the value
to the min/max value for the type.  This would treat numeric range errors
slightly differently than other type erros which might lead to confusion.

The simplest fix with the current parser would be to just convert each field
to the type at parse time.  Unfortunately, this adds extra memory allocations
and lowers throughput significantly.  Since out of range values are less common
than in-range values, some heuristics are used to determine when the more
expensive type parsing and range checking is performed.  Essentially, we only
do the slow path when we cannot determine that the value is in an acceptable
type range.

Fixes #3127
2015-06-25 14:49:42 -06:00
Sean Beckett 01440f90e9 Merge pull request #3095 from influxdb/beckettsean-patch-3
more examples for line protocol
2015-06-23 15:20:26 -07:00
Sean Beckett c2a1511e2e Update README.md 2015-06-23 15:19:53 -07:00
Sean Beckett 92b38583f3 more examples for line protocol
showing escape characters and proper string quoting
2015-06-22 17:10:24 -07:00
Sean Beckett 1d9aa31e7b Merge pull request #3072 from influxdb/beckettsean-patch-3
typos, clarifications in line protocol doc
2015-06-22 17:00:31 -07:00
Philip O'Toole cb7baa6d9e Don't group TagSets when tag values are identical
Fixes issue #3059
2015-06-22 16:04:13 -07:00
Jason Wilder 7873ccbb20 Merge pull request #3039 from neonstalwart/line-comments
allow comments in line protocol
2015-06-22 14:09:56 -06:00
Jason Wilder cc7e59a12a Merge pull request #3088 from influxdb/jw-field-values
Fix string field value escaping
2015-06-22 13:48:47 -06:00
Jason Wilder 2854108941 Fix string field value escaping
Commas and quotes could get escaped and parsed incorrectly if they
were both present in a string value.

Fixes #3013
2015-06-22 13:17:35 -06:00
Philip O'Toole 01700f79b0 On DROP DATABASE remove from TSDB index 2015-06-22 11:44:46 -07:00
Jason Wilder cb9a40df64 Fix invalid field value format not parsed correctly
A field value of just a numeric value would be accepted by the line
protocol parser but the value would be set as the field name and
the value would be nil.  Instead, return an error because all field
values need a field name.
2015-06-22 10:35:08 -06:00
Sean Beckett 6911e752af typos, clarifications 2015-06-19 17:58:28 -07:00
Philip O'Toole 72a76e73f3 Add full example of line protocol 2015-06-19 08:14:38 -07:00
Philip O'Toole d6eeb12d67 Merge pull request #2997 from influxdb/jw-line-protocol
Add line protocol doc
2015-06-19 08:09:12 -07:00
Todd Persen b6252868cc Add support for marshaling `uint64` in client. 2015-06-18 15:33:37 -07:00
ben hockey d4a341a5ae allow comments in line protocol 2015-06-18 14:03:27 -05:00
Philip O'Toole 17be1e2f67 Remove measurement from shard index on a DROP
Fixes issue #2955
2015-06-16 12:14:33 -07:00
Jason Wilder e0bfd827dc Add line protocol doc 2015-06-15 16:47:04 -06:00
Philip O'Toole 014eee6fa1 Remove stats support
This will soon be re-implemented using the expvar package.
2015-06-15 13:33:29 -07:00
Philip O'Toole 05bd0fc53d Check database existence during normalization
Statements were only being normalized if a default database was included
in the query (usually via the query param 'db'). However if no default
database was included, and none was an explicit part of the measurement
name, no database-existence check was run. This result in a later panic
with wildcard expansion.
2015-06-15 11:51:32 -07:00
Philip O'Toole e60645e1a2 Remove unused database param
It is not used by the code -- the database on the measurement object
that determines the target database.
2015-06-15 11:09:16 -07:00
Jason Wilder 36cde5f35e Fix large integers getting converted to floats during remote writes
Fixes #2960

Integers were were written back to line protocol using strconv.FormatFloat
incorrectly.  Large integers are written in scientific notation which
causes their type to change to a float when parsed back.
2015-06-12 11:20:37 -06:00
Jason Wilder 30068561ae Fix parsing negative floats
Fixes #2919
2015-06-12 08:39:17 -06:00
Jason Wilder 861f63e33e Merge pull request #2949 from influxdb/jw-error-responses
Add measurement name to type conflict error messages
2015-06-11 19:59:55 -06:00
Philip O'Toole be5491ea77 Merge pull request #2918 from pradeepchhetri/master
Fixed some typos
2015-06-11 18:28:24 -07:00
Jason Wilder 20fe5b0218 Add measurement name to type conflict error messages
Fixes #2948
2015-06-11 16:16:07 -06:00
Jason Wilder c97dedfa3d Be more explicit about boolean value parsing
Supported boolean values are now t, T, true, TRUE, f, F, false, and
FALSE.  This is what the strconv.ParseBool function supports with
the exception of 1 and 0.  1 and 0 would be parsed as ints in the
line protocol.

Previously, any non-true value would be parsed as false.  e.g.
value=blah would parse to false.  This will now return an error as
parsing time.
2015-06-11 14:53:53 -06:00
Jason Wilder 6d115a7552 Return the line that failed to parse
Make it easier to find a bad line in a batch when writing points.
2015-06-11 13:59:30 -06:00
Jason Wilder 0d82acfde7 Prevent invalid numbers from being parsed via line protocol
Adds more tests for invalid numbers such as 0.1a, -2.-4, as well
test for supported formats for negative and positive integers/floats
as well as scientific notation.
2015-06-11 13:50:28 -06:00
Jason Wilder b497256dc7 Fix panic when no value is passed to a field
Fixes #2927
2015-06-11 11:25:25 -06:00
Pradeep Chhetri 37750acef6 Fixed some Typos 2015-06-11 17:33:26 +05:45
Philip O'Toole 64af1b6241 Report number of measurements and series per node 2015-06-11 00:21:15 -07:00
Philip O'Toole ee5406d8a0 Merge pull request #2901 from influxdb/no_query_panic
SHOW DIAGNOSTICS is not yet (re)implemented
2015-06-10 21:12:02 -07:00
Philip O'Toole ffda846f33 SHOW DIAGNOSTICS is not yet (re)implemented 2015-06-10 21:09:25 -07:00
Ben Johnson bc31783a00 Refactor backup and restore
This commit updates the snapshot code as well as the "backup" and
"restore" command to work with the new architecture.
2015-06-10 22:07:01 -06:00
Paul Dix 325ca4ab4b Merge pull request #2885 from influxdb/datatype-refactor
change influxql DataType from string to int
2015-06-10 21:06:08 -07:00
Philip O'Toole 6d26f9c8a8 Merge pull request #2856 from influxdb/rv_fixes
Series was not already dropped, return false (and other fixes)
2015-06-10 20:57:46 -07:00
Philip O'Toole 344a1f4948 Don't even return value from DropSeries 2015-06-10 20:50:07 -07:00
Philip O'Toole 5ead14c1d0 Unit test returning empty set when no database 2015-06-10 19:22:16 -07:00
Philip O'Toole 4c2c1ae1dd Return empty results set if no shard meta database 2015-06-10 19:22:16 -07:00
Philip O'Toole 10ca99ffb8 SHOW DIAGNOSTICS is not yet (re)implemented 2015-06-10 15:49:00 -07:00
Jason Wilder 0d9a2a5053 Fix wrong value used for incorrect type error message
Would result in saying that the field type was always a string which
is incorrect.  The field key is a string but the value may not be.

Fixes #2700
2015-06-10 15:57:27 -06:00
Jason Wilder 67d4ef0e28 Don't queue write failures that due to type conflicts
These will never succeed and will stay in the queue indefinitely.
2015-06-10 14:52:59 -06:00
Jason Wilder 999f4a4c41 Return field type errors as client write errors
Fixes #2849
2015-06-10 14:52:26 -06:00
David Norton 29777f2a8e change influxql DataType from string to int 2015-06-10 16:02:26 -04:00
Jason Wilder bc7e1f6fd6 Fix panic when adding new fields
Fixes #2869

When adding a new field to an existing measurment, Shard.validateSeriesAndFields
would also encode the fields as a side-effect.  In the case of a new field
that needed to be created, the encoding would fail because the field type
had not been created for the measurement yet.  The fields are re-encoded
after validateSeriesAndFields returns and after the field encoding have been
setup properly so this additional encoding during
validation isn't necessary.
2015-06-10 10:30:14 -06:00
Philip O'Toole 98d315b8d8 Ensure tags are always marshalled the same way
This added check ensures it's always alphabetically ordered when
marshalled.
2015-06-09 17:10:46 -07:00
Philip O'Toole 8a5b337ae5 There is no more metastore, so correct comment 2015-06-09 14:57:19 -07:00
Jason Wilder 3e969166c9 Fix parsing commas in string field values
Fixes a panic on writes because the field value was not parse correctly.

panic: unsupported value type during encode fields: <nil>

goroutine 117 [running]:
github.com/influxdb/influxdb/tsdb.(*FieldCodec).EncodeFields(0xc2081c4020, 0xc2081dc180, 0x0, 0x0, 0x0, 0x0, 0x0)
	/Users/jason/go/src/github.com/influxdb/influxdb/tsdb/shard.go:573 +0x8e3
2015-06-09 15:53:21 -06:00
Philip O'Toole bc68afbe85 Fix minor spelling mistake 2015-06-09 14:35:38 -07:00
Philip O'Toole 85fd3d0292 Series was not already dropped, return false 2015-06-09 14:25:20 -07:00
Cory LaNou a43054adce add test for querying across shards and fields 2015-06-09 12:51:59 -05:00
David Norton fc0bbaf0d1 fix #2814: remove locking cruft from batcher 2015-06-09 00:34:46 -04:00
David Norton 3b15a49f7c fix #2814: revert making batcher channels buffered 2015-06-09 00:34:46 -04:00
David Norton d5f52333a1 fix #2814: hook collectd service back up 2015-06-09 00:34:46 -04:00
Paul Dix 8f712eaf85 Ignore shards that don't have the selected measurement in them.
Fixes #2815 and fixes #2818.
2015-06-08 17:14:42 +02:00
Paul Dix f39cddebf6 Fix locking on write path for getting measurement field encoding. 2015-06-07 11:09:47 +02:00
Jason Wilder 044e5b71f5 Remote temp dirs in store_test 2015-06-05 22:16:51 -06:00
Ben Johnson b925e1c1af Multi-node clustering.
This commit adds the ability to cluster multiple nodes together to share
the same metadata through raft consensus.
2015-06-05 14:41:19 -06:00
Todd Persen 0ee71b9755 Merge pull request #2743 from influxdb/tsdb-benchmarks
add shard & index benchmarks
2015-06-05 13:15:38 -07:00
Philip O'Toole ca9f231fa1 Merge pull request #2776 from influxdb/enforce_retention_2_phase
Enforce retention policies
2015-06-05 11:15:21 -07:00
Paul Dix 4ba7c5d1c1 Merge pull request #2787 from influxdb/pd-drop-database
Wire up DROP DATABASE query
2015-06-05 20:09:06 +02:00
Paul Dix 61ac4aad80 Fix spelling in test 2015-06-05 20:07:52 +02:00
Paul Dix 885e484746 Fix comment typo 2015-06-05 12:47:53 -04:00
Paul Dix 70e10b136e Wire up DROP DATABASE query. 2015-06-05 12:31:04 -04:00
Philip O'Toole 81ec7353ce TSDB store can return all known Shard IDs 2015-06-04 17:02:22 -07:00
Paul Dix 55e0de30bd Merge pull request #2773 from influxdb/pd-locking
Ensure proper locking of index structures on writes and queries.
2015-06-04 19:50:49 -04:00
Paul Dix 9bf09ee026 Correct comments in tsdb/meta 2015-06-04 16:08:12 -04:00
Philip O'Toole c36f5f3f5f Merge pull request #2771 from influxdb/enforce_retention_2_phase
Support deleting shards from TSDB store
2015-06-04 12:32:39 -07:00
Philip O'Toole 5ea2042356 Add DeleteShard to TSDB store 2015-06-04 12:22:38 -07:00
Paul Dix 408bc3f81e Ensure proper locking of index structures on writes and queries. 2015-06-04 14:50:32 -04:00
Cory LaNou bafdb7f7cb explicitly parse time if needed 2015-06-04 12:15:18 -06:00
Cory LaNou 780fdedbd4 remove spew 2015-06-04 11:29:18 -06:00
Cory LaNou 47d605b69a make line protocol round or parse precision as expected 2015-06-04 11:22:53 -06:00
Cory LaNou 3b9738c87a fixing more error message regressions 2015-06-03 15:36:18 -06:00
Cory LaNou 3e7b458eae fix regression in distinct on tags error 2015-06-03 15:28:45 -06:00
Paul Dix 99446786f9 Merge pull request #2752 from influxdb/pd-drop-measurement
Wire up DROP MEASUREMENT
2015-06-03 14:02:37 -04:00
Cory LaNou f5d59eca3d Merge pull request #2756 from influxdb/integration-tests
And even more Integration tests
2015-06-03 11:56:36 -06:00
Cory LaNou be91c40b9a fix data race in WriteToShard 2015-06-03 11:46:18 -06:00
Paul Dix a7685767f8 Update comment 2015-06-03 13:26:49 -04:00
Paul Dix 73a6c7e424 Merge pull request #2745 from influxdb/pd-shard-metadata-to-protobuf
Update metadata storage in the shard to use protobuf for serialization.
2015-06-03 11:33:25 -04:00
Paul Dix 9c4da3002c Wire up DROP MEASUREMENT
* Add deleteMeasurement to store and shard
* Add DropMeasurement to DatabaseIndex
* Update ErrMeasurementNotFound and ErrDatabaseNotFound to not include the first line of the stack trace.
2015-06-03 11:32:50 -04:00
David Norton 938ad2ef85 add Store Open benchmark test 2015-06-03 10:09:50 -04:00
Paul Dix 808e50f1cb Add protbuf definitions and code 2015-06-03 09:16:38 -04:00
Paul Dix 6f76a4774b Update UnmarshalBinary comment to be correct 2015-06-03 07:36:39 -04:00
Paul Dix 2d9c63f3bd Update metadata storage in the shard to use protobuf for serialization. 2015-06-02 19:08:48 -04:00