mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-23 08:02:02 +00:00
Merge
This commit is contained in:
parent
39fa078e85
commit
557a48f9e5
@ -369,7 +369,7 @@ public:
|
|||||||
if (data && (!removed_parts.empty() || !added_parts.empty()))
|
if (data && (!removed_parts.empty() || !added_parts.empty()))
|
||||||
{
|
{
|
||||||
LOG_DEBUG(data->log, "Undoing transaction");
|
LOG_DEBUG(data->log, "Undoing transaction");
|
||||||
data->replaceParts(removed_parts, added_parts);
|
data->replaceParts(removed_parts, added_parts, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(...)
|
catch(...)
|
||||||
@ -464,8 +464,9 @@ public:
|
|||||||
DataPartsVector renameTempPartAndReplace(MutableDataPartPtr part, Increment * increment = nullptr, Transaction * out_transaction = nullptr);
|
DataPartsVector renameTempPartAndReplace(MutableDataPartPtr part, Increment * increment = nullptr, Transaction * out_transaction = nullptr);
|
||||||
|
|
||||||
/** Убирает из рабочего набора куски remove и добавляет куски add.
|
/** Убирает из рабочего набора куски remove и добавляет куски add.
|
||||||
|
* Если clear_without_timeout, данные будут удалены при следующем clearOldParts, игнорируя old_parts_lifetime.
|
||||||
*/
|
*/
|
||||||
void replaceParts(const DataPartsVector & remove, const DataPartsVector & add);
|
void replaceParts(const DataPartsVector & remove, const DataPartsVector & add, bool clear_without_timeout);
|
||||||
|
|
||||||
/** Переименовывает кусок в prefix_кусок и убирает его из рабочего набора.
|
/** Переименовывает кусок в prefix_кусок и убирает его из рабочего набора.
|
||||||
* Лучше использовать только когда никто не может читать или писать этот кусок
|
* Лучше использовать только когда никто не может читать или писать этот кусок
|
||||||
|
@ -43,7 +43,7 @@ public:
|
|||||||
if (block_id.empty())
|
if (block_id.empty())
|
||||||
block_id = part->checksums.summaryDataChecksum();
|
block_id = part->checksums.summaryDataChecksum();
|
||||||
|
|
||||||
LOG_DEBUG(log, "Wrote block " << part_number << " with ID " << block_id);
|
LOG_DEBUG(log, "Wrote block " << part_number << " with ID " << block_id << ", " << current_block.block.rows() << " rows");
|
||||||
|
|
||||||
MergeTreeData::Transaction transaction; /// Если не получится добавить кусок в ZK, снова уберем его из рабочего набора.
|
MergeTreeData::Transaction transaction; /// Если не получится добавить кусок в ZK, снова уберем его из рабочего набора.
|
||||||
storage.data.renameTempPartAndAdd(part, nullptr, &transaction);
|
storage.data.renameTempPartAndAdd(part, nullptr, &transaction);
|
||||||
|
@ -679,7 +679,7 @@ MergeTreeData::DataPartsVector MergeTreeData::renameTempPartAndReplace(
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MergeTreeData::replaceParts(const DataPartsVector & remove, const DataPartsVector & add)
|
void MergeTreeData::replaceParts(const DataPartsVector & remove, const DataPartsVector & add, bool clear_without_timeout)
|
||||||
{
|
{
|
||||||
LOG_TRACE(log, "Removing " << remove.size() << " parts and adding " << add.size() << " parts.");
|
LOG_TRACE(log, "Removing " << remove.size() << " parts and adding " << add.size() << " parts.");
|
||||||
|
|
||||||
@ -687,7 +687,7 @@ void MergeTreeData::replaceParts(const DataPartsVector & remove, const DataParts
|
|||||||
|
|
||||||
for (const DataPartPtr & part : remove)
|
for (const DataPartPtr & part : remove)
|
||||||
{
|
{
|
||||||
part->remove_time = time(0);
|
part->remove_time = clear_without_timeout ? 0 : time(0);
|
||||||
data_parts.erase(part);
|
data_parts.erase(part);
|
||||||
}
|
}
|
||||||
for (const DataPartPtr & part : add)
|
for (const DataPartPtr & part : add)
|
||||||
|
Loading…
Reference in New Issue
Block a user