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 296696fff6f [improvement](schema) indexes belong to base index (#32527)
296696fff6f is described below
commit 296696fff6f29d3592b571368edfff1186abbc37
Author: Yongqiang YANG <[email protected]>
AuthorDate: Fri Mar 22 14:27:41 2024 +0800
[improvement](schema) indexes belong to base index (#32527)
---
.../main/java/org/apache/doris/alter/CloudSchemaChangeJobV2.java | 4 +++-
.../src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java | 4 +++-
fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java | 5 ++++-
.../org/apache/doris/cloud/datasource/CloudInternalCatalog.java | 8 +++++++-
.../main/java/org/apache/doris/datasource/InternalCatalog.java | 3 ++-
.../src/main/java/org/apache/doris/master/ReportHandler.java | 5 ++++-
6 files changed, 23 insertions(+), 6 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/alter/CloudSchemaChangeJobV2.java
b/fe/fe-core/src/main/java/org/apache/doris/alter/CloudSchemaChangeJobV2.java
index 848653ca6ac..0739da03642 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/alter/CloudSchemaChangeJobV2.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/alter/CloudSchemaChangeJobV2.java
@@ -20,6 +20,7 @@ package org.apache.doris.alter;
import org.apache.doris.catalog.Column;
import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.Env;
+import org.apache.doris.catalog.Index;
import org.apache.doris.catalog.KeysType;
import org.apache.doris.catalog.MaterializedIndex;
import org.apache.doris.catalog.OlapTable;
@@ -182,6 +183,7 @@ public class CloudSchemaChangeJobV2 extends
SchemaChangeJobV2 {
int shadowSchemaVersion =
indexSchemaVersionAndHashMap.get(shadowIdxId).schemaVersion;
long originIndexId = indexIdMap.get(shadowIdxId);
KeysType originKeysType =
tbl.getKeysTypeByIndexId(originIndexId);
+ List<Index> tabletIndexes = originIndexId ==
tbl.getBaseIndexId() ? indexes : null;
Cloud.CreateTabletsRequest.Builder requestBuilder =
Cloud.CreateTabletsRequest.newBuilder();
@@ -191,7 +193,7 @@ public class CloudSchemaChangeJobV2 extends
SchemaChangeJobV2 {
.createTabletMetaBuilder(tableId, shadowIdxId,
partitionId, shadowTablet,
tbl.getPartitionInfo().getTabletType(partitionId),
shadowSchemaHash, originKeysType,
shadowShortKeyColumnCount, bfColumns,
- bfFpp, indexes, shadowSchema,
tbl.getDataSortInfo(), tbl.getCompressionType(),
+ bfFpp, tabletIndexes, shadowSchema,
tbl.getDataSortInfo(), tbl.getCompressionType(),
tbl.getStoragePolicy(), tbl.isInMemory(), true,
tbl.getName(), tbl.getTTLSeconds(),
tbl.getEnableUniqueKeyMergeOnWrite(),
tbl.storeRowColumn(),
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
index 8c80321521b..fccc517f7a9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeJobV2.java
@@ -247,6 +247,8 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
int originSchemaHash =
tbl.getSchemaHashByIndexId(originIndexId);
KeysType originKeysType =
tbl.getKeysTypeByIndexId(originIndexId);
+ List<Index> tabletIndexes = originIndexId ==
tbl.getBaseIndexId() ? indexes : null;
+
for (Tablet shadowTablet : shadowIdx.getTablets()) {
long shadowTabletId = shadowTablet.getId();
List<Replica> shadowReplicas =
shadowTablet.getReplicas();
@@ -259,7 +261,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
shadowReplicaId,
shadowShortKeyColumnCount, shadowSchemaHash,
Partition.PARTITION_INIT_VERSION,
originKeysType, TStorageType.COLUMN,
storageMedium,
- shadowSchema, bfColumns, bfFpp,
countDownLatch, indexes,
+ shadowSchema, bfColumns, bfFpp,
countDownLatch, tabletIndexes,
tbl.isInMemory(),
tbl.getPartitionInfo().getTabletType(partitionId),
null,
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 ea0f2b5100f..eab7dc51119 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.Database;
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.MaterializedIndex;
import org.apache.doris.catalog.MaterializedIndex.IndexExtState;
import org.apache.doris.catalog.MaterializedIndexMeta;
@@ -1058,6 +1059,8 @@ public class RestoreJob extends AbstractJob {
}
for (MaterializedIndex restoredIdx :
restorePart.getMaterializedIndices(IndexExtState.VISIBLE)) {
MaterializedIndexMeta indexMeta =
localTbl.getIndexMetaByIndexId(restoredIdx.getId());
+ List<Index> indexes = restoredIdx.getId() ==
localTbl.getBaseIndexId()
+ ? localTbl.getCopiedIndexes() : null;
for (Tablet restoreTablet : restoredIdx.getTablets()) {
TabletMeta tabletMeta = new TabletMeta(db.getId(),
localTbl.getId(), restorePart.getId(),
restoredIdx.getId(), indexMeta.getSchemaHash(),
TStorageMedium.HDD);
@@ -1071,7 +1074,7 @@ public class RestoreJob extends AbstractJob {
indexMeta.getKeysType(), TStorageType.COLUMN,
TStorageMedium.HDD /* all restored replicas will
be saved to HDD */,
indexMeta.getSchema(), bfColumns, bfFpp, null,
- localTbl.getCopiedIndexes(),
+ indexes,
localTbl.isInMemory(),
localTbl.getPartitionInfo().getTabletType(restorePart.getId()),
null,
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java
b/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java
index 03256b291e5..d04ea878f36 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java
@@ -143,11 +143,17 @@ public class CloudInternalCatalog extends InternalCatalog
{
List<Column> columns = indexMeta.getSchema();
KeysType keysType = indexMeta.getKeysType();
+ List<Index> indexes;
+ if (index.getId() == tbl.getBaseIndexId()) {
+ indexes = tbl.getIndexes();
+ } else {
+ indexes = Lists.newArrayList();
+ }
Cloud.CreateTabletsRequest.Builder requestBuilder =
Cloud.CreateTabletsRequest.newBuilder();
for (Tablet tablet : index.getTablets()) {
OlapFile.TabletMetaCloudPB.Builder builder =
createTabletMetaBuilder(tbl.getId(), indexId,
partitionId, tablet, tabletType, schemaHash, keysType,
shortKeyColumnCount,
- bfColumns, tbl.getBfFpp(), tbl.getIndexes(), columns,
tbl.getDataSortInfo(),
+ bfColumns, tbl.getBfFpp(), indexes, columns,
tbl.getDataSortInfo(),
tbl.getCompressionType(), storagePolicy, isInMemory,
false, tbl.getName(), tbl.getTTLSeconds(),
tbl.getEnableUniqueKeyMergeOnWrite(),
tbl.storeRowColumn(), indexMeta.getSchemaVersion());
requestBuilder.addTabletMetas(builder);
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 42a350163f6..91c919af3f8 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
@@ -1928,6 +1928,7 @@ public class InternalCatalog implements
CatalogIf<Database> {
TStorageType storageType = indexMeta.getStorageType();
List<Column> schema = indexMeta.getSchema();
KeysType keysType = indexMeta.getKeysType();
+ List<Index> indexes = indexId == tbl.getBaseIndexId() ?
tbl.getCopiedIndexes() : null;
int totalTaskNum = index.getTablets().size() * totalReplicaNum;
MarkedCountDownLatch<Long, Long> countDownLatch = new
MarkedCountDownLatch<Long, Long>(totalTaskNum);
AgentBatchTask batchTask = new AgentBatchTask();
@@ -1940,7 +1941,7 @@ public class InternalCatalog implements
CatalogIf<Database> {
CreateReplicaTask task = new CreateReplicaTask(backendId,
dbId, tbl.getId(), partitionId, indexId,
tabletId, replicaId, shortKeyColumnCount,
schemaHash, version, keysType, storageType,
realStorageMedium, schema, bfColumns,
tbl.getBfFpp(), countDownLatch,
- tbl.getCopiedIndexes(), tbl.isInMemory(),
tabletType,
+ indexes, tbl.isInMemory(), tabletType,
tbl.getDataSortInfo(), tbl.getCompressionType(),
tbl.getEnableUniqueKeyMergeOnWrite(),
storagePolicy, tbl.disableAutoCompaction(),
tbl.enableSingleReplicaCompaction(),
tbl.skipWriteIndexOnLoad(),
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 6b24bea1ed5..485763fdff2 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
@@ -23,6 +23,7 @@ import org.apache.doris.catalog.ColocateGroupSchema;
import org.apache.doris.catalog.ColocateTableIndex;
import org.apache.doris.catalog.Database;
import org.apache.doris.catalog.Env;
+import org.apache.doris.catalog.Index;
import org.apache.doris.catalog.MaterializedIndex;
import org.apache.doris.catalog.MaterializedIndex.IndexState;
import org.apache.doris.catalog.MaterializedIndexMeta;
@@ -829,6 +830,8 @@ public class ReportHandler extends Daemon {
MaterializedIndexMeta indexMeta =
olapTable.getIndexMetaByIndexId(indexId);
Set<String> bfColumns =
olapTable.getCopiedBfColumns();
double bfFpp = olapTable.getBfFpp();
+ List<Index> indexes = indexId ==
olapTable.getBaseIndexId()
+ ?
olapTable.getCopiedIndexes() : null;
CreateReplicaTask createReplicaTask = new
CreateReplicaTask(backendId, dbId,
tableId, partitionId, indexId,
tabletId, replica.getId(),
indexMeta.getShortKeyColumnCount(),
@@ -836,7 +839,7 @@ public class ReportHandler extends Daemon {
indexMeta.getKeysType(),
TStorageType.COLUMN,
TStorageMedium.HDD,
indexMeta.getSchema(), bfColumns, bfFpp, null,
- olapTable.getCopiedIndexes(),
+ indexes,
olapTable.isInMemory(),
olapTable.getPartitionInfo().getTabletType(partitionId),
null,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]