mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 09:32:01 +00:00
Fix ENOENT with fsync_part_directory and Vertical merge
fsync of the temporary part directory is superfluous anyway, and besides that directory is not exists at that time, that will lead to ENOENT error: 2022.02.18 17:02:51.634565 [ 35639 ] {} <Error> void DB::MergeTreeBackgroundExecutor<DB::MergeMutateRuntimeQueue>::routine(DB::TaskRuntimeDataPtr) [Queue = DB::MergeMutateRuntimeQueue]: Code: 107. DB::ErrnoException: Cannot open file /var/lib/clickhouse/data/system/text_log/tmp_merge_202202_1864_3192_14/, errno: 2, strerror: No such file or directory. (FILE_DOESNT_EXIST), Stack trace (when copying this message, always include the lines below): 0. DB::Exception::Exception() @ 0xb26ecfa in /usr/lib/debug/.build-id/01/8c328bd4858d67.debug 1. DB::throwFromErrnoWithPath() @ 0xb2700ea in /usr/lib/debug/.build-id/01/8c328bd4858d67.debug 2. DB::LocalDirectorySyncGuard::LocalDirectorySyncGuard() @ 0x14905531 in /usr/lib/debug/.build-id/01/8c328bd4858d67.debug 3. DB::DiskLocal::getDirectorySyncGuard() const @ 0x148af3e3 in /usr/lib/debug/.build-id/01/8c328bd4858d67.debug 4. DB::MergeTask::ExecuteAndFinalizeHorizontalPart::prepare() @ 0x157bef13 in /usr/lib/debug/.build-id/01/8c328bd4858d67.debug Note, that IMergeTreeDataPart::renameTo() anyway will have fsync for the directory. Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
This commit is contained in:
parent
e4d5db6161
commit
fef5f146e7
@ -241,9 +241,6 @@ bool MergeTask::ExecuteAndFinalizeHorizontalPart::prepare()
|
||||
global_ctx->merging_column_names,
|
||||
global_ctx->gathering_column_names);
|
||||
|
||||
if (global_ctx->data->getSettings()->fsync_part_directory)
|
||||
global_ctx->sync_guard = ctx->disk->getDirectorySyncGuard(local_new_part_tmp_path);
|
||||
|
||||
break;
|
||||
}
|
||||
default :
|
||||
|
@ -155,7 +155,6 @@ private:
|
||||
QueryPipeline merged_pipeline;
|
||||
std::unique_ptr<PullingPipelineExecutor> merging_executor;
|
||||
|
||||
SyncGuardPtr sync_guard{nullptr};
|
||||
MergeTreeData::MutableDataPartPtr new_data_part{nullptr};
|
||||
|
||||
size_t rows_written{0};
|
||||
|
@ -520,7 +520,6 @@ struct MutationContext
|
||||
DiskPtr disk;
|
||||
String new_part_tmp_path;
|
||||
|
||||
SyncGuardPtr sync_guard;
|
||||
IMergedBlockOutputStreamPtr out{nullptr};
|
||||
|
||||
String mrk_extension;
|
||||
@ -1305,9 +1304,6 @@ bool MutateTask::prepare()
|
||||
ctx->disk = ctx->new_data_part->volume->getDisk();
|
||||
ctx->new_part_tmp_path = ctx->new_data_part->getFullRelativePath();
|
||||
|
||||
if (ctx->data->getSettings()->fsync_part_directory)
|
||||
ctx->sync_guard = ctx->disk->getDirectorySyncGuard(ctx->new_part_tmp_path);
|
||||
|
||||
/// Don't change granularity type while mutating subset of columns
|
||||
ctx->mrk_extension = ctx->source_part->index_granularity_info.is_adaptive ? getAdaptiveMrkExtension(ctx->new_data_part->getType())
|
||||
: getNonAdaptiveMrkExtension();
|
||||
|
@ -12,3 +12,4 @@ memory in_memory_parts_insert_sync
|
||||
1
|
||||
wide fsync_part_directory,vertical
|
||||
1
|
||||
2
|
||||
|
@ -43,8 +43,10 @@ optimize table data_01643 final;
|
||||
drop table data_01643;
|
||||
|
||||
select 'wide fsync_part_directory,vertical';
|
||||
create table data_01643 (key Int) engine=MergeTree() order by key settings min_bytes_for_wide_part=0, fsync_part_directory=1, enable_vertical_merge_algorithm=1, vertical_merge_algorithm_min_rows_to_activate=1, vertical_merge_algorithm_min_columns_to_activate=1;
|
||||
create table data_01643 (key Int) engine=MergeTree() order by key settings min_bytes_for_wide_part=0, fsync_part_directory=1, enable_vertical_merge_algorithm=1, vertical_merge_algorithm_min_rows_to_activate=0, vertical_merge_algorithm_min_columns_to_activate=0;
|
||||
insert into data_01643 values (1);
|
||||
select * from data_01643;
|
||||
optimize table data_01643 final;
|
||||
insert into data_01643 values (2);
|
||||
select * from data_01643 order by key;
|
||||
-- vertical merge does not supports deduplicate, hence no FINAL
|
||||
optimize table data_01643;
|
||||
drop table data_01643;
|
||||
|
Loading…
Reference in New Issue
Block a user