influxdb/tsdb/tsm1
Stuart Carnie 7de6383adf
refactor(tsm1): Allow race-free access to cache
This commit adds a new API to `Cache` to address data races
with the `TagKeys` and `TagValues` APIs.

`Cache` and `entry` provide `AppendTimestamps`, which
appends the current timestamps to the provided slice
to reduce allocations. As noted in the documentation,
it is the responsibility of the caller to sort and deduplicate
the values, if required.

The `cursors.TimestampArray` type was extended to permit
use of the `sort.Sort` API.
2020-04-08 16:15:05 -07:00
..
DESIGN.md Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
array_cursor.gen.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
array_cursor.gen.go.tmpl refactor: fix imports from go template files (#17615) 2020-04-03 17:40:36 -05: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 refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
array_cursor_iterator.gen.go.tmpl refactor: fix imports from go template files (#17615) 2020-04-03 17:40:36 -05:00
array_cursor_iterator.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
array_cursor_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
array_encoding.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
array_encoding_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
batch_boolean.go Ensure error strings not capitalised ST1005 2018-11-30 10:54:24 +00:00
batch_boolean_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05: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 refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
batch_integer.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05: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 refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
batch_timestamp.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05: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 refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
block_exporter.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
block_exporter_test.go feat(tsdb): Add block exporter. 2019-07-01 10:10:52 -06:00
bool.go Fix typos in tsdb package 2019-04-17 12:55:38 -07:00
bool_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
cache.go refactor(tsm1): Allow race-free access to cache 2020-04-08 16:15:05 -07:00
cache_entry.go refactor(tsm1): Allow race-free access to cache 2020-04-08 16:15:05 -07:00
cache_race_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
cache_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
cachestatus_string.go refactor(tsdb): move series file to its own package (#17224) 2020-03-12 11:32:52 -07:00
compact.gen.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
compact.gen.go.tmpl refactor: fix imports from go template files (#17615) 2020-04-03 17:40:36 -05:00
compact.gen.go.tmpldata Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
compact.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
compact_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
config.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
encoding.gen.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
encoding.gen.go.tmpl refactor: fix imports from go template files (#17615) 2020-04-03 17:40:36 -05: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 refactor(tsm1): Allow race-free access to cache 2020-04-08 16:15:05 -07:00
encoding_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
engine.go refactor(tsm1): Allow race-free access to cache 2020-04-08 16:15:05 -07:00
engine_cursor.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
engine_cursor_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
engine_delete_prefix.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
engine_delete_prefix_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
engine_measurement_schema.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
engine_measurement_schema_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
engine_schema.go refactor(tsm1): Allow race-free access to cache 2020-04-08 16:15:05 -07:00
engine_schema_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
engine_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
errors.go refactor(storage): move and remove to help cleanup tsdb package (#17275) 2020-03-16 12:23:15 -07:00
file_store.gen.go tsm1: DeletePrefix on the indirectIndex 2019-01-07 21:08:32 -07:00
file_store.gen.go.tmpl refactor: fix imports from go template files (#17615) 2020-04-03 17:40:36 -05:00
file_store.gen.go.tmpldata Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
file_store.go refactor(tsm1): Add TimeRangeMaxTimeIterator 2020-04-08 16:05:19 -07:00
file_store_array.gen.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
file_store_array_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05: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 refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
float.go Ensure all tsm1 metrics support multiple instances 2018-12-07 14:32:34 +00:00
float_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05: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 chore(tsdb): Fix read metrics declaration. 2019-06-27 09:25:27 -06:00
metrics_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05: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 refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
predicate_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
reader.gen.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
reader.gen.go.tmpl refactor: fix imports from go template files (#17615) 2020-04-03 17:40:36 -05:00
reader.gen.go.tmpldata Initial import of tsm1.Engine 2018-10-01 12:08:37 +01:00
reader.go refactor(tsm1): Add TimeRangeMaxTimeIterator 2020-04-08 16:05:19 -07:00
reader_block_iterator.go fix(tsdb): Fix tsm1 block merge. 2019-07-03 10:08:51 -06: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 chore: Remove several instances of WithLogger (#15996) 2019-12-04 15:10:23 -08: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 refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05: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 refactor(tsm1): Add TimeRangeMaxTimeIterator 2020-04-08 16:05:19 -07:00
reader_range_iterator_test.go refactor(tsm1): Add TimeRangeMaxTimeIterator 2020-04-08 16:05:19 -07:00
reader_range_maxtime_iterator.go refactor(tsm1): Add TimeRangeMaxTimeIterator 2020-04-08 16:05:19 -07:00
reader_range_maxtime_iterator_test.go refactor(tsm1): Add TimeRangeMaxTimeIterator 2020-04-08 16:05:19 -07: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 refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
ring.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05: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 refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
stats_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
string.go Ensure error strings not capitalised ST1005 2018-11-30 10:54:24 +00:00
string_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05: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 refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
tombstone_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
value.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
verify_tsm.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
writer.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00
writer_test.go refactor: rewrite imports to include the /v2 suffix for version 2 2020-04-03 12:39:20 -05:00