influxdb/tsdb/engine/tsm1
Jason Wilder 0264966f5c Add index optimize planning step
For larger datasets, it's possible for shards to get into a state where
many large, dense TSM files exist.  While the shard is still hot for
writes, full compactions will skip these files since they are already
fairly optimized and full compactions are expensive.  If the write volume
is large enough, the shard can accumulate lots of these files.  When
a file is in this state, it's index can contain every series which
causes startup times to increase since each file must parse the full
set of series keys for every file.  If the number of series is high,
the index can be quite large causing large amount of disk IO at startup.

To fix this, a optmize compaction is run when a full compaction planning
step decides there is nothing to do.  The optimize compaction combines
and spreads the data and series keys across all files resulting in each
file containing the full series data for that shard and a subset of the
total set of keys in the shard.

This allows a shard to only store a series key once in the shard reducing
storage size as well allows a shard to only load each key once at startup.
2016-07-14 11:32:36 -06:00
..
DESIGN.md
bit_reader.go
bit_reader_test.go
bool.go
bool_test.go
cache.go Refactoring the monitor service to avoid expvar 2016-07-07 11:13:58 -05:00
cache_race_test.go
cache_test.go Fix race in cache 2016-06-06 15:45:01 -06:00
compact.go Add index optimize planning step 2016-07-14 11:32:36 -06:00
compact_test.go Add index optimize planning step 2016-07-14 11:32:36 -06:00
cursor.go
encoding.gen.go
encoding.gen.go.tmpl
encoding.gen.go.tmpldata
encoding.go
encoding_test.go
engine.go Add index optimize planning step 2016-07-14 11:32:36 -06:00
engine_test.go Add index optimize planning step 2016-07-14 11:32:36 -06:00
file_store.gen.go Fix out of order blocks returned during query 2016-06-22 17:34:44 -06:00
file_store.gen.go.tmpl Fix out of order blocks returned during query 2016-06-22 17:34:44 -06:00
file_store.gen.go.tmpldata
file_store.go Add stats and diagnostics to the TSM engine 2016-07-07 19:35:55 -05:00
file_store_test.go Fix out of order blocks returned during query 2016-06-22 17:34:44 -06:00
file_unix.go
file_windows.go
float.go
float_test.go
int.go
int_test.go
iterator.gen.go
iterator.gen.go.tmpl
iterator.gen.go.tmpldata
iterator.go
mmap_solaris.go
mmap_unix.go
mmap_windows.go
pools.go
reader.go
reader_test.go
string.go tsm1 query engine alloc reduction 2016-04-11 14:50:59 -06:00
string_test.go
timestamp.go
timestamp_test.go
tombstone.go
tombstone_test.go
wal.go Refactoring the monitor service to avoid expvar 2016-07-07 11:13:58 -05:00
wal_test.go
writer.go Remove a double lock in the tsm1 index writer 2016-06-20 17:32:34 -05:00
writer_test.go