mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 16:12:01 +00:00
Merge
This commit is contained in:
parent
f2357d50b5
commit
c6722da2b2
@ -494,6 +494,8 @@ private:
|
||||
|
||||
/// Используется, чтобы не выполнять одновременно функцию grabOldParts.
|
||||
std::mutex grab_old_parts_mutex;
|
||||
/// То же самое для clearOldTemporaryDirectories.
|
||||
std::mutex clear_old_temporary_directories_mutex;
|
||||
|
||||
/** Для каждого шарда множество шардированных кусков.
|
||||
*/
|
||||
|
@ -371,6 +371,11 @@ void MergeTreeData::loadDataParts(bool skip_sanity_checks)
|
||||
|
||||
void MergeTreeData::clearOldTemporaryDirectories()
|
||||
{
|
||||
/// Если метод уже вызван из другого потока, то можно ничего не делать.
|
||||
std::unique_lock<std::mutex> lock(clear_old_temporary_directories_mutex, std::defer_lock);
|
||||
if (!lock.try_lock())
|
||||
return;
|
||||
|
||||
/// Удаляем временные директории старше суток.
|
||||
Poco::DirectoryIterator end;
|
||||
for (Poco::DirectoryIterator it{full_path}; it != end; ++it)
|
||||
@ -379,10 +384,17 @@ void MergeTreeData::clearOldTemporaryDirectories()
|
||||
{
|
||||
Poco::File tmp_dir(full_path + it.name());
|
||||
|
||||
if (tmp_dir.isDirectory() && tmp_dir.getLastModified().epochTime() + 86400 < time(0))
|
||||
try
|
||||
{
|
||||
LOG_WARNING(log, "Removing temporary directory " << full_path << it.name());
|
||||
Poco::File(full_path + it.name()).remove(true);
|
||||
if (tmp_dir.isDirectory() && tmp_dir.getLastModified().epochTime() + 86400 < time(0))
|
||||
{
|
||||
LOG_WARNING(log, "Removing temporary directory " << full_path << it.name());
|
||||
Poco::File(full_path + it.name()).remove(true);
|
||||
}
|
||||
}
|
||||
catch (const Poco::FileNotFoundException &)
|
||||
{
|
||||
/// Ничего не делаем, если файл уже удалён.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user