Commit Graph

310 Commits (6f0ba18904a3b56ddf9628d2723893b9e69d0350)

Author SHA1 Message Date
David Norton 6f0ba18904 fix TestDropMeasurementStatement 2015-08-25 10:01:38 -04:00
David Norton 636b4d1603 don't send empty row from ShowMeasurementsExecutor 2015-08-24 13:16:48 -04:00
David Norton 88f556af72 convert SHOW MEASUREMENTS to a distributed query 2015-08-23 23:09:51 -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
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