From a64331d79f04bb9321383269150fe8302289e9b2 Mon Sep 17 00:00:00 2001 From: Anton Popov Date: Fri, 11 Sep 2020 16:09:26 +0300 Subject: [PATCH] fix syncing of WAL --- src/Storages/MergeTree/MergeTreeWriteAheadLog.cpp | 7 +++++++ src/Storages/MergeTree/MergeTreeWriteAheadLog.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/Storages/MergeTree/MergeTreeWriteAheadLog.cpp b/src/Storages/MergeTree/MergeTreeWriteAheadLog.cpp index bc6738a8321..35fadb999b4 100644 --- a/src/Storages/MergeTree/MergeTreeWriteAheadLog.cpp +++ b/src/Storages/MergeTree/MergeTreeWriteAheadLog.cpp @@ -37,6 +37,13 @@ MergeTreeWriteAheadLog::MergeTreeWriteAheadLog( }); } +MergeTreeWriteAheadLog::~MergeTreeWriteAheadLog() +{ + std::unique_lock lock(write_mutex); + if (sync_scheduled) + sync_cv.wait(lock, [this] { return !sync_scheduled; }); +} + void MergeTreeWriteAheadLog::init() { out = disk->writeFile(path, DBMS_DEFAULT_BUFFER_SIZE, WriteMode::Append); diff --git a/src/Storages/MergeTree/MergeTreeWriteAheadLog.h b/src/Storages/MergeTree/MergeTreeWriteAheadLog.h index c5675eac696..77c7c7e11e7 100644 --- a/src/Storages/MergeTree/MergeTreeWriteAheadLog.h +++ b/src/Storages/MergeTree/MergeTreeWriteAheadLog.h @@ -35,6 +35,8 @@ public: MergeTreeWriteAheadLog(MergeTreeData & storage_, const DiskPtr & disk_, const String & name = DEFAULT_WAL_FILE_NAME); + ~MergeTreeWriteAheadLog(); + void addPart(const Block & block, const String & part_name); void dropPart(const String & part_name); std::vector restore(const StorageMetadataPtr & metadata_snapshot);