Skip to content

Commit 491f481

Browse files
Merge pull request ClickHouse#18481 from ClickHouse/disable_write_with_aio
Disable write with AIO even for big merges
2 parents 7d8a307 + 64c4ade commit 491f481

File tree

4 files changed

+3
-16
lines changed

4 files changed

+3
-16
lines changed

src/Storages/MergeTree/MergeTreeDataMergerMutator.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,6 @@ MergeTreeData::MutableDataPartPtr MergeTreeDataMergerMutator::mergePartsToTempor
685685
if (disk->exists(new_part_tmp_path))
686686
throw Exception("Directory " + fullPath(disk, new_part_tmp_path) + " already exists", ErrorCodes::DIRECTORY_ALREADY_EXISTS);
687687

688-
MergeTreeData::DataPart::ColumnToSize merged_column_to_size;
689688

690689
Names all_column_names = metadata_snapshot->getColumns().getNamesOfPhysical();
691690
NamesAndTypesList storage_columns = metadata_snapshot->getColumns().getAllPhysical();
@@ -767,6 +766,7 @@ MergeTreeData::MutableDataPartPtr MergeTreeDataMergerMutator::mergePartsToTempor
767766
rows_sources_uncompressed_write_buf = tmp_disk->writeFile(rows_sources_file_path);
768767
rows_sources_write_buf = std::make_unique<CompressedWriteBuffer>(*rows_sources_uncompressed_write_buf);
769768

769+
MergeTreeData::DataPart::ColumnToSize merged_column_to_size;
770770
for (const MergeTreeData::DataPartPtr & part : parts)
771771
part->accumulateColumnSizes(merged_column_to_size);
772772

@@ -921,7 +921,6 @@ MergeTreeData::MutableDataPartPtr MergeTreeDataMergerMutator::mergePartsToTempor
921921
merging_columns,
922922
index_factory.getMany(metadata_snapshot->getSecondaryIndices()),
923923
compression_codec,
924-
merged_column_to_size,
925924
data_settings->min_merge_bytes_to_use_direct_io,
926925
blocks_are_granules_size};
927926

src/Storages/MergeTree/MergeTreeIOSettings.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ struct MergeTreeWriterSettings
4646
bool rewrite_primary_key;
4747
bool blocks_are_granules_size;
4848

49-
/// true if we write temporary files during alter.
49+
/// Used for AIO threshold comparsion
50+
/// FIXME currently doesn't work because WriteBufferAIO contain obscure bug(s)
5051
size_t estimated_size = 0;
5152
};
5253

src/Storages/MergeTree/MergedBlockOutputStream.cpp

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ MergedBlockOutputStream::MergedBlockOutputStream(
2727
columns_list_,
2828
skip_indices,
2929
default_codec_,
30-
{},
3130
data_part->storage.global_context.getSettings().min_bytes_to_use_direct_io,
3231
blocks_are_granules_size)
3332
{
@@ -39,7 +38,6 @@ MergedBlockOutputStream::MergedBlockOutputStream(
3938
const NamesAndTypesList & columns_list_,
4039
const MergeTreeIndices & skip_indices,
4140
CompressionCodecPtr default_codec_,
42-
const MergeTreeData::DataPart::ColumnToSize & merged_column_to_size,
4341
size_t aio_threshold,
4442
bool blocks_are_granules_size)
4543
: IMergedBlockOutputStream(data_part, metadata_snapshot_)
@@ -54,16 +52,6 @@ MergedBlockOutputStream::MergedBlockOutputStream(
5452
/* rewrite_primary_key = */ true,
5553
blocks_are_granules_size);
5654

57-
if (aio_threshold > 0 && !merged_column_to_size.empty())
58-
{
59-
for (const auto & column : columns_list)
60-
{
61-
auto size_it = merged_column_to_size.find(column.name);
62-
if (size_it != merged_column_to_size.end())
63-
writer_settings.estimated_size += size_it->second;
64-
}
65-
}
66-
6755
if (!part_path.empty())
6856
volume->getDisk()->createDirectories(part_path);
6957

src/Storages/MergeTree/MergedBlockOutputStream.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ class MergedBlockOutputStream final : public IMergedBlockOutputStream
2727
const NamesAndTypesList & columns_list_,
2828
const MergeTreeIndices & skip_indices,
2929
CompressionCodecPtr default_codec_,
30-
const MergeTreeData::DataPart::ColumnToSize & merged_column_to_size,
3130
size_t aio_threshold,
3231
bool blocks_are_granules_size = false);
3332

0 commit comments

Comments
 (0)