This is an automated email from the ASF dual-hosted git repository. lide pushed a commit to branch branch-1.2-lts in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.2-lts by this push: new 2ce6124f155 [bug](backup) Add table/partition id into convert_rowset_ids() (#37077) 2ce6124f155 is described below commit 2ce6124f1555a779881612ae6524fc48d246dce5 Author: xy720 <22125576+xy...@users.noreply.github.com> AuthorDate: Sun Jul 14 21:21:07 2024 +0800 [bug](backup) Add table/partition id into convert_rowset_ids() (#37077) --- be/src/olap/snapshot_manager.cpp | 12 +++++++++++- be/src/olap/snapshot_manager.h | 2 +- be/src/olap/task/engine_clone_task.cpp | 2 +- be/src/olap/task/engine_storage_migration_task.cpp | 5 +++-- be/src/runtime/snapshot_loader.cpp | 3 ++- .../src/main/java/org/apache/doris/task/CloneTask.java | 2 ++ gensrc/thrift/AgentService.thrift | 2 ++ 7 files changed, 22 insertions(+), 6 deletions(-) diff --git a/be/src/olap/snapshot_manager.cpp b/be/src/olap/snapshot_manager.cpp index ea1dc1c995f..7136f4f2586 100644 --- a/be/src/olap/snapshot_manager.cpp +++ b/be/src/olap/snapshot_manager.cpp @@ -117,7 +117,8 @@ Status SnapshotManager::release_snapshot(const string& snapshot_path) { } Status SnapshotManager::convert_rowset_ids(const std::string& clone_dir, int64_t tablet_id, - int64_t replica_id, const int32_t& schema_hash) { + int64_t replica_id, int64_t table_id, + int64_t partition_id, const int32_t& schema_hash) { SCOPED_CONSUME_MEM_TRACKER(_mem_tracker); Status res = Status::OK(); // check clone dir existed @@ -149,6 +150,12 @@ Status SnapshotManager::convert_rowset_ids(const std::string& clone_dir, int64_t // equal to tablet id in meta new_tablet_meta_pb.set_tablet_id(tablet_id); new_tablet_meta_pb.set_replica_id(replica_id); + if (table_id > 0) { + new_tablet_meta_pb.set_table_id(table_id); + } + if (partition_id > 0) { + new_tablet_meta_pb.set_partition_id(partition_id); + } new_tablet_meta_pb.set_schema_hash(schema_hash); TabletSchemaSPtr tablet_schema; tablet_schema = @@ -177,6 +184,9 @@ Status SnapshotManager::convert_rowset_ids(const std::string& clone_dir, int64_t } // FIXME(cyx): Redundant? rowset_meta->set_tablet_id(tablet_id); + if (partition_id > 0) { + rowset_meta->set_partition_id(partition_id); + } rowset_meta->set_tablet_schema_hash(schema_hash); Version rowset_version = {visible_rowset.start_version(), visible_rowset.end_version()}; rs_version_map[rowset_version] = rowset_meta; diff --git a/be/src/olap/snapshot_manager.h b/be/src/olap/snapshot_manager.h index a7857c3ffb0..df99cfda839 100644 --- a/be/src/olap/snapshot_manager.h +++ b/be/src/olap/snapshot_manager.h @@ -60,7 +60,7 @@ public: static SnapshotManager* instance(); Status convert_rowset_ids(const std::string& clone_dir, int64_t tablet_id, int64_t replica_id, - const int32_t& schema_hash); + int64_t table_id, int64_t partition_id, const int32_t& schema_hash); private: SnapshotManager() : _snapshot_base_id(0) { diff --git a/be/src/olap/task/engine_clone_task.cpp b/be/src/olap/task/engine_clone_task.cpp index 67e3c36e796..75e8caa59a3 100644 --- a/be/src/olap/task/engine_clone_task.cpp +++ b/be/src/olap/task/engine_clone_task.cpp @@ -263,7 +263,7 @@ Status EngineCloneTask::_make_and_download_snapshots(DataDir& data_dir, // change all rowset ids because they maybe its id same with local rowset status = SnapshotManager::instance()->convert_rowset_ids( local_data_path, _clone_req.tablet_id, _clone_req.replica_id, - _clone_req.schema_hash); + _clone_req.table_id, _clone_req.partition_id, _clone_req.schema_hash); } else { LOG_WARNING("failed to download snapshot from remote BE") .tag("url", remote_url_prefix) diff --git a/be/src/olap/task/engine_storage_migration_task.cpp b/be/src/olap/task/engine_storage_migration_task.cpp index 6ecefe47222..913ba6a7a4d 100644 --- a/be/src/olap/task/engine_storage_migration_task.cpp +++ b/be/src/olap/task/engine_storage_migration_task.cpp @@ -125,8 +125,9 @@ Status EngineStorageMigrationTask::_gen_and_write_header_to_hdr_file( // it will change rowset id and its create time // rowset create time is useful when load tablet from meta to check which tablet is the tablet to load - return SnapshotManager::instance()->convert_rowset_ids(full_path, tablet_id, - _tablet->replica_id(), schema_hash); + return SnapshotManager::instance()->convert_rowset_ids( + full_path, tablet_id, _tablet->replica_id(), _tablet->table_id(), + _tablet->partition_id(), schema_hash); } Status EngineStorageMigrationTask::_reload_tablet(const std::string& full_path) { diff --git a/be/src/runtime/snapshot_loader.cpp b/be/src/runtime/snapshot_loader.cpp index c4b2a390dfd..2915f1ad2b8 100644 --- a/be/src/runtime/snapshot_loader.cpp +++ b/be/src/runtime/snapshot_loader.cpp @@ -406,7 +406,8 @@ Status SnapshotLoader::move(const std::string& snapshot_path, TabletSharedPtr ta // rename the rowset ids and tabletid info in rowset meta Status convert_status = SnapshotManager::instance()->convert_rowset_ids( - snapshot_path, tablet_id, tablet->replica_id(), schema_hash); + snapshot_path, tablet_id, tablet->replica_id(), tablet->table_id(), + tablet->partition_id(), schema_hash); if (convert_status != Status::OK()) { std::stringstream ss; ss << "failed to convert rowsetids in snapshot: " << snapshot_path diff --git a/fe/fe-core/src/main/java/org/apache/doris/task/CloneTask.java b/fe/fe-core/src/main/java/org/apache/doris/task/CloneTask.java index d614bbb24e3..e8e28577af9 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/task/CloneTask.java +++ b/fe/fe-core/src/main/java/org/apache/doris/task/CloneTask.java @@ -88,6 +88,8 @@ public class CloneTask extends AgentTask { request.setDestPathHash(destPathHash); } request.setTimeoutS(timeoutS); + request.setPartitionId(partitionId); + request.setTableId(tableId); return request; } diff --git a/gensrc/thrift/AgentService.thrift b/gensrc/thrift/AgentService.thrift index 18a92149cf7..939f01925ab 100644 --- a/gensrc/thrift/AgentService.thrift +++ b/gensrc/thrift/AgentService.thrift @@ -210,6 +210,8 @@ struct TCloneReq { 9: optional i64 dest_path_hash; 10: optional i32 timeout_s; 11: optional Types.TReplicaId replica_id = 0 + 12: optional i64 partition_id + 13: optional i64 table_id = -1 } struct TCompactionReq { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org