influxdb/tsdb/tsm1
Edd Robinson 3588c0505e fix(storage): don't remap renamed TSM file
There exists a possibility for an in-flight read on a TSMReader to read
a stale reference to an mmapped TSM file index, which has become
unmapped.

This commit resolves that issue by simply renaming the file, leaving the
original file handler open and the data mapped. The path is updated so
that if any callers need to refer to the name of the TSM file after it's
renamed, the new name will be reflected.

The orphaned file handler will be closed when the TSM file is closed.
2019-05-03 22:36:35 +01:00
..
DESIGN.md Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
array_cursor.gen.go refactor: move the tsm1/wal into the storage/wal package 2019-02-04 10:32:52 -07:00
array_cursor.gen.go.tmpl refactor: move the tsm1/wal into the storage/wal package 2019-02-04 10:32:52 -07:00
array_cursor.gen.go.tmpldata refactor: move the tsm1/wal into the storage/wal package 2019-02-04 10:32:52 -07:00
array_cursor_iterator.gen.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
array_cursor_iterator.gen.go.tmpl chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
array_cursor_iterator.go Expose field key sep 2019-03-19 14:25:53 +00:00
array_encoding.go feat(tsdb): Teach storage how to only decode timestamps from a block 2019-04-18 16:19:18 -07:00
array_encoding_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
batch_boolean.go Ensure error strings not capitalised ST1005 2018-11-30 10:54:24 +00:00
batch_boolean_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
batch_float.go feat(tsm1): Improve performance of Gorilla float block decoding 2018-11-01 18:59:20 +00:00
batch_float_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
batch_integer.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
batch_integer_test.go Fix typos in tsdb package 2019-04-17 12:55:38 -07:00
batch_string.go fix(storage): Don't panic when length of source slice is too large 2019-04-29 13:29:41 -07:00
batch_string_test.go fix(storage): Don't panic when length of source slice is too large 2019-04-29 13:29:41 -07:00
batch_timestamp.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
batch_timestamp_test.go feat(encoding): Improve timestamp encoding 2018-11-01 18:59:20 +00:00
bit_reader.go Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
bit_reader_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
bool.go Fix typos in tsdb package 2019-04-17 12:55:38 -07:00
bool_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
cache.go tsm1: teach the cache about predicates 2019-05-01 13:40:40 -06:00
cache_entry.go tsm1: move cache entry to its own file 2019-03-30 10:24:15 -06:00
cache_race_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
cache_test.go tsm1: teach the cache about predicates 2019-05-01 13:40:40 -06:00
cachestatus_string.go Add reason to total compaction metric 2019-03-25 15:25:03 +00:00
compact.gen.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
compact.gen.go.tmpl chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
compact.gen.go.tmpldata Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
compact.go Fix typos in tsdb package 2019-04-17 12:55:38 -07:00
compact_test.go feat(influxd): Tracing refactor (#12318) 2019-03-04 11:48:11 -08:00
config.go Improve bulk series file writes. 2019-04-05 14:38:58 -06:00
encoding.gen.go refactor: move the tsm1/wal into the storage/wal package 2019-02-04 10:32:52 -07:00
encoding.gen.go.tmpl refactor: move the tsm1/wal into the storage/wal package 2019-02-04 10:32:52 -07:00
encoding.gen.go.tmpldata Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
encoding.gen_test.go refactor: move the tsm1/wal into the storage/wal package 2019-02-04 10:32:52 -07:00
encoding.go feedback: Changes in response to PR feedback 2019-04-18 16:19:18 -07:00
encoding_test.go feat: Teach Values how to determine it contains data for a time interval 2019-04-18 16:19:18 -07:00
engine.go chore(log): Put trace_id back in logs (#13712) 2019-04-30 18:51:22 -07:00
engine_cursor.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
engine_delete_prefix.go tsdb: respond to feedback and improve test coverage 2019-05-01 13:40:40 -06:00
engine_delete_prefix_test.go tsm1: rename engine method to DeletePrefixRange 2019-05-01 13:40:40 -06:00
engine_schema.go fix(storage): Ensure Tag(Keys|Values) APIs never return (nil, nil) 2019-05-02 09:45:38 -07:00
engine_schema_test.go fix(storage): Ensure Tag(Keys|Values) APIs never return (nil, nil) 2019-05-02 09:45:38 -07:00
engine_test.go tsm1: implement reading and writing predicates in tombstone files 2019-05-01 13:40:40 -06:00
file_store.gen.go tsm1: DeletePrefix on the indirectIndex 2019-01-07 21:08:32 -07:00
file_store.gen.go.tmpl chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
file_store.gen.go.tmpldata Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
file_store.go tsm1: basic predicate implementation at index layer 2019-05-01 13:40:40 -06:00
file_store_array.gen.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
file_store_array_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
file_store_key_iterator.go tsm1: fix remaining issues and add small benchmarks 2019-01-07 11:00:35 -07:00
file_store_key_iterator_test.go tsm1: change TSMFile to use an iterator style api 2019-01-07 11:00:35 -07:00
file_store_observer.go Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
file_store_test.go feat(influxd): Tracing refactor (#12318) 2019-03-04 11:48:11 -08:00
float.go Ensure all tsm1 metrics support multiple instances 2018-12-07 14:32:34 +00:00
float_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
int.go Ensure error strings not capitalised ST1005 2018-11-30 10:54:24 +00:00
int_test.go Fix typos in tsdb package 2019-04-17 12:55:38 -07:00
metrics.go feat(storage): add tsm level metrics 2019-04-19 13:33:52 -07:00
metrics_test.go feat(storage): add tsm level metrics 2019-04-19 13:33:52 -07:00
mmap_unix.go Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
mmap_windows.go Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
predicate.go tsdb: respond to feedback and improve test coverage 2019-05-01 13:40:40 -06:00
predicate_test.go tsdb: respond to feedback and improve test coverage 2019-05-01 13:40:40 -06:00
reader.gen.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
reader.gen.go.tmpl chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
reader.gen.go.tmpldata Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
reader.go tsm1: implement reading and writing predicates in tombstone files 2019-05-01 13:40:40 -06:00
reader_block_iterator.go tsm1: change TSMFile to use an iterator style api 2019-01-07 11:00:35 -07:00
reader_block_iterator_test.go tsm1: move code around into smaller files and add tests 2019-01-07 21:11:49 -07:00
reader_fault_buffer.go tsm1: move code around into smaller files and add tests 2019-01-07 21:11:49 -07:00
reader_index.go tsm1: basic predicate implementation at index layer 2019-05-01 13:40:40 -06:00
reader_index_iterator.go feedback: Changes in response to PR feedback 2019-04-18 16:19:18 -07:00
reader_index_iterator_test.go feat(tsm1): Add Seek API to TSMIndexIterator 2019-04-18 16:19:18 -07:00
reader_index_test.go tsdb: respond to feedback and improve test coverage 2019-05-01 13:40:40 -06:00
reader_mmap.go fix(storage): don't remap renamed TSM file 2019-05-03 22:36:35 +01:00
reader_offsets.go tsm1: DeletePrefix on the indirectIndex 2019-01-07 21:08:32 -07:00
reader_offsets_test.go tsm1: fix remaining issues and add small benchmarks 2019-01-07 11:00:35 -07:00
reader_prefix_tree.go tsm1: basic predicate implementation at index layer 2019-05-01 13:40:40 -06:00
reader_prefix_tree_test.go tsm1: add comments responding to review feedback 2019-01-09 11:35:06 -07:00
reader_range_iterator.go feat(storage): Teach TagKeys, TagValues how to accumulate statistics 2019-04-24 11:14:22 -07:00
reader_range_iterator_test.go tsm1: implement reading and writing predicates in tombstone files 2019-05-01 13:40:40 -06:00
reader_test.go tsm1: basic predicate implementation at index layer 2019-05-01 13:40:40 -06:00
reader_time_range.go tsm1: basic predicate implementation at index layer 2019-05-01 13:40:40 -06:00
reader_time_range_test.go tsm1: basic predicate implementation at index layer 2019-05-01 13:40:40 -06:00
report.go Fix 2019-03-19 15:12:35 +00:00
ring.go change an inaccurate comment 2019-03-30 10:24:15 -06:00
ring_test.go tsm1: rings are fixed at 16 partitions 2019-03-30 10:24:15 -06:00
scheduler.go Ensure all tsm1 metrics support multiple instances 2018-12-07 14:32:34 +00:00
scheduler_test.go Convert Cache statistics 2018-12-07 14:32:34 +00:00
stats.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
stats_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
string.go Ensure error strings not capitalised ST1005 2018-11-30 10:54:24 +00:00
string_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
timestamp.go Fix typos in tsdb package 2019-04-17 12:55:38 -07:00
timestamp_test.go Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
tombstone.go tsm1: implement reading and writing predicates in tombstone files 2019-05-01 13:40:40 -06:00
tombstone_test.go tsm1: implement reading and writing predicates in tombstone files 2019-05-01 13:40:40 -06:00
value.go storage: detect conflicting types in a single batch of points 2019-03-06 10:30:52 -07:00
writer.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00
writer_test.go chore: rename imports from platform to influxdb 2019-01-09 20:51:47 -08:00