Skip to content

Commit

Permalink
KYLIN-3092 Synchronize w/r operations on entity-caching managers
Browse files Browse the repository at this point in the history
  • Loading branch information
liyang-kylin authored and lidongsjtu committed Dec 11, 2017
1 parent b8d7987 commit f2f487f
Show file tree
Hide file tree
Showing 32 changed files with 1,746 additions and 1,675 deletions.
311 changes: 142 additions & 169 deletions core-cube/src/main/java/org/apache/kylin/cube/CubeDescManager.java

Large diffs are not rendered by default.

31 changes: 30 additions & 1 deletion core-cube/src/main/java/org/apache/kylin/cube/CubeInstance.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

package org.apache.kylin.cube;

import static com.google.common.base.Preconditions.checkNotNull;

import java.io.IOException;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -50,6 +52,8 @@
import org.apache.kylin.metadata.realization.RealizationStatusEnum;
import org.apache.kylin.metadata.realization.RealizationType;
import org.apache.kylin.metadata.realization.SQLDigest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
Expand All @@ -63,6 +67,8 @@
@SuppressWarnings("serial")
@JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
public class CubeInstance extends RootPersistentEntity implements IRealization, IBuildable {
private static final Logger logger = LoggerFactory.getLogger(CubeInstance.class);

public static final int COST_WEIGHT_MEASURE = 1;
public static final int COST_WEIGHT_DIMENSION = 10;
public static final int COST_WEIGHT_INNER_JOIN = 100;
Expand Down Expand Up @@ -121,6 +127,24 @@ public static CubeInstance create(String cubeName, CubeDesc cubeDesc) {
// default constructor for jackson
public CubeInstance() {
}

void init(KylinConfig config) {
CubeDesc cubeDesc = CubeDescManager.getInstance(config).getCubeDesc(descName);
checkNotNull(cubeDesc, "cube descriptor '%s' (for cube '%s') not found", descName, name);

if (cubeDesc.isBroken()) {
setStatus(RealizationStatusEnum.DESCBROKEN);
logger.error("cube descriptor {} (for cube '{}') is broken", cubeDesc.getResourcePath(), name);
for (String error : cubeDesc.getError()) {
logger.error("Error: {}", error);
}
} else if (getStatus() == RealizationStatusEnum.DESCBROKEN) {
setStatus(RealizationStatusEnum.DISABLED);
logger.info("cube {} changed from DESCBROKEN to DISABLED", name);
}

setConfig((KylinConfigExt) cubeDesc.getConfig());
}

public CuboidScheduler getCuboidScheduler() {
if (cuboidScheduler != null)
Expand Down Expand Up @@ -174,9 +198,14 @@ public boolean allowBrokenDescriptor() {
return (getStatus() == RealizationStatusEnum.DISABLED || getStatus() == RealizationStatusEnum.DESCBROKEN)
&& segments.isEmpty();
}

@Override
public String resourceName() {
return name;
}

public String getResourcePath() {
return concatResourcePath(name);
return concatResourcePath(resourceName());
}

public static String concatResourcePath(String cubeName) {
Expand Down
Loading

0 comments on commit f2f487f

Please sign in to comment.