ClickHouse/src/Storages/MergeTree/MergeTreeIOSettings.h

58 lines
2.0 KiB
C++
Raw Normal View History

2019-10-10 16:30:30 +00:00
#pragma once
#include <cstddef>
2019-11-07 11:11:38 +00:00
#include <Core/Settings.h>
#include <Storages/MergeTree/MergeTreeSettings.h>
2019-10-10 16:30:30 +00:00
2019-10-10 16:30:30 +00:00
namespace DB
{
2019-11-07 11:11:38 +00:00
2021-03-28 19:24:28 +00:00
class MMappedFileCache;
using MMappedFileCachePtr = std::shared_ptr<MMappedFileCache>;
struct MergeTreeReaderSettings
2019-11-05 11:53:22 +00:00
{
size_t min_bytes_to_use_direct_io = 0;
size_t min_bytes_to_use_mmap_io = 0;
2021-03-28 19:24:28 +00:00
MMappedFileCachePtr mmap_cache;
size_t max_read_buffer_size = DBMS_DEFAULT_BUFFER_SIZE;
2020-06-25 19:15:41 +00:00
/// If save_marks_in_cache is false, then, if marks are not in cache,
2020-01-16 16:15:01 +00:00
/// we will load them but won't save in the cache, to avoid evicting other data.
2019-11-05 11:53:22 +00:00
bool save_marks_in_cache = false;
2021-01-16 10:07:58 +00:00
/// Convert old-style nested (single arrays with same prefix, `n.a`, `n.b`...) to subcolumns of data type Nested.
2020-12-18 12:27:15 +00:00
bool convert_nested_to_subcolumns = false;
2021-01-25 20:29:04 +00:00
/// Validate checksums on reading (should be always enabled in production).
bool checksum_on_read = true;
2019-11-05 11:53:22 +00:00
};
struct MergeTreeWriterSettings
2019-11-05 11:53:22 +00:00
{
2020-04-14 19:47:19 +00:00
MergeTreeWriterSettings() = default;
MergeTreeWriterSettings(
const Settings & global_settings,
const MergeTreeSettingsPtr & storage_settings,
bool can_use_adaptive_granularity_,
2020-12-11 08:41:02 +00:00
bool rewrite_primary_key_,
bool blocks_are_granules_size_ = false)
: min_compress_block_size(
storage_settings->min_compress_block_size ? storage_settings->min_compress_block_size : global_settings.min_compress_block_size)
, max_compress_block_size(
storage_settings->max_compress_block_size ? storage_settings->max_compress_block_size
: global_settings.max_compress_block_size)
2019-11-05 11:53:22 +00:00
, can_use_adaptive_granularity(can_use_adaptive_granularity_)
2020-12-09 18:19:49 +00:00
, rewrite_primary_key(rewrite_primary_key_)
, blocks_are_granules_size(blocks_are_granules_size_)
{
}
2019-11-05 11:53:22 +00:00
size_t min_compress_block_size;
size_t max_compress_block_size;
bool can_use_adaptive_granularity;
2020-12-09 18:19:49 +00:00
bool rewrite_primary_key;
2019-11-05 11:53:22 +00:00
bool blocks_are_granules_size;
};
2020-04-14 19:47:19 +00:00
2019-10-10 16:30:30 +00:00
}