This is an automated email from the ASF dual-hosted git repository.
w41ter pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new e8d29186007 [opt] (binlog) Support Modify ViewDef binlog #41167
(#44520)
e8d29186007 is described below
commit e8d29186007a6ed8a6fb8c47cbe55a9eb68727ff
Author: walter <[email protected]>
AuthorDate: Mon Nov 25 15:46:50 2024 +0800
[opt] (binlog) Support Modify ViewDef binlog #41167 (#44520)
cherry pick from #41167
Co-authored-by: yanmingfu <[email protected]>
Co-authored-by: yanmingfu <[email protected]>
---
.../org/apache/doris/binlog/BinlogManager.java | 65 +++++++++++++---------
.../org/apache/doris/persist/AlterViewInfo.java | 4 ++
.../java/org/apache/doris/persist/EditLog.java | 7 ++-
gensrc/thrift/FrontendService.thrift | 4 +-
4 files changed, 50 insertions(+), 30 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/binlog/BinlogManager.java
b/fe/fe-core/src/main/java/org/apache/doris/binlog/BinlogManager.java
index ee89c14b40c..d4be686a14b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/binlog/BinlogManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/binlog/BinlogManager.java
@@ -25,6 +25,7 @@ import org.apache.doris.common.Pair;
import org.apache.doris.common.proc.BaseProcResult;
import org.apache.doris.common.proc.ProcResult;
import org.apache.doris.persist.AlterDatabasePropertyInfo;
+import org.apache.doris.persist.AlterViewInfo;
import org.apache.doris.persist.BarrierLog;
import org.apache.doris.persist.BatchModifyPartitionsInfo;
import org.apache.doris.persist.BinlogGcInfo;
@@ -322,6 +323,43 @@ public class BinlogManager {
addBinlog(dbId, tableIds, commitSeq, timestamp, type, data, false,
record);
}
+ public void addTableRename(TableInfo info, long commitSeq) {
+ long dbId = info.getDbId();
+ long tableId = info.getTableId();
+ TBinlogType type = TBinlogType.RENAME_TABLE;
+ String data = info.toJson();
+ BarrierLog log = new BarrierLog(dbId, tableId, type, data);
+ addBarrierLog(log, commitSeq);
+ }
+
+ public void addColumnRename(TableRenameColumnInfo info, long commitSeq) {
+ long dbId = info.getDbId();
+ long tableId = info.getTableId();
+ TBinlogType type = TBinlogType.RENAME_COLUMN;
+ String data = info.toJson();
+ BarrierLog log = new BarrierLog(dbId, tableId, type, data);
+ addBarrierLog(log, commitSeq);
+ }
+
+ public void addModifyComment(ModifyCommentOperationLog info, long
commitSeq) {
+ long dbId = info.getDbId();
+ long tableId = info.getTblId();
+ TBinlogType type = TBinlogType.MODIFY_COMMENT;
+ String data = info.toJson();
+ BarrierLog log = new BarrierLog(dbId, tableId, type, data);
+ addBarrierLog(log, commitSeq);
+ }
+
+ // add Modify view
+ public void addModifyViewDef(AlterViewInfo alterViewInfo, long commitSeq) {
+ long dbId = alterViewInfo.getDbId();
+ long tableId = alterViewInfo.getTableId();
+ TBinlogType type = TBinlogType.MODIFY_VIEW_DEF;
+ String data = alterViewInfo.toJson();
+ BarrierLog log = new BarrierLog(dbId, tableId, type, data);
+ addBarrierLog(log, commitSeq);
+ }
+
// get binlog by dbId, return first binlog.version > version
public Pair<TStatus, TBinlog> getBinlog(long dbId, long tableId, long
prevCommitSeq) {
TStatus status = new TStatus(TStatusCode.OK);
@@ -358,33 +396,6 @@ public class BinlogManager {
}
}
- public void addTableRename(TableInfo info, long commitSeq) {
- long dbId = info.getDbId();
- long tableId = info.getTableId();
- TBinlogType type = TBinlogType.RENAME_TABLE;
- String data = info.toJson();
- BarrierLog log = new BarrierLog(dbId, tableId, type, data);
- addBarrierLog(log, commitSeq);
- }
-
- public void addColumnRename(TableRenameColumnInfo info, long commitSeq) {
- long dbId = info.getDbId();
- long tableId = info.getTableId();
- TBinlogType type = TBinlogType.RENAME_COLUMN;
- String data = info.toJson();
- BarrierLog log = new BarrierLog(dbId, tableId, type, data);
- addBarrierLog(log, commitSeq);
- }
-
- public void addModifyComment(ModifyCommentOperationLog info, long
commitSeq) {
- long dbId = info.getDbId();
- long tableId = info.getTblId();
- TBinlogType type = TBinlogType.MODIFY_COMMENT;
- String data = info.toJson();
- BarrierLog log = new BarrierLog(dbId, tableId, type, data);
- addBarrierLog(log, commitSeq);
- }
-
// get the dropped partitions of the db.
public List<Long> getDroppedPartitions(long dbId) {
lock.readLock().lock();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/persist/AlterViewInfo.java
b/fe/fe-core/src/main/java/org/apache/doris/persist/AlterViewInfo.java
index df1fb5696c6..c54dfcf7c31 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/AlterViewInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/AlterViewInfo.java
@@ -105,4 +105,8 @@ public class AlterViewInfo implements Writable {
String json = Text.readString(in);
return GsonUtils.GSON.fromJson(json, AlterViewInfo.class);
}
+
+ public String toJson() {
+ return GsonUtils.GSON.toJson(this);
+ }
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java
b/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java
index 54c12dfd046..4ac9028d985 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/EditLog.java
@@ -302,6 +302,7 @@ public class EditLog {
case OperationType.OP_MODIFY_VIEW_DEF: {
AlterViewInfo info = (AlterViewInfo) journal.getData();
env.getAlterInstance().replayModifyViewDef(info);
+ env.getBinlogManager().addModifyViewDef(info, logId);
break;
}
case OperationType.OP_RENAME_PARTITION: {
@@ -1444,7 +1445,11 @@ public class EditLog {
}
public void logModifyViewDef(AlterViewInfo alterViewInfo) {
- logEdit(OperationType.OP_MODIFY_VIEW_DEF, alterViewInfo);
+ long logId = logEdit(OperationType.OP_MODIFY_VIEW_DEF, alterViewInfo);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("log modify view, logId : {}, infos: {}", logId,
alterViewInfo);
+ }
+ Env.getCurrentEnv().getBinlogManager().addModifyViewDef(alterViewInfo,
logId);
}
public void logRollupRename(TableInfo tableInfo) {
diff --git a/gensrc/thrift/FrontendService.thrift
b/gensrc/thrift/FrontendService.thrift
index b58f8a42e89..3636a9acf7f 100644
--- a/gensrc/thrift/FrontendService.thrift
+++ b/gensrc/thrift/FrontendService.thrift
@@ -1030,6 +1030,7 @@ enum TBinlogType {
RENAME_TABLE = 14,
RENAME_COLUMN = 15,
MODIFY_COMMENT = 16,
+ MODIFY_VIEW_DEF = 17,
// Keep some IDs for allocation so that when new binlog types are added in
the
// future, the changes can be picked back to the old versions without
breaking
@@ -1046,8 +1047,7 @@ enum TBinlogType {
// MODIFY_XXX = 17,
// MIN_UNKNOWN = 18,
// UNKNOWN_3 = 19,
- MIN_UNKNOWN = 17,
- UNKNOWN_2 = 18,
+ MIN_UNKNOWN = 18,
UNKNOWN_3 = 19,
UNKNOWN_4 = 20,
UNKNOWN_5 = 21,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]