Skip to content

Commit ff8a74e

Browse files
committed
fix some thread safety issues
1 parent f021160 commit ff8a74e

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

src/Storages/MergeTree/ExportList.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ ExportInfo ExportsListElement::getInfo() const
4646
res.destination_file_paths = destination_file_paths;
4747
}
4848

49-
res.rows_read = rows_read;
49+
res.rows_read = rows_read.load(std::memory_order_relaxed);
5050
res.total_rows_to_read = total_rows_to_read;
5151
res.total_size_bytes_compressed = total_size_bytes_compressed;
5252
res.total_size_bytes_uncompressed = total_size_bytes_uncompressed;
53-
res.bytes_read_uncompressed = bytes_read_uncompressed;
53+
res.bytes_read_uncompressed = bytes_read_uncompressed.load(std::memory_order_relaxed);
5454
res.memory_usage = getMemoryUsage();
5555
res.peak_memory_usage = getPeakMemoryUsage();
5656
res.create_time = create_time;
57-
res.elapsed = elapsed;
57+
res.elapsed = watch.elapsedSeconds();
5858
return res;
5959
}
6060

src/Storages/MergeTree/ExportList.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,15 @@ struct ExportsListElement : private boost::noncopyable
4242
const StorageID destination_table_id;
4343
const UInt64 part_size;
4444
const String part_name;
45+
46+
/// see destination_file_paths_mutex
4547
std::vector<String> destination_file_paths;
46-
UInt64 rows_read {0};
48+
std::atomic<UInt64> rows_read {0};
4749
UInt64 total_rows_to_read {0};
4850
UInt64 total_size_bytes_compressed {0};
4951
UInt64 total_size_bytes_uncompressed {0};
50-
UInt64 bytes_read_uncompressed {0};
52+
std::atomic<UInt64> bytes_read_uncompressed {0};
5153
time_t create_time {0};
52-
Float64 elapsed {0};
5354

5455
Stopwatch watch;
5556
ThreadGroupPtr thread_group;

src/Storages/MergeTree/ExportPartTask.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ bool ExportPartTask::executeStep()
156156
{
157157
(*exports_list_entry)->bytes_read_uncompressed += progress.read_bytes;
158158
(*exports_list_entry)->rows_read += progress.read_rows;
159-
(*exports_list_entry)->elapsed = (*exports_list_entry)->watch.elapsedSeconds();
160159
});
161160

162161
pipeline = QueryPipelineBuilder::getPipeline(std::move(*builder));

0 commit comments

Comments
 (0)