influxdb/tsdb/engine/tsm1
davidby-influx 8711e2d6cc
fix: prevent differing field types in the same shard (#26025)
* fix: lock MeasurementFields while validating (#25998)

There was a window where a race between writes with
differing types for the same field were being validated.
Lock the  MeasurementFields struct during field
validation to avoid this.

closes https://github.com/influxdata/influxdb/issues/23756

(cherry picked from commit 5a20a835a5)

helps https://github.com/influxdata/influxdb/issues/26001

* fix: switch MeasurementFields from atomic.Value to sync.Map (#26022)

Simplify and speed up synchronization for
MeasurementFields structures by switching
from a mutex and atomic.Value to a sync.Map

(cherry picked from commit b617eb24a7)

closes https://github.com/influxdata/influxdb/issues/26001
2025-02-14 12:28:10 -08:00
..
DESIGN.md
array_cursor.gen.go fix: return and respect cursor errors (#24791) (#24846) 2024-03-26 14:54:32 -07:00
array_cursor.gen.go.tmpl fix: return and respect cursor errors (#24791) (#24846) 2024-03-26 14:54:32 -07:00
array_cursor_iterator.gen.go fix: return and respect cursor errors (#24791) (#24846) 2024-03-26 14:54:32 -07:00
array_cursor_iterator.gen.go.tmpl fix: return and respect cursor errors (#24791) (#24846) 2024-03-26 14:54:32 -07:00
array_cursor_iterator.go fix: return and respect cursor errors (#24791) (#24846) 2024-03-26 14:54:32 -07:00
array_cursor_test.go fix: return and respect cursor errors (#24791) (#24846) 2024-03-26 14:54:32 -07:00
array_encoding.go
array_encoding_test.go chore: update to go 1.20 (#24088) 2023-02-09 14:14:35 -05:00
batch_boolean.go fix: typos (#19734) 2020-10-13 09:50:32 -07:00
batch_boolean_test.go chore: update to go 1.20 (#24088) 2023-02-09 14:14:35 -05:00
batch_float.go fix: correct various typos (#19987) 2020-11-11 13:54:21 -05:00
batch_float_test.go chore(influxdb): Placate the linter. 2020-08-27 15:46:32 -04:00
batch_integer.go fix: typos (#19734) 2020-10-13 09:50:32 -07:00
batch_integer_test.go chore: update to go 1.20 (#24088) 2023-02-09 14:14:35 -05:00
batch_string.go fix: typos (#19734) 2020-10-13 09:50:32 -07:00
batch_string_test.go chore: update to go 1.20 (#24088) 2023-02-09 14:14:35 -05:00
batch_timestamp.go fix: typos (#19734) 2020-10-13 09:50:32 -07:00
batch_timestamp_test.go chore: update to go 1.20 (#24088) 2023-02-09 14:14:35 -05:00
bit_reader.go
bit_reader_test.go
bool.go
bool_test.go refactor: delete old backup/restore CLI commands, replace with dependency on new CLI repo (#21703) 2021-06-17 09:18:55 -04:00
cache.go fix(influxd): update xxhash, avoid stringtoslicebyte in cache (#578) (#25622) 2024-12-05 16:57:26 -06:00
cache_race_test.go feat: remaining storage metrics from OSS engine (#22938) 2021-12-02 09:01:46 -05:00
cache_test.go fix(influxd): update xxhash, avoid stringtoslicebyte in cache (#578) (#25622) 2024-12-05 16:57:26 -06:00
compact.gen.go refactor: remove dead iterator code (#23887) 2022-11-09 19:26:12 -05:00
compact.gen.go.tmpl refactor: remove dead iterator code (#23887) 2022-11-09 19:26:12 -05:00
compact.gen.go.tmpldata
compact.go feat: Add error join for file writing in snapshots (#26004) (#26005) 2025-02-12 16:12:36 -06:00
compact_test.go fix: move aside TSM file on errBlockRead (#25899) 2025-01-22 14:10:14 -08:00
digest.go fix: Do not close connection twice in DigestWithOptions (#21659) (#21662) 2021-06-10 13:32:36 -07:00
digest_reader.go
digest_test.go test: use `T.TempDir` to create temporary test directory (#23258) 2023-03-21 16:22:11 -04:00
digest_writer.go
digest_writer_test.go test: use `T.TempDir` to create temporary test directory (#23258) 2023-03-21 16:22:11 -04:00
encoding.gen.go chore(influxdb): Placate the linter. 2020-08-27 15:46:32 -04:00
encoding.gen.go.tmpl chore(influxdb): Placate the linter. 2020-08-27 15:46:32 -04:00
encoding.gen.go.tmpldata
encoding.gen_test.go
encoding.go chore(influxdb): Placate the linter. 2020-08-27 15:46:32 -04:00
encoding_test.go chore: update to go 1.20 (#24088) 2023-02-09 14:14:35 -05:00
engine.gen.go
engine.gen.go.tmpl
engine.go fix: prevent differing field types in the same shard (#26025) 2025-02-14 12:28:10 -08:00
engine_cursor.go
engine_internal_test.go test: use `T.TempDir` to create temporary test directory (#23258) 2023-03-21 16:22:11 -04:00
engine_test.go feat: add option to flush WAL on shutdown (#25444) 2024-10-10 15:27:54 -05:00
file_store.gen.go
file_store.gen.go.tmpl refactor: remove dead iterator code (#23887) 2022-11-09 19:26:12 -05:00
file_store.gen.go.tmpldata
file_store.go chore: replace uses of %v with %w (#25358) 2024-09-25 15:12:31 -05:00
file_store_array.gen.go
file_store_array_test.go test: use `T.TempDir` to create temporary test directory (#23258) 2023-03-21 16:22:11 -04:00
file_store_internal_test.go fix: do not rename files on mmap failure (#25340) 2024-09-17 12:48:21 -05:00
file_store_key_iterator.go
file_store_key_iterator_test.go fix(tsm1): fix data race when accessing tombstone stats (#20773) 2021-02-18 20:23:57 -05:00
file_store_observer.go
file_store_test.go feat: upgrade go to 1.23.5 (#25925) 2025-01-28 12:58:28 -06:00
float.go fix: typos (#19734) 2020-10-13 09:50:32 -07:00
float_test.go refactor: delete old backup/restore CLI commands, replace with dependency on new CLI repo (#21703) 2021-06-17 09:18:55 -04:00
int.go chore: remove duplicate word in comments (#23685) 2022-09-13 11:00:52 -05:00
int_test.go chore: update to go 1.20 (#24088) 2023-02-09 14:14:35 -05:00
iterator.gen.go
iterator.gen.go.tmpl
iterator.gen.go.tmpldata
iterator.go feat(tsi): optimize series iteration (#22316) 2021-08-27 09:59:23 -04:00
iterator_test.go test: replace influxlogger with zaptest logger (#20589) 2021-02-11 10:12:39 -05:00
mmap_unix.go build: upgrade to Go 1.18.1 (#23252) 2022-04-13 15:24:27 -05:00
mmap_windows.go
pools.go
predicate.go build: upgrade to Go 1.18.1 (#23252) 2022-04-13 15:24:27 -05:00
predicate_test.go build: upgrade protobuf library (#22654) 2021-11-02 16:00:54 -05:00
reader.gen.go
reader.gen.go.tmpl
reader.gen.go.tmpldata
reader.go fix: do not rename files on mmap failure (#25340) 2024-09-17 12:48:21 -05:00
reader_test.go fix: move aside TSM file on errBlockRead (#25899) 2025-01-22 14:10:14 -08:00
ring.go fix(influxd): update xxhash, avoid stringtoslicebyte in cache (#578) (#25622) 2024-12-05 16:57:26 -06:00
ring_test.go fix(influxd): update xxhash, avoid stringtoslicebyte in cache (#578) (#25622) 2024-12-05 16:57:26 -06:00
scheduler.go feat: tsm compaction metrics via prometheus (#22904) 2021-11-19 14:51:22 -05:00
scheduler_test.go feat: tsm compaction metrics via prometheus (#22904) 2021-11-19 14:51:22 -05:00
string.go
string_test.go chore: update to go 1.20 (#24088) 2023-02-09 14:14:35 -05:00
timestamp.go chore: remove duplicate word in comments (#23685) 2022-09-13 11:00:52 -05:00
timestamp_test.go chore: update to go 1.20 (#24088) 2023-02-09 14:14:35 -05:00
tombstone.go chore: use io/os over ioutil (#22656) 2021-10-12 16:55:07 -05:00
tombstone_test.go test: use `T.TempDir` to create temporary test directory (#23258) 2023-03-21 16:22:11 -04:00
wal.go feat: add option to flush WAL on shutdown (#25444) 2024-10-10 15:27:54 -05:00
wal_test.go test: use `T.TempDir` to create temporary test directory (#23258) 2023-03-21 16:22:11 -04:00
writer.go fix: do not leak file handles from Compactor.write (#25725) (#25740) 2025-01-06 09:03:37 -08:00
writer_test.go test: use `T.TempDir` to create temporary test directory (#23258) 2023-03-21 16:22:11 -04:00