This is an automated email from the ASF dual-hosted git repository.
morningman 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 dfb5d4bc13 [fix](catalog) do not call makeSureInitialized when
create/drop table/db from hms meta event (#21941)
dfb5d4bc13 is described below
commit dfb5d4bc132913a7d3c2e0765dfd73dfbac48ea8
Author: zhangdong <[email protected]>
AuthorDate: Sun Jul 23 11:24:20 2023 +0800
[fix](catalog) do not call makeSureInitialized when create/drop table/db
from hms meta event (#21941)
Supplement to #21104
---
.../org/apache/doris/catalog/external/ExternalDatabase.java | 6 +++++-
.../apache/doris/catalog/external/HMSExternalDatabase.java | 13 ++++++++++++-
.../doris/catalog/external/IcebergExternalDatabase.java | 5 ++---
.../doris/catalog/external/PaimonExternalDatabase.java | 5 ++---
.../main/java/org/apache/doris/datasource/CatalogMgr.java | 8 ++++----
.../java/org/apache/doris/datasource/ExternalCatalog.java | 4 ++--
.../org/apache/doris/datasource/HMSExternalCatalog.java | 6 ++----
7 files changed, 29 insertions(+), 18 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalDatabase.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalDatabase.java
index 0a82d37ff3..fa2ecd4011 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalDatabase.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/ExternalDatabase.java
@@ -347,13 +347,17 @@ public abstract class ExternalDatabase<T extends
ExternalTable>
throw new NotImplementedException("dropTable() is not implemented");
}
+ public void dropTableForReplay(String tableName) {
+ throw new NotImplementedException("replayDropTableFromEvent() is not
implemented");
+ }
+
@Override
public CatalogIf getCatalog() {
return extCatalog;
}
// Only used for sync hive metastore event
- public void replayCreateTableFromEvent(String tableName, long tableId) {
+ public void createTableForReplay(String tableName, long tableId) {
throw new NotImplementedException("createTable() is not implemented");
}
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalDatabase.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalDatabase.java
index 093ebe8b40..d75f86bd08 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalDatabase.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/HMSExternalDatabase.java
@@ -74,7 +74,18 @@ public class HMSExternalDatabase extends
ExternalDatabase<HMSExternalTable> {
}
@Override
- public void replayCreateTableFromEvent(String tableName, long tableId) {
+ public void dropTableForReplay(String tableName) {
+ LOG.debug("replayDropTableFromEvent [{}]", tableName);
+ Long tableId = tableNameToId.remove(tableName);
+ if (tableId == null) {
+ LOG.warn("replayDropTableFromEvent [{}] failed", tableName);
+ return;
+ }
+ idToTbl.remove(tableId);
+ }
+
+ @Override
+ public void createTableForReplay(String tableName, long tableId) {
LOG.debug("create table [{}]", tableName);
tableNameToId.put(tableName, tableId);
HMSExternalTable table = getExternalTable(tableName, tableId,
extCatalog);
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalDatabase.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalDatabase.java
index 8653c3e2dd..a915b3b241 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalDatabase.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/IcebergExternalDatabase.java
@@ -49,9 +49,8 @@ public class IcebergExternalDatabase extends
ExternalDatabase<IcebergExternalTab
}
@Override
- public void dropTable(String tableName) {
+ public void dropTableForReplay(String tableName) {
LOG.debug("drop table [{}]", tableName);
- makeSureInitialized();
Long tableId = tableNameToId.remove(tableName);
if (tableId == null) {
LOG.warn("drop table [{}] failed", tableName);
@@ -60,7 +59,7 @@ public class IcebergExternalDatabase extends
ExternalDatabase<IcebergExternalTab
}
@Override
- public void replayCreateTableFromEvent(String tableName, long tableId) {
+ public void createTableForReplay(String tableName, long tableId) {
LOG.debug("create table [{}]", tableName);
tableNameToId.put(tableName, tableId);
IcebergExternalTable table = new IcebergExternalTable(tableId,
tableName, name,
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/PaimonExternalDatabase.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/PaimonExternalDatabase.java
index 34cc7b96c0..a839b31298 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/catalog/external/PaimonExternalDatabase.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/catalog/external/PaimonExternalDatabase.java
@@ -49,9 +49,8 @@ public class PaimonExternalDatabase extends
ExternalDatabase<PaimonExternalTable
}
@Override
- public void dropTable(String tableName) {
+ public void dropTableForReplay(String tableName) {
LOG.debug("drop table [{}]", tableName);
- makeSureInitialized();
Long tableId = tableNameToId.remove(tableName);
if (tableId == null) {
LOG.warn("drop table [{}] failed", tableName);
@@ -60,7 +59,7 @@ public class PaimonExternalDatabase extends
ExternalDatabase<PaimonExternalTable
}
@Override
- public void replayCreateTableFromEvent(String tableName, long tableId) {
+ public void createTableForReplay(String tableName, long tableId) {
LOG.debug("create table [{}]", tableName);
tableNameToId.put(tableName, tableId);
PaimonExternalTable table = new PaimonExternalTable(tableId,
tableName, name,
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java
index 9d4e694e9a..253cfa2f69 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java
@@ -740,7 +740,7 @@ public class CatalogMgr implements Writable,
GsonPostProcessable {
}
db.writeLock();
try {
- db.dropTable(table.getName());
+ db.dropTableForReplay(table.getName());
db.setLastUpdateTime(log.getLastUpdateTime());
} finally {
db.writeUnlock();
@@ -811,7 +811,7 @@ public class CatalogMgr implements Writable,
GsonPostProcessable {
}
db.writeLock();
try {
- db.replayCreateTableFromEvent(log.getTableName(),
log.getTableId());
+ db.createTableForReplay(log.getTableName(), log.getTableId());
db.setLastUpdateTime(log.getLastUpdateTime());
} finally {
db.writeUnlock();
@@ -857,7 +857,7 @@ public class CatalogMgr implements Writable,
GsonPostProcessable {
LOG.warn("No db found with id:[{}], it may have been
dropped.", log.getDbId());
return;
}
- catalog.dropDatabase(db.getFullName());
+ catalog.dropDatabaseForReplay(db.getFullName());
Env.getCurrentEnv().getExtMetaCacheMgr().invalidateDbCache(catalog.getId(),
db.getFullName());
} finally {
writeUnlock();
@@ -898,7 +898,7 @@ public class CatalogMgr implements Writable,
GsonPostProcessable {
LOG.warn("No catalog found with id:[{}], it may have been
dropped.", log.getCatalogId());
return;
}
- catalog.createDatabase(log.getDbId(), log.getDbName());
+ catalog.createDatabaseForReplay(log.getDbId(), log.getDbName());
} finally {
writeUnlock();
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
index 7ad054bb7f..301e2039ce 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
@@ -534,11 +534,11 @@ public abstract class ExternalCatalog
dbNameToId.put(ClusterNamespace.getNameFromFullName(db.getFullName()),
db.getId());
}
- public void dropDatabase(String dbName) {
+ public void dropDatabaseForReplay(String dbName) {
throw new NotImplementedException("dropDatabase not implemented");
}
- public void createDatabase(long dbId, String dbName) {
+ public void createDatabaseForReplay(long dbId, String dbName) {
throw new NotImplementedException("createDatabase not implemented");
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/HMSExternalCatalog.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/HMSExternalCatalog.java
index c3e71db222..d86ccc31c1 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/HMSExternalCatalog.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/HMSExternalCatalog.java
@@ -260,9 +260,8 @@ public class HMSExternalCatalog extends ExternalCatalog {
}
@Override
- public void dropDatabase(String dbName) {
+ public void dropDatabaseForReplay(String dbName) {
LOG.debug("drop database [{}]", dbName);
- makeSureInitialized();
Long dbId = dbNameToId.remove(dbName);
if (dbId == null) {
LOG.warn("drop database [{}] failed", dbName);
@@ -271,8 +270,7 @@ public class HMSExternalCatalog extends ExternalCatalog {
}
@Override
- public void createDatabase(long dbId, String dbName) {
- makeSureInitialized();
+ public void createDatabaseForReplay(long dbId, String dbName) {
LOG.debug("create database [{}]", dbName);
dbNameToId.put(dbName, dbId);
ExternalDatabase<? extends ExternalTable> db = getDbForInit(dbName,
dbId, logType);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]