mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 01:22:04 +00:00
Merge
This commit is contained in:
parent
ca6f5df30e
commit
06edb12dbe
@ -17,7 +17,7 @@ public:
|
|||||||
auto part_blocks = storage.writer.splitBlockIntoParts(block);
|
auto part_blocks = storage.writer.splitBlockIntoParts(block);
|
||||||
for (auto & current_block : part_blocks)
|
for (auto & current_block : part_blocks)
|
||||||
{
|
{
|
||||||
size_t parts_count = storage.data.getDataPartsCount();
|
size_t parts_count = storage.data.getMaxPartsCountForMonth();
|
||||||
if (parts_count > storage.data.settings.parts_to_delay_insert)
|
if (parts_count > storage.data.settings.parts_to_delay_insert)
|
||||||
{
|
{
|
||||||
double delay = std::pow(storage.data.settings.insert_delay_step, parts_count - storage.data.settings.parts_to_delay_insert);
|
double delay = std::pow(storage.data.settings.insert_delay_step, parts_count - storage.data.settings.parts_to_delay_insert);
|
||||||
|
@ -439,7 +439,10 @@ public:
|
|||||||
*/
|
*/
|
||||||
DataParts getDataParts();
|
DataParts getDataParts();
|
||||||
DataParts getAllDataParts();
|
DataParts getAllDataParts();
|
||||||
size_t getDataPartsCount();
|
|
||||||
|
/** Максимальное количество кусков в одном месяце.
|
||||||
|
*/
|
||||||
|
size_t getMaxPartsCountForMonth();
|
||||||
|
|
||||||
/** Возвращает кусок с указанным именем или кусок, покрывающий его. Если такого нет, возвращает nullptr.
|
/** Возвращает кусок с указанным именем или кусок, покрывающий его. Если такого нет, возвращает nullptr.
|
||||||
* Если including_inactive, просматриваются также неактивные куски (all_data_parts).
|
* Если including_inactive, просматриваются также неактивные куски (all_data_parts).
|
||||||
|
@ -713,11 +713,30 @@ MergeTreeData::DataParts MergeTreeData::getAllDataParts()
|
|||||||
return all_data_parts;
|
return all_data_parts;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t MergeTreeData::getDataPartsCount()
|
size_t MergeTreeData::getMaxPartsCountForMonth()
|
||||||
{
|
{
|
||||||
Poco::ScopedLock<Poco::FastMutex> lock(data_parts_mutex);
|
Poco::ScopedLock<Poco::FastMutex> lock(data_parts_mutex);
|
||||||
|
|
||||||
return data_parts.size();
|
size_t res = 0;
|
||||||
|
size_t cur_count = 0;
|
||||||
|
DayNum_t cur_month = DayNum_t(0);
|
||||||
|
|
||||||
|
for (const auto & part : data_parts)
|
||||||
|
{
|
||||||
|
if (part->left_month == cur_month)
|
||||||
|
{
|
||||||
|
++cur_count;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cur_month = part->left_month;
|
||||||
|
cur_count = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
res = std::max(res, cur_count);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
MergeTreeData::DataPartPtr MergeTreeData::getContainingPart(const String & part_name, bool including_inactive)
|
MergeTreeData::DataPartPtr MergeTreeData::getContainingPart(const String & part_name, bool including_inactive)
|
||||||
|
Loading…
Reference in New Issue
Block a user