Repository: kylin Updated Branches: refs/heads/v1.6.0-rc1 8199a90c5 -> 46a894db6
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/5d4d639d Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/5d4d639d Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/5d4d639d Branch: refs/heads/v1.6.0-rc1 Commit: 5d4d639ddb6b190e4978262e4e39778866b7270a Parents: 8199a90 Author: gaodayue <gaoda...@meituan.com> Authored: Wed Oct 26 21:39:11 2016 +0800 Committer: gaodayue <gaoda...@meituan.com> Committed: Fri Oct 28 13:31:48 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/5d4d639d/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