fix syncing of WAL

This commit is contained in:
Anton Popov 2020-09-11 16:09:26 +03:00
parent f2a5216e97
commit a64331d79f
2 changed files with 9 additions and 0 deletions

View File

@ -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);

View File

@ -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<MergeTreeMutableDataPartPtr> restore(const StorageMetadataPtr & metadata_snapshot);