This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new c0ba0cc67f5 [fix](fe) move some variables from Replica to LocalReplica 
which are not used in CloudReplica to reduce memory (#59460)
c0ba0cc67f5 is described below

commit c0ba0cc67f5eab7d407578cbf7217a990aa75563
Author: meiyi <[email protected]>
AuthorDate: Thu Jan 8 12:40:39 2026 +0800

    [fix](fe) move some variables from Replica to LocalReplica which are not 
used in CloudReplica to reduce memory (#59460)
---
 .../java/org/apache/doris/backup/RestoreJob.java   |   5 +-
 .../java/org/apache/doris/catalog/EnvFactory.java  |   4 +-
 .../org/apache/doris/catalog/LocalReplica.java     | 114 +++++++++++++++++++++
 .../java/org/apache/doris/catalog/OlapTable.java   |   2 +-
 .../java/org/apache/doris/catalog/Replica.java     |  48 +++++----
 .../org/apache/doris/clone/TabletSchedCtx.java     |   3 +-
 .../apache/doris/datasource/InternalCatalog.java   |   5 +-
 .../org/apache/doris/master/ReportHandler.java     |   3 +-
 .../org/apache/doris/persist/gson/GsonUtils.java   |   7 +-
 .../org/apache/doris/backup/CatalogMocker.java     |  31 +++---
 .../org/apache/doris/catalog/CatalogTestUtil.java  |   8 +-
 .../java/org/apache/doris/catalog/ReplicaTest.java |  12 +--
 .../java/org/apache/doris/catalog/TabletTest.java  |  22 ++--
 .../doris/clone/ClusterLoadStatisticsTest.java     |  16 +--
 .../org/apache/doris/clone/RebalancerTestUtil.java |   4 +-
 .../org/apache/doris/clone/TabletHealthTest.java   |   3 +-
 .../org/apache/doris/clone/TabletSchedCtxTest.java |  11 +-
 .../doris/cluster/DecommissionBackendTest.java     |   3 +-
 .../org/apache/doris/common/util/UnitTestUtil.java |   7 +-
 .../org/apache/doris/http/DorisHttpTestCase.java   |  13 +--
 20 files changed, 229 insertions(+), 92 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java 
b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
index a7c19ddafec..9d8ee1bcb75 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
@@ -30,6 +30,7 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.EnvFactory;
 import org.apache.doris.catalog.FsBroker;
 import org.apache.doris.catalog.Index;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.MaterializedIndex;
 import org.apache.doris.catalog.MaterializedIndex.IndexExtState;
 import org.apache.doris.catalog.MaterializedIndexMeta;
@@ -1537,8 +1538,8 @@ public class RestoreJob extends AbstractJob implements 
GsonPostProcessable {
                     for (Map.Entry<Tag, List<Long>> entry : beIds.entrySet()) {
                         for (Long beId : entry.getValue()) {
                             long newReplicaId = env.getNextId();
-                            Replica newReplica = new Replica(newReplicaId, 
beId, ReplicaState.NORMAL, visibleVersion,
-                                    schemaHash);
+                            Replica newReplica = new 
LocalReplica(newReplicaId, beId, ReplicaState.NORMAL,
+                                    visibleVersion, schemaHash);
                             newTablet.addReplica(newReplica, true /* is 
restore */);
                         }
                     }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/EnvFactory.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/EnvFactory.java
index de3d0923732..12f39db81d5 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/EnvFactory.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/EnvFactory.java
@@ -107,11 +107,11 @@ public class EnvFactory {
     }
 
     public Replica createReplica() {
-        return new Replica();
+        return new LocalReplica();
     }
 
     public Replica createReplica(Replica.ReplicaContext context) {
-        return new Replica(context);
+        return new LocalReplica(context);
     }
 
     public ReplicaAllocation createDefReplicaAllocation() {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/catalog/LocalReplica.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/LocalReplica.java
new file mode 100644
index 00000000000..86aeac885da
--- /dev/null
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/LocalReplica.java
@@ -0,0 +1,114 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.catalog;
+
+import org.apache.doris.thrift.TUniqueId;
+
+import com.google.gson.annotations.SerializedName;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+public class LocalReplica extends Replica {
+    private static final Logger LOG = LogManager.getLogger(LocalReplica.class);
+
+    @SerializedName(value = "rds", alternate = {"remoteDataSize"})
+    private volatile long remoteDataSize = 0;
+    @SerializedName(value = "ris", alternate = {"remoteInvertedIndexSize"})
+    private Long remoteInvertedIndexSize = 0L;
+    @SerializedName(value = "rss", alternate = {"remoteSegmentSize"})
+    private Long remoteSegmentSize = 0L;
+
+    private TUniqueId cooldownMetaId;
+    private long cooldownTerm = -1;
+
+    public LocalReplica() {
+        super();
+    }
+
+    public LocalReplica(ReplicaContext context) {
+        super(context);
+    }
+
+    // for rollup
+    // the new replica's version is -1 and last failed version is -1
+    public LocalReplica(long replicaId, long backendId, int schemaHash, 
ReplicaState state) {
+        super(replicaId, backendId, schemaHash, state);
+    }
+
+    // for create tablet and restore
+    public LocalReplica(long replicaId, long backendId, ReplicaState state, 
long version, int schemaHash) {
+        super(replicaId, backendId, state, version, schemaHash);
+    }
+
+    public LocalReplica(long replicaId, long backendId, long version, int 
schemaHash, long dataSize,
+            long remoteDataSize, long rowCount, ReplicaState state, long 
lastFailedVersion, long lastSuccessVersion) {
+        super(replicaId, backendId, version, schemaHash, dataSize, 
remoteDataSize, rowCount, state, lastFailedVersion,
+                lastSuccessVersion);
+        this.remoteDataSize = remoteDataSize;
+    }
+
+    @Override
+    public long getRemoteDataSize() {
+        return remoteDataSize;
+    }
+
+    @Override
+    public void setRemoteDataSize(long remoteDataSize) {
+        this.remoteDataSize = remoteDataSize;
+    }
+
+    @Override
+    public Long getRemoteInvertedIndexSize() {
+        return remoteInvertedIndexSize;
+    }
+
+    @Override
+    public void setRemoteInvertedIndexSize(long remoteInvertedIndexSize) {
+        this.remoteInvertedIndexSize = remoteInvertedIndexSize;
+    }
+
+    @Override
+    public Long getRemoteSegmentSize() {
+        return remoteSegmentSize;
+    }
+
+    @Override
+    public void setRemoteSegmentSize(long remoteSegmentSize) {
+        this.remoteSegmentSize = remoteSegmentSize;
+    }
+
+    @Override
+    public TUniqueId getCooldownMetaId() {
+        return cooldownMetaId;
+    }
+
+    @Override
+    public void setCooldownMetaId(TUniqueId cooldownMetaId) {
+        this.cooldownMetaId = cooldownMetaId;
+    }
+
+    @Override
+    public long getCooldownTerm() {
+        return cooldownTerm;
+    }
+
+    @Override
+    public void setCooldownTerm(long cooldownTerm) {
+        this.cooldownTerm = cooldownTerm;
+    }
+}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
index aab1597a6ac..adf1d794056 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
@@ -969,7 +969,7 @@ public class OlapTable extends Table implements 
MTMVRelatedTableIf, GsonPostProc
                         for (Map.Entry<Tag, List<Long>> entry3 : 
tag2beIds.entrySet()) {
                             for (Long beId : entry3.getValue()) {
                                 long newReplicaId = env.getNextId();
-                                Replica replica = new Replica(newReplicaId, 
beId, ReplicaState.NORMAL,
+                                Replica replica = new 
LocalReplica(newReplicaId, beId, ReplicaState.NORMAL,
                                         visibleVersion, schemaHash);
                                 newTablet.addReplica(replica, true /* is 
restore */);
                             }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Replica.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Replica.java
index 207fd6a8e8a..58ebdf4f5f3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Replica.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Replica.java
@@ -96,8 +96,6 @@ public class Replica {
     private int schemaHash = -1;
     @SerializedName(value = "ds", alternate = {"dataSize"})
     private volatile long dataSize = 0;
-    @SerializedName(value = "rds", alternate = {"remoteDataSize"})
-    private volatile long remoteDataSize = 0;
     @SerializedName(value = "rc", alternate = {"rowCount"})
     private volatile long rowCount = 0;
     @SerializedName(value = "st", alternate = {"state"})
@@ -120,14 +118,6 @@ public class Replica {
     @Getter
     @SerializedName(value = "lss", alternate = {"localSegmentSize"})
     private Long localSegmentSize = 0L;
-    @Setter
-    @Getter
-    @SerializedName(value = "ris", alternate = {"remoteInvertedIndexSize"})
-    private Long remoteInvertedIndexSize = 0L;
-    @Setter
-    @Getter
-    @SerializedName(value = "rss", alternate = {"remoteSegmentSize"})
-    private Long remoteSegmentSize = 0L;
 
     private volatile long totalVersionCount = -1;
     private volatile long visibleVersionCount = -1;
@@ -137,9 +127,6 @@ public class Replica {
     // bad means this Replica is unrecoverable, and we will delete it
     private boolean bad = false;
 
-    private TUniqueId cooldownMetaId;
-    private long cooldownTerm = -1;
-
     // A replica version should increase monotonically,
     // but backend may missing some versions due to disk failure or bugs.
     // FE should found these and mark the replica as missing versions.
@@ -217,7 +204,6 @@ public class Replica {
         this.schemaHash = schemaHash;
 
         this.dataSize = dataSize;
-        this.remoteDataSize = remoteDataSize;
         this.rowCount = rowCount;
         this.state = state;
         if (this.state == null) {
@@ -280,11 +266,33 @@ public class Replica {
     }
 
     public long getRemoteDataSize() {
-        return remoteDataSize;
+        return 0;
     }
 
     public void setRemoteDataSize(long remoteDataSize) {
-        this.remoteDataSize = remoteDataSize;
+        if (remoteDataSize > 0) {
+            throw new UnsupportedOperationException("setRemoteDataSize is not 
supported in Replica");
+        }
+    }
+
+    public Long getRemoteInvertedIndexSize() {
+        return 0L;
+    }
+
+    public void setRemoteInvertedIndexSize(long remoteInvertedIndexSize) {
+        if (remoteInvertedIndexSize > 0) {
+            throw new 
UnsupportedOperationException("setRemoteInvertedIndexSize is not supported in 
Replica");
+        }
+    }
+
+    public Long getRemoteSegmentSize() {
+        return 0L;
+    }
+
+    public void setRemoteSegmentSize(long remoteSegmentSize) {
+        if (remoteSegmentSize > 0) {
+            throw new UnsupportedOperationException("setRemoteSegmentSize is 
not supported in Replica");
+        }
     }
 
     public long getRowCount() {
@@ -344,19 +352,19 @@ public class Replica {
     }
 
     public TUniqueId getCooldownMetaId() {
-        return cooldownMetaId;
+        return null;
     }
 
     public void setCooldownMetaId(TUniqueId cooldownMetaId) {
-        this.cooldownMetaId = cooldownMetaId;
+        throw new UnsupportedOperationException("setCooldownMetaId is not 
supported in Replica");
     }
 
     public long getCooldownTerm() {
-        return cooldownTerm;
+        return -1;
     }
 
     public void setCooldownTerm(long cooldownTerm) {
-        this.cooldownTerm = cooldownTerm;
+        throw new UnsupportedOperationException("setCooldownTerm is not 
supported in Replica");
     }
 
     public boolean needFurtherRepair() {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletSchedCtx.java 
b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletSchedCtx.java
index 9e63a4fa1c4..bc1809d1a51 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/clone/TabletSchedCtx.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/clone/TabletSchedCtx.java
@@ -19,6 +19,7 @@ package org.apache.doris.clone;
 
 import org.apache.doris.catalog.Database;
 import org.apache.doris.catalog.Env;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.MaterializedIndex;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.Partition;
@@ -1017,7 +1018,7 @@ public class TabletSchedCtx implements 
Comparable<TabletSchedCtx> {
                 || tabletHealth.status == TabletStatus.REPLICA_RELOCATING || 
type == Type.BALANCE
                 || tabletHealth.status == TabletStatus.COLOCATE_MISMATCH
                 || tabletHealth.status == 
TabletStatus.REPLICA_MISSING_FOR_TAG) {
-            replica = new Replica(
+            replica = new LocalReplica(
                     Env.getCurrentEnv().getNextId(), destBackendId,
                     -1 /* version */, schemaHash,
                     -1 /* data size */, -1, -1 /* row count */,
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index 6302dbc9d18..ef84c7a1853 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -49,6 +49,7 @@ import org.apache.doris.catalog.InfoSchemaDb;
 import org.apache.doris.catalog.JdbcTable;
 import org.apache.doris.catalog.KeysType;
 import org.apache.doris.catalog.ListPartitionItem;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.MTMV;
 import org.apache.doris.catalog.MaterializedIndex;
 import org.apache.doris.catalog.MaterializedIndex.IndexExtState;
@@ -1112,7 +1113,7 @@ public class InternalCatalog implements 
CatalogIf<Database> {
             schemaHash = olapTable.getSchemaHashByIndexId(info.getIndexId());
         }
 
-        Replica replica = new Replica(info.getReplicaId(), 
info.getBackendId(), info.getVersion(), schemaHash,
+        Replica replica = new LocalReplica(info.getReplicaId(), 
info.getBackendId(), info.getVersion(), schemaHash,
                 info.getDataSize(),
                 info.getRemoteDataSize(), info.getRowCount(), 
ReplicaState.NORMAL, info.getLastFailedVersion(),
                 info.getLastSuccessVersion());
@@ -3350,7 +3351,7 @@ public class InternalCatalog implements 
CatalogIf<Database> {
             for (List<Long> backendIds : chosenBackendIds.values()) {
                 for (long backendId : backendIds) {
                     long replicaId = idGeneratorBuffer.getNextId();
-                    Replica replica = new Replica(replicaId, backendId, 
replicaState, version,
+                    Replica replica = new LocalReplica(replicaId, backendId, 
replicaState, version,
                             tabletMeta.getOldSchemaHash());
                     tablet.addReplica(replica);
                     totalReplicaNum++;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java 
b/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java
index d12853e1d55..93d0d10b055 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java
@@ -25,6 +25,7 @@ import org.apache.doris.catalog.Database;
 import org.apache.doris.catalog.DiskInfo;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.Index;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.MaterializedIndex;
 import org.apache.doris.catalog.MaterializedIndex.IndexState;
 import org.apache.doris.catalog.MaterializedIndexMeta;
@@ -1573,7 +1574,7 @@ public class ReportHandler extends Daemon {
                 }
 
                 // use replicaId reported by BE to maintain replica meta 
consistent between FE and BE
-                Replica replica = new Replica(replicaId, backendId, version, 
schemaHash,
+                Replica replica = new LocalReplica(replicaId, backendId, 
version, schemaHash,
                         dataSize, remoteDataSize, rowCount, 
ReplicaState.NORMAL,
                         lastFailedVersion, version);
                 tablet.addReplica(replica);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java 
b/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java
index aae6852eaf5..4e5bf10b5c7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/gson/GsonUtils.java
@@ -85,6 +85,7 @@ import org.apache.doris.catalog.JdbcResource;
 import org.apache.doris.catalog.JdbcTable;
 import org.apache.doris.catalog.ListPartitionInfo;
 import org.apache.doris.catalog.ListPartitionItem;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.LocalTablet;
 import org.apache.doris.catalog.MTMV;
 import org.apache.doris.catalog.MapType;
@@ -522,8 +523,7 @@ public class GsonUtils {
     // runtime adapter for class "CloudReplica".
     private static RuntimeTypeAdapterFactory<Replica> 
replicaTypeAdapterFactory = RuntimeTypeAdapterFactory
             .of(Replica.class, "clazz")
-            .registerDefaultSubtype(Replica.class)
-            .registerSubtype(Replica.class, Replica.class.getSimpleName())
+            .registerSubtype(LocalReplica.class, 
LocalReplica.class.getSimpleName())
             .registerSubtype(CloudReplica.class, 
CloudReplica.class.getSimpleName());
 
     private static RuntimeTypeAdapterFactory<Tablet> tabletTypeAdapterFactory;
@@ -536,9 +536,12 @@ public class GsonUtils {
         if (Config.isNotCloudMode()) {
             tabletTypeAdapterFactory.registerDefaultSubtype(LocalTablet.class);
             
tabletTypeAdapterFactory.registerCompatibleSubtype(LocalTablet.class, 
Tablet.class.getSimpleName());
+            
replicaTypeAdapterFactory.registerDefaultSubtype(LocalReplica.class);
+            
replicaTypeAdapterFactory.registerCompatibleSubtype(LocalReplica.class, 
Replica.class.getSimpleName());
         } else {
             // compatible with old cloud code.
             tabletTypeAdapterFactory.registerDefaultSubtype(CloudTablet.class);
+            
replicaTypeAdapterFactory.registerDefaultSubtype(CloudReplica.class);
         }
     }
 
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/backup/CatalogMocker.java 
b/fe/fe-core/src/test/java/org/apache/doris/backup/CatalogMocker.java
index 67ac384a537..bbf77f992a9 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/backup/CatalogMocker.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/backup/CatalogMocker.java
@@ -27,6 +27,7 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.FakeEditLog;
 import org.apache.doris.catalog.HashDistributionInfo;
 import org.apache.doris.catalog.KeysType;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.LocalTablet;
 import org.apache.doris.catalog.MaterializedIndex;
 import org.apache.doris.catalog.MaterializedIndex.IndexState;
@@ -252,9 +253,9 @@ public class CatalogMocker {
         TabletMeta tabletMeta = new TabletMeta(TEST_DB_ID, TEST_TBL_ID, 
TEST_SINGLE_PARTITION_ID,
                                                TEST_TBL_ID, SCHEMA_HASH, 
TStorageMedium.HDD);
         baseIndex.addTablet(tablet0, tabletMeta);
-        Replica replica0 = new Replica(TEST_REPLICA0_ID, BACKEND1_ID, 0, 
ReplicaState.NORMAL);
-        Replica replica1 = new Replica(TEST_REPLICA1_ID, BACKEND2_ID, 0, 
ReplicaState.NORMAL);
-        Replica replica2 = new Replica(TEST_REPLICA2_ID, BACKEND3_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica0 = new LocalReplica(TEST_REPLICA0_ID, BACKEND1_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica1 = new LocalReplica(TEST_REPLICA1_ID, BACKEND2_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica2 = new LocalReplica(TEST_REPLICA2_ID, BACKEND3_ID, 0, 
ReplicaState.NORMAL);
 
         tablet0.addReplica(replica0);
         tablet0.addReplica(replica1);
@@ -326,9 +327,9 @@ public class CatalogMocker {
         TabletMeta tabletMetaBaseTabletP1 = new TabletMeta(TEST_DB_ID, 
TEST_TBL2_ID, TEST_PARTITION1_ID,
                                                            TEST_TBL2_ID, 
SCHEMA_HASH, TStorageMedium.HDD);
         baseIndexP1.addTablet(baseTabletP1, tabletMetaBaseTabletP1);
-        Replica replica3 = new Replica(TEST_REPLICA3_ID, BACKEND1_ID, 0, 
ReplicaState.NORMAL);
-        Replica replica4 = new Replica(TEST_REPLICA4_ID, BACKEND2_ID, 0, 
ReplicaState.NORMAL);
-        Replica replica5 = new Replica(TEST_REPLICA5_ID, BACKEND3_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica3 = new LocalReplica(TEST_REPLICA3_ID, BACKEND1_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica4 = new LocalReplica(TEST_REPLICA4_ID, BACKEND2_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica5 = new LocalReplica(TEST_REPLICA5_ID, BACKEND3_ID, 0, 
ReplicaState.NORMAL);
 
         baseTabletP1.addReplica(replica3);
         baseTabletP1.addReplica(replica4);
@@ -338,9 +339,9 @@ public class CatalogMocker {
         TabletMeta tabletMetaBaseTabletP2 = new TabletMeta(TEST_DB_ID, 
TEST_TBL2_ID, TEST_PARTITION2_ID,
                                                            TEST_TBL2_ID, 
SCHEMA_HASH, TStorageMedium.HDD);
         baseIndexP2.addTablet(baseTabletP2, tabletMetaBaseTabletP2);
-        Replica replica6 = new Replica(TEST_REPLICA6_ID, BACKEND1_ID, 0, 
ReplicaState.NORMAL);
-        Replica replica7 = new Replica(TEST_REPLICA7_ID, BACKEND2_ID, 0, 
ReplicaState.NORMAL);
-        Replica replica8 = new Replica(TEST_REPLICA8_ID, BACKEND3_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica6 = new LocalReplica(TEST_REPLICA6_ID, BACKEND1_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica7 = new LocalReplica(TEST_REPLICA7_ID, BACKEND2_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica8 = new LocalReplica(TEST_REPLICA8_ID, BACKEND3_ID, 0, 
ReplicaState.NORMAL);
 
         baseTabletP2.addReplica(replica6);
         baseTabletP2.addReplica(replica7);
@@ -359,9 +360,9 @@ public class CatalogMocker {
                                                              
TEST_ROLLUP_TABLET_P1_ID, ROLLUP_SCHEMA_HASH,
                                                              
TStorageMedium.HDD);
         rollupIndexP1.addTablet(rollupTabletP1, tabletMetaRollupTabletP1);
-        Replica replica9 = new Replica(TEST_REPLICA9_ID, BACKEND1_ID, 0, 
ReplicaState.NORMAL);
-        Replica replica10 = new Replica(TEST_REPLICA10_ID, BACKEND2_ID, 0, 
ReplicaState.NORMAL);
-        Replica replica11 = new Replica(TEST_REPLICA11_ID, BACKEND3_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica9 = new LocalReplica(TEST_REPLICA9_ID, BACKEND1_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica10 = new LocalReplica(TEST_REPLICA10_ID, BACKEND2_ID, 
0, ReplicaState.NORMAL);
+        Replica replica11 = new LocalReplica(TEST_REPLICA11_ID, BACKEND3_ID, 
0, ReplicaState.NORMAL);
 
         rollupTabletP1.addReplica(replica9);
         rollupTabletP1.addReplica(replica10);
@@ -376,9 +377,9 @@ public class CatalogMocker {
                                                              
TEST_ROLLUP_TABLET_P2_ID, ROLLUP_SCHEMA_HASH,
                                                              
TStorageMedium.HDD);
         rollupIndexP2.addTablet(rollupTabletP2, tabletMetaRollupTabletP2);
-        Replica replica12 = new Replica(TEST_REPLICA12_ID, BACKEND1_ID, 0, 
ReplicaState.NORMAL);
-        Replica replica13 = new Replica(TEST_REPLICA13_ID, BACKEND2_ID, 0, 
ReplicaState.NORMAL);
-        Replica replica14 = new Replica(TEST_REPLICA14_ID, BACKEND3_ID, 0, 
ReplicaState.NORMAL);
+        Replica replica12 = new LocalReplica(TEST_REPLICA12_ID, BACKEND1_ID, 
0, ReplicaState.NORMAL);
+        Replica replica13 = new LocalReplica(TEST_REPLICA13_ID, BACKEND2_ID, 
0, ReplicaState.NORMAL);
+        Replica replica14 = new LocalReplica(TEST_REPLICA14_ID, BACKEND3_ID, 
0, ReplicaState.NORMAL);
         rollupTabletP2.addReplica(replica12);
         rollupTabletP2.addReplica(replica13);
         rollupTabletP2.addReplica(replica14);
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogTestUtil.java 
b/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogTestUtil.java
index 3d7efdc96c7..5e4f90d2251 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogTestUtil.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/CatalogTestUtil.java
@@ -188,11 +188,11 @@ public class CatalogTestUtil {
             replica3 = new CloudReplica(testReplicaId3, testBackendId3, 
Replica.ReplicaState.NORMAL, version,
                     0, dbId, tableId, partitionId, indexId, 2);
         } else {
-            replica1 = new Replica(testReplicaId1, testBackendId1, version, 0, 
0L, 0L, 0L,
+            replica1 = new LocalReplica(testReplicaId1, testBackendId1, 
version, 0, 0L, 0L, 0L,
                     Replica.ReplicaState.NORMAL, -1, 0);
-            replica2 = new Replica(testReplicaId2, testBackendId2, version, 0, 
0L, 0L, 0L,
+            replica2 = new LocalReplica(testReplicaId2, testBackendId2, 
version, 0, 0L, 0L, 0L,
                     Replica.ReplicaState.NORMAL, -1, 0);
-            replica3 = new Replica(testReplicaId3, testBackendId3, version, 0, 
0L, 0L, 0L,
+            replica3 = new LocalReplica(testReplicaId3, testBackendId3, 
version, 0, 0L, 0L, 0L,
                     Replica.ReplicaState.NORMAL, -1, 0);
         }
 
@@ -263,7 +263,7 @@ public class CatalogTestUtil {
             replica = new CloudReplica(testReplicaId4, testBackendId1, 
Replica.ReplicaState.NORMAL, testStartVersion,
                     0, db.getId(), testTableId2, testPartitionId2, 
testIndexId2, 0);
         } else {
-            replica = new Replica(testReplicaId4, testBackendId1, 
testStartVersion, 0, 0L, 0L, 0L,
+            replica = new LocalReplica(testReplicaId4, testBackendId1, 
testStartVersion, 0, 0L, 0L, 0L,
                     Replica.ReplicaState.NORMAL, -1, 0);
         }
 
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/ReplicaTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/catalog/ReplicaTest.java
index 101ec619e76..2c7d32a599d 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/ReplicaTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/ReplicaTest.java
@@ -54,7 +54,7 @@ public class ReplicaTest {
         version = 2;
         dataSize = 9999;
         rowCount = 1024;
-        replica = new Replica(replicaId, backendId, version, 0, dataSize, 0, 
rowCount, ReplicaState.NORMAL, 0, version);
+        replica = new LocalReplica(replicaId, backendId, version, 0, dataSize, 
0, rowCount, ReplicaState.NORMAL, 0, version);
     }
 
     @Test
@@ -84,13 +84,13 @@ public class ReplicaTest {
         List<Replica> list1 = new ArrayList<Replica>();
         List<Replica> list2 = new ArrayList<Replica>();
         for (int count = 0; count < 10; ++count) {
-            Replica olapReplica = new Replica(100L * count, 100L * count, 100L 
* count, 0,
+            Replica olapReplica = new LocalReplica(100L * count, 100L * count, 
100L * count, 0,
                                               100L * count, 0,  100 * count, 
ReplicaState.NORMAL, 0, 100L * count);
             list1.add(olapReplica);
             Text.writeString(dos, GsonUtils.GSON.toJson(olapReplica));
         }
 
-        Replica replica = new Replica(10L, 20L, 0, null);
+        Replica replica = new LocalReplica(10L, 20L, 0, null);
         list1.add(replica);
         Text.writeString(dos, GsonUtils.GSON.toJson(replica));
         dos.flush();
@@ -125,7 +125,7 @@ public class ReplicaTest {
 
     @Test
     public void testUpdateVersion1() {
-        Replica originalReplica = new Replica(10000, 20000, 3, 0, 100, 0, 78, 
ReplicaState.NORMAL, 0, 3);
+        Replica originalReplica = new LocalReplica(10000, 20000, 3, 0, 100, 0, 
78, ReplicaState.NORMAL, 0, 3);
         // new version is little than original version, it is invalid the 
version will not update
         originalReplica.updateVersion(2);
         Assert.assertEquals(3, originalReplica.getVersion());
@@ -133,7 +133,7 @@ public class ReplicaTest {
 
     @Test
     public void testUpdateVersion2() {
-        Replica originalReplica = new Replica(10000, 20000, 3, 0, 100, 0, 78, 
ReplicaState.NORMAL, 0, 0);
+        Replica originalReplica = new LocalReplica(10000, 20000, 3, 0, 100, 0, 
78, ReplicaState.NORMAL, 0, 0);
         originalReplica.updateVersion(3);
         // if new version >= current version and last success version <= new 
version, then last success version should be updated
         Assert.assertEquals(3, originalReplica.getLastSuccessVersion());
@@ -143,7 +143,7 @@ public class ReplicaTest {
     @Test
     public void testUpdateVersion3() {
         // version(3) ---> last failed version (8) ---> last success 
version(10)
-        Replica originalReplica = new Replica(10000, 20000, 3, 111, 0, 0, 78, 
ReplicaState.NORMAL, 0, 0);
+        Replica originalReplica = new LocalReplica(10000, 20000, 3, 111, 0, 0, 
78, ReplicaState.NORMAL, 0, 0);
         originalReplica.updateLastFailedVersion(8);
         Assert.assertEquals(3, originalReplica.getLastSuccessVersion());
         Assert.assertEquals(3, originalReplica.getVersion());
diff --git a/fe/fe-core/src/test/java/org/apache/doris/catalog/TabletTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/catalog/TabletTest.java
index ba3b4729bd5..6d20800b52b 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/catalog/TabletTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/catalog/TabletTest.java
@@ -83,9 +83,9 @@ public class TabletTest {
         tablet = new LocalTablet(1);
         TabletMeta tabletMeta = new TabletMeta(10, 20, 30, 40, 1, 
TStorageMedium.HDD);
         invertedIndex.addTablet(1, tabletMeta);
-        replica1 = new Replica(1L, 1L, 100L, 0, 200000L, 0, 3000L, 
ReplicaState.NORMAL, 0, 0);
-        replica2 = new Replica(2L, 2L, 100L, 0, 200000L, 0, 3000L, 
ReplicaState.NORMAL, 0, 0);
-        replica3 = new Replica(3L, 3L, 100L, 0, 200000L, 0, 3000L, 
ReplicaState.NORMAL, 0, 0);
+        replica1 = new LocalReplica(1L, 1L, 100L, 0, 200000L, 0, 3000L, 
ReplicaState.NORMAL, 0, 0);
+        replica2 = new LocalReplica(2L, 2L, 100L, 0, 200000L, 0, 3000L, 
ReplicaState.NORMAL, 0, 0);
+        replica3 = new LocalReplica(3L, 3L, 100L, 0, 200000L, 0, 3000L, 
ReplicaState.NORMAL, 0, 0);
         tablet.addReplica(replica1);
         tablet.addReplica(replica2);
         tablet.addReplica(replica3);
@@ -147,9 +147,9 @@ public class TabletTest {
         Assert.assertEquals(rTablet1, rTablet1);
 
         Tablet tablet2 = new LocalTablet(1);
-        Replica replica1 = new Replica(1L, 1L, 100L, 0, 200000L, 0, 3000L, 
ReplicaState.NORMAL, 0, 0);
-        Replica replica2 = new Replica(2L, 2L, 100L, 0, 200000L, 0, 3000L, 
ReplicaState.NORMAL, 0, 0);
-        Replica replica3 = new Replica(3L, 3L, 100L, 0, 200000L, 0, 3000L, 
ReplicaState.NORMAL, 0, 0);
+        Replica replica1 = new LocalReplica(1L, 1L, 100L, 0, 200000L, 0, 
3000L, ReplicaState.NORMAL, 0, 0);
+        Replica replica2 = new LocalReplica(2L, 2L, 100L, 0, 200000L, 0, 
3000L, ReplicaState.NORMAL, 0, 0);
+        Replica replica3 = new LocalReplica(3L, 3L, 100L, 0, 200000L, 0, 
3000L, ReplicaState.NORMAL, 0, 0);
         tablet2.addReplica(replica1);
         tablet2.addReplica(replica2);
         Assert.assertNotEquals(tablet2, tablet);
@@ -159,7 +159,7 @@ public class TabletTest {
         Tablet tablet3 = new LocalTablet(1);
         tablet3.addReplica(replica1);
         tablet3.addReplica(replica2);
-        tablet3.addReplica(new Replica(4L, 4L, 100L, 0, 200000L, 0, 3000L, 
ReplicaState.NORMAL, 0, 0));
+        tablet3.addReplica(new LocalReplica(4L, 4L, 100L, 0, 200000L, 0, 
3000L, ReplicaState.NORMAL, 0, 0));
         Assert.assertNotEquals(tablet3, tablet);
 
         dis.close();
@@ -182,7 +182,7 @@ public class TabletTest {
                 versionAndSuccessVersion = 99L;
                 lastFailVersion = 100L;
             }
-            tablet.addReplica(new Replica(replicaId++, pair.first, 
versionAndSuccessVersion, 0,
+            tablet.addReplica(new LocalReplica(replicaId++, pair.first, 
versionAndSuccessVersion, 0,
                     200000L, 0, 3000L, ReplicaState.NORMAL, lastFailVersion, 
versionAndSuccessVersion));
         }
         Assert.assertEquals(tablet.getColocateHealth(100L, new 
ReplicaAllocation((short) 3),
@@ -222,7 +222,7 @@ public class TabletTest {
         long row = t.getMinReplicaRowCount(1);
         Assert.assertEquals(0, row);
 
-        Replica r1 = new Replica(1, 1, 10, 0, 0, 0, 100, ReplicaState.NORMAL, 
0, 10);
+        Replica r1 = new LocalReplica(1, 1, 10, 0, 0, 0, 100, 
ReplicaState.NORMAL, 0, 10);
         t.addReplica(r1);
         row = t.getMinReplicaRowCount(10);
         Assert.assertEquals(100, row);
@@ -230,8 +230,8 @@ public class TabletTest {
         row = t.getMinReplicaRowCount(11);
         Assert.assertEquals(0, row);
 
-        Replica r2 = new Replica(2, 2, 10, 0, 0, 0, 110, ReplicaState.NORMAL, 
0, 10);
-        Replica r3 = new Replica(3, 3, 10, 0, 0, 0, 90, ReplicaState.NORMAL, 
0, 10);
+        Replica r2 = new LocalReplica(2, 2, 10, 0, 0, 0, 110, 
ReplicaState.NORMAL, 0, 10);
+        Replica r3 = new LocalReplica(3, 3, 10, 0, 0, 0, 90, 
ReplicaState.NORMAL, 0, 10);
         t.addReplica(r2);
         t.addReplica(r3);
         row = t.getMinReplicaRowCount(11);
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/clone/ClusterLoadStatisticsTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/clone/ClusterLoadStatisticsTest.java
index f1c3a5c8b38..118018f3b58 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/clone/ClusterLoadStatisticsTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/clone/ClusterLoadStatisticsTest.java
@@ -19,7 +19,7 @@ package org.apache.doris.clone;
 
 import org.apache.doris.catalog.DiskInfo;
 import org.apache.doris.catalog.Env;
-import org.apache.doris.catalog.Replica;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.Replica.ReplicaState;
 import org.apache.doris.catalog.TabletInvertedIndex;
 import org.apache.doris.catalog.TabletMeta;
@@ -151,17 +151,17 @@ public class ClusterLoadStatisticsTest {
         invertedIndex = new TabletInvertedIndex();
 
         invertedIndex.addTablet(50000, new TabletMeta(1, 2, 3, 4, 5, 
TStorageMedium.HDD));
-        invertedIndex.addReplica(50000, new Replica(50001, be1.getId(), 0, 
ReplicaState.NORMAL));
-        invertedIndex.addReplica(50000, new Replica(50002, be2.getId(), 0, 
ReplicaState.NORMAL));
-        invertedIndex.addReplica(50000, new Replica(50003, be3.getId(), 0, 
ReplicaState.NORMAL));
+        invertedIndex.addReplica(50000, new LocalReplica(50001, be1.getId(), 
0, ReplicaState.NORMAL));
+        invertedIndex.addReplica(50000, new LocalReplica(50002, be2.getId(), 
0, ReplicaState.NORMAL));
+        invertedIndex.addReplica(50000, new LocalReplica(50003, be3.getId(), 
0, ReplicaState.NORMAL));
 
         invertedIndex.addTablet(60000, new TabletMeta(1, 2, 3, 4, 5, 
TStorageMedium.HDD));
-        invertedIndex.addReplica(60000, new Replica(60002, be2.getId(), 0, 
ReplicaState.NORMAL));
-        invertedIndex.addReplica(60000, new Replica(60003, be3.getId(), 0, 
ReplicaState.NORMAL));
+        invertedIndex.addReplica(60000, new LocalReplica(60002, be2.getId(), 
0, ReplicaState.NORMAL));
+        invertedIndex.addReplica(60000, new LocalReplica(60003, be3.getId(), 
0, ReplicaState.NORMAL));
 
         invertedIndex.addTablet(70000, new TabletMeta(1, 2, 3, 4, 5, 
TStorageMedium.HDD));
-        invertedIndex.addReplica(70000, new Replica(70002, be2.getId(), 0, 
ReplicaState.NORMAL));
-        invertedIndex.addReplica(70000, new Replica(70003, be3.getId(), 0, 
ReplicaState.NORMAL));
+        invertedIndex.addReplica(70000, new LocalReplica(70002, be2.getId(), 
0, ReplicaState.NORMAL));
+        invertedIndex.addReplica(70000, new LocalReplica(70003, be3.getId(), 
0, ReplicaState.NORMAL));
     }
 
     @Test
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/clone/RebalancerTestUtil.java 
b/fe/fe-core/src/test/java/org/apache/doris/clone/RebalancerTestUtil.java
index 1f55c6fd0d9..6f1d14ebf59 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/clone/RebalancerTestUtil.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/clone/RebalancerTestUtil.java
@@ -20,6 +20,7 @@ package org.apache.doris.clone;
 import org.apache.doris.catalog.Database;
 import org.apache.doris.catalog.DiskInfo;
 import org.apache.doris.catalog.Env;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.LocalTablet;
 import org.apache.doris.catalog.MaterializedIndex;
 import org.apache.doris.catalog.MysqlCompatibleDatabase;
@@ -100,7 +101,8 @@ public class RebalancerTestUtil {
         invertedIndex.addTablet(tablet.getId(), tabletMeta);
 
         IntStream.range(0, beIds.size()).forEach(i -> {
-            Replica replica = new Replica(tablet.getId() + i, beIds.get(i), 
Replica.ReplicaState.NORMAL, 1, tabletMeta.getOldSchemaHash());
+            Replica replica = new LocalReplica(tablet.getId() + i, 
beIds.get(i), Replica.ReplicaState.NORMAL, 1,
+                    tabletMeta.getOldSchemaHash());
             // We've set pathHash to beId for simplicity
             replica.setPathHash(beIds.get(i));
             if (replicaSizes != null) {
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/clone/TabletHealthTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/clone/TabletHealthTest.java
index 320bff45229..bea57e3d6fc 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/clone/TabletHealthTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/clone/TabletHealthTest.java
@@ -21,6 +21,7 @@ import org.apache.doris.catalog.ColocateTableIndex;
 import org.apache.doris.catalog.ColocateTableIndex.GroupId;
 import org.apache.doris.catalog.Database;
 import org.apache.doris.catalog.Env;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.MaterializedIndex.IndexExtState;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.Partition;
@@ -333,7 +334,7 @@ public class TabletHealthTest extends TestWithFeService {
         // temporary delete replica 1
         tablet.deleteReplica(tablet.getReplicas().get(1));
         Assertions.assertFalse(tablet.getBackendIds().contains(deleteBeId));
-        Replica replica = new Replica(1234567890L, deleteBeId, 
Replica.ReplicaState.NORMAL, 8L, 0);
+        Replica replica = new LocalReplica(1234567890L, deleteBeId, 
Replica.ReplicaState.NORMAL, 8L, 0);
         // add a `error` replica on other backend
         tablet.addReplica(replica);
         // colocate don't relocate because no be dead
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/clone/TabletSchedCtxTest.java 
b/fe/fe-core/src/test/java/org/apache/doris/clone/TabletSchedCtxTest.java
index 8b316c474a8..f10031f91f3 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/clone/TabletSchedCtxTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/clone/TabletSchedCtxTest.java
@@ -19,6 +19,7 @@ package org.apache.doris.clone;
 
 import org.apache.doris.catalog.Database;
 import org.apache.doris.catalog.Env;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.MaterializedIndex;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.Partition;
@@ -163,31 +164,31 @@ public class TabletSchedCtxTest extends TestWithFeService 
{
         TabletSchedCtx.CloneSrcComparator countComparator
                 = new TabletSchedCtx.CloneSrcComparator();
         List<Replica> replicaList = Lists.newArrayList();
-        Replica replica1 = new Replica();
+        Replica replica1 = new LocalReplica();
         replica1.setVisibleVersionCount(100);
         replica1.setState(Replica.ReplicaState.NORMAL);
         // user drop true
         replica1.setUserDropTime(System.currentTimeMillis());
 
-        Replica replica2 = new Replica();
+        Replica replica2 = new LocalReplica();
         replica2.setVisibleVersionCount(50);
         replica2.setState(Replica.ReplicaState.NORMAL);
         // user drop false
         replica2.setUserDropTime(-1);
 
-        Replica replica3 = new Replica();
+        Replica replica3 = new LocalReplica();
         replica3.setVisibleVersionCount(-1);
         replica3.setState(Replica.ReplicaState.NORMAL);
         // user drop false
         replica3.setUserDropTime(-1);
 
-        Replica replica4 = new Replica();
+        Replica replica4 = new LocalReplica();
         replica4.setVisibleVersionCount(200);
         replica4.setState(Replica.ReplicaState.NORMAL);
         // user drop false
         replica4.setUserDropTime(-1);
 
-        Replica replica5 = new Replica();
+        Replica replica5 = new LocalReplica();
         replica5.setVisibleVersionCount(-1);
         replica5.setState(Replica.ReplicaState.NORMAL);
         // user drop true
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/cluster/DecommissionBackendTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/cluster/DecommissionBackendTest.java
index 7f7ee401fa6..d8557843d89 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/cluster/DecommissionBackendTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/cluster/DecommissionBackendTest.java
@@ -19,6 +19,7 @@ package org.apache.doris.cluster;
 
 import org.apache.doris.catalog.Database;
 import org.apache.doris.catalog.Env;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.MaterializedIndex;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.Partition;
@@ -308,7 +309,7 @@ public class DecommissionBackendTest extends 
TestWithFeService {
         TabletInvertedIndex invertIndex = Env.getCurrentInvertedIndex();
         long fakeTabletId =  123123123L;
         TabletMeta fakeTabletMeta = new TabletMeta(1234567L, 1234568L, 
1234569L, 1234570L, 0, TStorageMedium.HDD);
-        Replica fakeReplica = new Replica(1234571L, srcBackend.getId(), 0, 
Replica.ReplicaState.NORMAL);
+        Replica fakeReplica = new LocalReplica(1234571L, srcBackend.getId(), 
0, Replica.ReplicaState.NORMAL);
 
         Supplier<List<Long>> getNotInRecycleBinTablets = () -> {
             List<Long> tabletIds = Lists.newArrayList();
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/common/util/UnitTestUtil.java 
b/fe/fe-core/src/test/java/org/apache/doris/common/util/UnitTestUtil.java
index 9c81c279fc0..6133688e158 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/common/util/UnitTestUtil.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/common/util/UnitTestUtil.java
@@ -22,6 +22,7 @@ import org.apache.doris.catalog.Column;
 import org.apache.doris.catalog.DataProperty;
 import org.apache.doris.catalog.Database;
 import org.apache.doris.catalog.KeysType;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.LocalTablet;
 import org.apache.doris.catalog.MaterializedIndex;
 import org.apache.doris.catalog.MaterializedIndex.IndexState;
@@ -72,9 +73,9 @@ public class UnitTestUtil {
                                         long tabletId, long backendId, long 
version) {
         // replica
         long replicaId = 0;
-        Replica replica1 = new Replica(replicaId, backendId, 
ReplicaState.NORMAL, version, 0);
-        Replica replica2 = new Replica(replicaId + 1, backendId + 1, 
ReplicaState.NORMAL, version, 0);
-        Replica replica3 = new Replica(replicaId + 2, backendId + 2, 
ReplicaState.NORMAL, version, 0);
+        Replica replica1 = new LocalReplica(replicaId, backendId, 
ReplicaState.NORMAL, version, 0);
+        Replica replica2 = new LocalReplica(replicaId + 1, backendId + 1, 
ReplicaState.NORMAL, version, 0);
+        Replica replica3 = new LocalReplica(replicaId + 2, backendId + 2, 
ReplicaState.NORMAL, version, 0);
 
         // tablet
         Tablet tablet = new LocalTablet(tabletId);
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/http/DorisHttpTestCase.java 
b/fe/fe-core/src/test/java/org/apache/doris/http/DorisHttpTestCase.java
index bd42f756828..a57f3b497e9 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/http/DorisHttpTestCase.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/http/DorisHttpTestCase.java
@@ -26,6 +26,7 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.EsResource;
 import org.apache.doris.catalog.EsTable;
 import org.apache.doris.catalog.KeysType;
+import org.apache.doris.catalog.LocalReplica;
 import org.apache.doris.catalog.LocalTablet;
 import org.apache.doris.catalog.MaterializedIndex;
 import org.apache.doris.catalog.OlapTable;
@@ -145,12 +146,12 @@ public abstract class DorisHttpTestCase {
         columns.add(k1);
         columns.add(k2);
 
-        Replica replica1 = new Replica(testReplicaId1, testBackendId1, 
testStartVersion, testSchemaHash, 1024000L, 0, 2000L,
-                Replica.ReplicaState.NORMAL, -1, 0);
-        Replica replica2 = new Replica(testReplicaId2, testBackendId2, 
testStartVersion, testSchemaHash, 1024000L, 0, 2000L,
-                Replica.ReplicaState.NORMAL, -1, 0);
-        Replica replica3 = new Replica(testReplicaId3, testBackendId3, 
testStartVersion, testSchemaHash, 1024000L, 0, 2000L,
-                Replica.ReplicaState.NORMAL, -1, 0);
+        Replica replica1 = new LocalReplica(testReplicaId1, testBackendId1, 
testStartVersion, testSchemaHash, 1024000L,
+                0, 2000L, Replica.ReplicaState.NORMAL, -1, 0);
+        Replica replica2 = new LocalReplica(testReplicaId2, testBackendId2, 
testStartVersion, testSchemaHash, 1024000L,
+                0, 2000L, Replica.ReplicaState.NORMAL, -1, 0);
+        Replica replica3 = new LocalReplica(testReplicaId3, testBackendId3, 
testStartVersion, testSchemaHash, 1024000L,
+                0, 2000L, Replica.ReplicaState.NORMAL, -1, 0);
 
         // tablet
         Tablet tablet = new LocalTablet(tabletId);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to