Merge remote-tracking branch 'upstream/master' into ncb/updates

This commit is contained in:
bharatnc 2022-01-20 20:32:20 -08:00
commit 3a27a532af
4 changed files with 19 additions and 2 deletions

View File

@ -142,14 +142,16 @@ void StorageMergeTree::startup()
void StorageMergeTree::flush()
{
if (flush_called.exchange(true))
return;
flushAllInMemoryPartsIfNeeded();
}
void StorageMergeTree::shutdown()
{
if (shutdown_called)
if (shutdown_called.exchange(true))
return;
shutdown_called = true;
/// Unlock all waiting mutations
{

View File

@ -140,6 +140,7 @@ private:
std::map<std::pair<Int64, Int64>, UInt64> updated_version_by_block_range;
std::atomic<bool> shutdown_called {false};
std::atomic<bool> flush_called {false};
void loadMutations();

View File

@ -4070,9 +4070,19 @@ void StorageReplicatedMergeTree::startup()
}
}
void StorageReplicatedMergeTree::flush()
{
if (flush_called.exchange(true))
return;
flushAllInMemoryPartsIfNeeded();
}
void StorageReplicatedMergeTree::shutdown()
{
if (shutdown_called.exchange(true))
return;
/// Cancel fetches, merges and mutations to force the queue_task to finish ASAP.
fetcher.blocker.cancelForever();
merger_mutator.merges_blocker.cancelForever();

View File

@ -87,6 +87,7 @@ class StorageReplicatedMergeTree final : public shared_ptr_helper<StorageReplica
public:
void startup() override;
void shutdown() override;
void flush() override;
~StorageReplicatedMergeTree() override;
std::string getName() const override { return "Replicated" + merging_params.getModeName() + "MergeTree"; }
@ -369,6 +370,9 @@ private:
/// Event that is signalled (and is reset) by the restarting_thread when the ZooKeeper session expires.
Poco::Event partial_shutdown_event {false}; /// Poco::Event::EVENT_MANUALRESET
std::atomic<bool> shutdown_called {false};
std::atomic<bool> flush_called {false};
int metadata_version = 0;
/// Threads.