This is an automated email from the ASF dual-hosted git repository.
caolu pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/kylin5 by this push:
new 1536a74704 KYLIN-6038 fix storage v3 layout details deletion
1536a74704 is described below
commit 1536a747046a8b9def579e32da8a2c3be0f4fdec
Author: 夏旭晨 <[email protected]>
AuthorDate: Thu Dec 5 15:20:19 2024 +0800
KYLIN-6038 fix storage v3 layout details deletion
Co-authored-by: xuchen.xia <[email protected]>
---
.../org/apache/kylin/metadata/cube/model/NDataLayoutDetails.java | 4 +++-
.../apache/kylin/metadata/cube/model/NDataLayoutDetailsManager.java | 6 ++++--
.../kylin/metadata/cube/model/NDataLayoutDetailsManagerTest.java | 5 +++++
3 files changed, 12 insertions(+), 3 deletions(-)
diff --git
a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetails.java
b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetails.java
index 67ae8d65f5..29300dce39 100644
---
a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetails.java
+++
b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetails.java
@@ -50,6 +50,8 @@ import lombok.val;
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE,
getterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility =
JsonAutoDetect.Visibility.NONE, setterVisibility =
JsonAutoDetect.Visibility.NONE)
public class NDataLayoutDetails extends RootPersistentEntity implements
Serializable {
+ public static final String SEPARATOR = "-";
+
@JsonProperty("project")
private String project;
@@ -102,7 +104,7 @@ public class NDataLayoutDetails extends
RootPersistentEntity implements Serializ
@Override
public String resourceName() {
- return modelId + "-" + layoutId;
+ return modelId + SEPARATOR + layoutId;
}
@Override
diff --git
a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetailsManager.java
b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetailsManager.java
index cf05c70df9..58daf671cf 100644
---
a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetailsManager.java
+++
b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetailsManager.java
@@ -31,6 +31,8 @@ import org.apache.kylin.metadata.cachesync.CachedCrudAssist;
import lombok.extern.slf4j.Slf4j;
+import static
org.apache.kylin.metadata.cube.model.NDataLayoutDetails.SEPARATOR;
+
@Slf4j
public class NDataLayoutDetailsManager {
@@ -79,7 +81,7 @@ public class NDataLayoutDetailsManager {
}
public NDataLayoutDetails getNDataLayoutDetails(String modelId, long
layoutId) {
- return crud.get(modelId + "-" + layoutId);
+ return crud.get(modelId + SEPARATOR + layoutId);
}
public void save(NDataLayoutDetails fragment) {
@@ -115,7 +117,7 @@ public class NDataLayoutDetailsManager {
public void removeDetails(String modelId, Set<Long> layoutIds) {
for (long layoutId : layoutIds) {
- crud.delete(crud.resourcePath(modelId + "_" + layoutId));
+ crud.delete(modelId + SEPARATOR + layoutId);
}
}
diff --git
a/src/core-metadata/src/test/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetailsManagerTest.java
b/src/core-metadata/src/test/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetailsManagerTest.java
index 3e06ae3b71..7f5fa3a340 100644
---
a/src/core-metadata/src/test/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetailsManagerTest.java
+++
b/src/core-metadata/src/test/java/org/apache/kylin/metadata/cube/model/NDataLayoutDetailsManagerTest.java
@@ -21,6 +21,8 @@ package org.apache.kylin.metadata.cube.model;
import static org.apache.kylin.common.util.TestUtils.getTestConfig;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
import org.apache.kylin.guava30.shaded.common.collect.Lists;
import org.apache.kylin.guava30.shaded.common.collect.Range;
@@ -57,6 +59,9 @@ public class NDataLayoutDetailsManagerTest {
.newArrayList(layoutFragment2.getFragmentRangeSet().asRanges().iterator());
Assertions.assertEquals(Lists.newArrayList(Range.closedOpen(0L, 50L),
Range.closedOpen(100L, 200L),
Range.closedOpen(201L, 300L)), ranges2);
+ layoutFragmentMgr.removeDetails(dataflow.getId(),
+ new
HashSet<>(Collections.singletonList(layoutEntity.getId())));
+
Assertions.assertNull(layoutFragmentMgr.getNDataLayoutDetails(dataflow.getId(),
layoutEntity.getId()));
}
}