Repository: kylin Updated Branches: refs/heads/master 577052bd2 -> 69213e999
minor, fix concurrent issue with CubeSegment.cuboidBaseShards Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/69213e99 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/69213e99 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/69213e99 Branch: refs/heads/master Commit: 69213e9991a1a69b26803852193a78628246b127 Parents: 577052b Author: gaodayue <gaoda...@meituan.com> Authored: Wed Oct 26 21:39:11 2016 +0800 Committer: gaodayue <gaoda...@meituan.com> Committed: Wed Oct 26 21:39:11 2016 +0800 ---------------------------------------------------------------------- .../src/main/java/org/apache/kylin/cube/CubeSegment.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/69213e99/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java ---------------------------------------------------------------------- diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java index fdf1fb0..b3d6d6b 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java @@ -49,6 +49,8 @@ import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import javax.annotation.concurrent.GuardedBy; + @JsonAutoDetect(fieldVisibility = Visibility.NONE, getterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE) public class CubeSegment implements Comparable<CubeSegment>, IBuildable, ISegment { @@ -115,7 +117,8 @@ public class CubeSegment implements Comparable<CubeSegment>, IBuildable, ISegmen @JsonInclude(JsonInclude.Include.NON_EMPTY) private Map<String, String> additionalInfo = new LinkedHashMap<String, String>(); - private volatile Map<Long, Short> cuboidBaseShards = Maps.newHashMap();//cuboid id ==> base(starting) shard for this cuboid + @GuardedBy("this") + private Map<Long, Short> cuboidBaseShards = Maps.newHashMap(); // cuboid id ==> base(starting) shard for this cuboid public CubeDesc getCubeDesc() { return getCubeInstance().getDescriptor(); @@ -516,7 +519,7 @@ public class CubeSegment implements Comparable<CubeSegment>, IBuildable, ISegmen this.totalShards = totalShards; } - public short getCuboidBaseShard(Long cuboidId) { + public synchronized short getCuboidBaseShard(Long cuboidId) { if (totalShards > 0) { //shard squashed case