This is an automated email from the ASF dual-hosted git repository. eldenmoon pushed a commit to branch branch-2.0-var in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0-var by this push: new e8cc313f8e7 [Bug](cooldown) Fix problem that followers may never completely cooldown (#28561) (#28761) e8cc313f8e7 is described below commit e8cc313f8e79670a7117665be222ef7429ba8dd9 Author: lihangyu <15605149...@163.com> AuthorDate: Thu Dec 21 12:16:27 2023 +0800 [Bug](cooldown) Fix problem that followers may never completely cooldown (#28561) (#28761) Co-authored-by: plat1ko <platonekos...@gmail.com> --- be/src/olap/tablet.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/be/src/olap/tablet.cpp b/be/src/olap/tablet.cpp index 67995c2f54a..9ccf754a971 100644 --- a/be/src/olap/tablet.cpp +++ b/be/src/olap/tablet.cpp @@ -2130,16 +2130,7 @@ Status Tablet::_cooldown_data() { LOG(INFO) << "cannot pick cooldown rowset in tablet " << tablet_id(); return Status::OK(); } - if (old_rowset->num_segments() < 1) { - // Empty rowset, just reset rowset's resource_id - std::lock_guard meta_wlock(_meta_lock); - SCOPED_SIMPLE_TRACE_IF_TIMEOUT(TRACE_TABLET_LOCK_THRESHOLD); - old_rowset->rowset_meta()->set_fs(dest_fs); - LOG(INFO) << "cooldown empty rowset " << old_rowset->version() << " " - << old_rowset->rowset_id().to_string() << " to " << dest_fs->root_path().native() - << ", tablet_id=" << tablet_id(); - return Status::OK(); - } + RowsetId new_rowset_id = StorageEngine::instance()->next_rowset_id(); add_pending_remote_rowset(new_rowset_id.to_string()); Status st; @@ -2186,7 +2177,9 @@ Status Tablet::_cooldown_data() { SCOPED_SIMPLE_TRACE_IF_TIMEOUT(TRACE_TABLET_LOCK_THRESHOLD); save_meta(); } - // upload cooldowned rowset meta to remote fs + // Upload cooldowned rowset meta to remote fs + // ATTN: Even if it is an empty rowset, in order for the followers to synchronize, the coolown meta must be + // uploaded, otherwise followers may never completely cooldown. if (auto t = StorageEngine::instance()->tablet_manager()->get_tablet(tablet_id()); t != nullptr) { // `t` can be nullptr if it has been dropped async_write_cooldown_meta(std::move(t)); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org