Repository: kylin
Updated Branches:
  refs/heads/master 650f57c88 -> 635b3b976


minor refactor of CubeSegment


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/635b3b97
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/635b3b97
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/635b3b97

Branch: refs/heads/master
Commit: 635b3b97662515b7b9e4c58d6996c28c12fcfb28
Parents: 650f57c
Author: Li Yang <liy...@apache.org>
Authored: Sun Oct 30 15:45:17 2016 +0800
Committer: Li Yang <liy...@apache.org>
Committed: Sun Oct 30 15:45:17 2016 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/cube/CubeSegment.java | 33 +++++++-------------
 1 file changed, 11 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/635b3b97/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 b3d6d6b..1ec01a2 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
@@ -42,15 +42,13 @@ import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.realization.IRealization;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
 import com.fasterxml.jackson.annotation.JsonBackReference;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
-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 {
 
@@ -117,8 +115,7 @@ public class CubeSegment implements 
Comparable<CubeSegment>, IBuildable, ISegmen
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
     private Map<String, String> additionalInfo = new LinkedHashMap<String, 
String>();
 
-    @GuardedBy("this")
-    private Map<Long, Short> cuboidBaseShards = Maps.newHashMap(); // cuboid 
id ==> base(starting) shard for this cuboid
+    private Map<Long, Short> cuboidBaseShards = Maps.newConcurrentMap(); // 
cuboid id ==> base(starting) shard for this cuboid
 
     public CubeDesc getCubeDesc() {
         return getCubeInstance().getDescriptor();
@@ -505,12 +502,9 @@ public class CubeSegment implements 
Comparable<CubeSegment>, IBuildable, ISegmen
 
     public int getTotalShards(long cuboidId) {
         if (totalShards > 0) {
-            //shard squashed case
-            //logger.info("total shards for {} is {}", cuboidId, totalShards);
             return totalShards;
         } else {
             int ret = getCuboidShardNum(cuboidId);
-            //logger.info("total shards for {} is {}", cuboidId, ret);
             return ret;
         }
     }
@@ -519,22 +513,17 @@ public class CubeSegment implements 
Comparable<CubeSegment>, IBuildable, ISegmen
         this.totalShards = totalShards;
     }
 
-    public synchronized short getCuboidBaseShard(Long cuboidId) {
-        if (totalShards > 0) {
-            //shard squashed case
-
-            Short ret = cuboidBaseShards.get(cuboidId);
-            if (ret == null) {
-                ret = ShardingHash.getShard(cuboidId, totalShards);
-                cuboidBaseShards.put(cuboidId, ret);
-            }
-
-            //logger.info("base for cuboid {} is {}", cuboidId, ret);
-            return ret;
-        } else {
-            //logger.info("base for cuboid {} is {}", cuboidId, 0);
+    public short getCuboidBaseShard(Long cuboidId) {
+        if (totalShards == 0)
             return 0;
+
+        Short ret = cuboidBaseShards.get(cuboidId);
+        if (ret == null) {
+            ret = ShardingHash.getShard(cuboidId, totalShards);
+            cuboidBaseShards.put(cuboidId, ret);
         }
+
+        return ret;
     }
 
     public List<Long> getBlackoutCuboids() {

Reply via email to