From 72de9c1b8fa930043d2dfb50d293447fac85a40c Mon Sep 17 00:00:00 2001 From: Yongqiang YANG <98214048+dataroaring@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:54:48 +0800 Subject: [PATCH] [fix](autoinc) avoid duplicated auto inc when role of fe changes (#36961) ## Proposed changes pick #36960 Issue Number: close #xxx --- .../org/apache/doris/catalog/AutoIncrementGenerator.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/AutoIncrementGenerator.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/AutoIncrementGenerator.java index 9528f07e0c..be11036085 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/AutoIncrementGenerator.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/AutoIncrementGenerator.java @@ -23,6 +23,7 @@ import org.apache.doris.common.io.Text; import org.apache.doris.common.io.Writable; import org.apache.doris.persist.AutoIncrementIdUpdateLog; import org.apache.doris.persist.EditLog; +import org.apache.doris.persist.gson.GsonPostProcessable; import org.apache.doris.persist.gson.GsonUtils; import com.google.common.base.Preconditions; @@ -34,7 +35,7 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; -public class AutoIncrementGenerator implements Writable { +public class AutoIncrementGenerator implements Writable, GsonPostProcessable { private static final Logger LOG = LogManager.getLogger(AutoIncrementGenerator.class); public static final long NEXT_ID_INIT_VALUE = 1; @@ -102,4 +103,10 @@ public class AutoIncrementGenerator implements Writable { public static AutoIncrementGenerator read(DataInput in) throws IOException { return GsonUtils.GSON.fromJson(Text.readString(in), AutoIncrementGenerator.class); } + + @Override + public void gsonPostProcess() throws IOException { + nextId = batchEndId; + } + }