You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ma...@apache.org on 2015/05/15 07:21:36 UTC
[07/52] [abbrv] incubator-kylin git commit: KYLIN-759 split
ICachableStorageEngine and IStorageEngine
KYLIN-759 split ICachableStorageEngine and IStorageEngine
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/ac515a76
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/ac515a76
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/ac515a76
Branch: refs/heads/0.8.0
Commit: ac515a76e83b1da529b3e990f94867994983cc24
Parents: 0e42b2d
Author: honma <ho...@ebay.com>
Authored: Thu May 14 14:39:03 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Thu May 14 20:22:04 2015 +0800
----------------------------------------------------------------------
.../kylin/storage/ICachableStorageEngine.java | 30 +++++++++++++++++++-
.../apache/kylin/storage/IStorageEngine.java | 21 --------------
.../kylin/storage/StorageEngineFactory.java | 6 ++--
.../AbstractCacheFledgedStorageEngine.java | 8 ++++--
.../cache/CacheFledgedDynamicStorageEngine.java | 18 +++---------
.../cache/CacheFledgedStaticStorageEngine.java | 22 +++++---------
.../kylin/storage/cube/CubeStorageEngine.java | 11 +++++--
.../kylin/storage/hbase/CubeStorageEngine.java | 12 ++++++--
.../hbase/InvertedIndexStorageEngine.java | 11 +++++--
.../storage/hybrid/HybridStorageEngine.java | 11 -------
.../kylin/storage/test/DynamicCacheTest.java | 9 ++++--
.../kylin/storage/test/StaticCacheTest.java | 9 ++++--
12 files changed, 90 insertions(+), 78 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/main/java/org/apache/kylin/storage/ICachableStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/ICachableStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/ICachableStorageEngine.java
index eadef09..e38350a 100644
--- a/storage/src/main/java/org/apache/kylin/storage/ICachableStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/ICachableStorageEngine.java
@@ -1,7 +1,35 @@
package org.apache.kylin.storage;
+import com.google.common.collect.Range;
+
/**
* Created by Hongbin Ma(Binmahone) on 5/14/15.
*/
-public interface ICachableStorageEngine extends IStorageEngine{
+public interface ICachableStorageEngine extends IStorageEngine {
+ /**
+ *
+ * being dynamic => getVolatilePeriod() return not null
+ * being dynamic => partition column of its realization not null
+ *
+ * @return true for static storage like cubes
+ * false for dynamic storage like II
+ */
+ boolean isDynamic();
+
+ /**
+ * volatile period is the period of time in which the returned data is not stable
+ * e.g. inverted index's last several minutes' data is dynamic as time goes by.
+ * data in this period cannot be cached
+ *
+ * This method should not be called before ITupleIterator.close() is called
+ *
+ * @return null if the underlying storage guarantees the data is static
+ */
+ Range<Long> getVolatilePeriod();
+
+ /**
+ * get the uuid for the realization assigned to this storage engine
+ * @return
+ */
+ String getStorageUUID();
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/main/java/org/apache/kylin/storage/IStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/IStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/IStorageEngine.java
index d6b777a..46a94ca 100644
--- a/storage/src/main/java/org/apache/kylin/storage/IStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/IStorageEngine.java
@@ -22,8 +22,6 @@ import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.tuple.ITupleIterator;
import org.apache.kylin.storage.tuple.TupleInfo;
-import com.google.common.collect.Range;
-
/**
*
* @author xjiang
@@ -33,25 +31,6 @@ public interface IStorageEngine {
ITupleIterator search(StorageContext context, SQLDigest sqlDigest, TupleInfo returnTupleInfo);
- /**
- *
- * being dynamic => getVolatilePeriod() return not null
- * being dynamic => partition column of its realization not null
- *
- * @return true for static storage like cubes
- * false for dynamic storage like II
- */
- boolean isDynamic();
- /**
- * volatile period is the period of time in which the returned data is not stable
- * e.g. inverted index's last several minutes' data is dynamic as time goes by.
- * data in this period cannot be cached
- *
- * This method should not be called before ITupleIterator.close() is called
- *
- * @return null if the underlying storage guarantees the data is static
- */
- Range<Long> getVolatilePeriod();
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java b/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
index 29a53fd..0d720ab 100644
--- a/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
+++ b/storage/src/main/java/org/apache/kylin/storage/StorageEngineFactory.java
@@ -45,14 +45,14 @@ public class StorageEngineFactory {
public static IStorageEngine getStorageEngine(IRealization realization) {
if (realization.getType() == RealizationType.INVERTED_INDEX) {
- IStorageEngine ret = new InvertedIndexStorageEngine((IIInstance) realization);
+ ICachableStorageEngine ret = new InvertedIndexStorageEngine((IIInstance) realization);
if (allowStorageLayerCache) {
return wrapWithCache(ret, realization);
} else {
return ret;
}
} else if (realization.getType() == RealizationType.CUBE) {
- IStorageEngine ret = new CubeStorageEngine((CubeInstance) realization);
+ ICachableStorageEngine ret = new CubeStorageEngine((CubeInstance) realization);
if (allowStorageLayerCache) {
return wrapWithCache(ret, realization);
} else {
@@ -63,7 +63,7 @@ public class StorageEngineFactory {
}
}
- private static IStorageEngine wrapWithCache(IStorageEngine underlyingStorageEngine, IRealization realization) {
+ private static IStorageEngine wrapWithCache(ICachableStorageEngine underlyingStorageEngine, IRealization realization) {
if (underlyingStorageEngine.isDynamic()) {
return new CacheFledgedDynamicStorageEngine(underlyingStorageEngine, getPartitionCol(realization));
} else {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/main/java/org/apache/kylin/storage/cache/AbstractCacheFledgedStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/cache/AbstractCacheFledgedStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/cache/AbstractCacheFledgedStorageEngine.java
index d8e2fc0..09f0026 100644
--- a/storage/src/main/java/org/apache/kylin/storage/cache/AbstractCacheFledgedStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/cache/AbstractCacheFledgedStorageEngine.java
@@ -8,6 +8,8 @@ import net.sf.ehcache.config.PersistenceConfiguration;
import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
import org.apache.kylin.metadata.realization.StreamSQLDigest;
+import org.apache.kylin.metadata.tuple.TeeTupleItrListener;
+import org.apache.kylin.storage.ICachableStorageEngine;
import org.apache.kylin.storage.IStorageEngine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -15,15 +17,15 @@ import org.slf4j.LoggerFactory;
/**
* Created by Hongbin Ma(Binmahone) on 5/13/15.
*/
-public abstract class AbstractCacheFledgedStorageEngine {
+public abstract class AbstractCacheFledgedStorageEngine implements IStorageEngine, TeeTupleItrListener {
private static final Logger logger = LoggerFactory.getLogger(AbstractCacheFledgedStorageEngine.class);
protected static CacheManager cacheManager = CacheManager.create();
- protected final IStorageEngine underlyingStorage;
+ protected final ICachableStorageEngine underlyingStorage;
protected StreamSQLDigest streamSQLDigest;
protected boolean queryCacheExists;
- public AbstractCacheFledgedStorageEngine(IStorageEngine underlyingStorage) {
+ public AbstractCacheFledgedStorageEngine(ICachableStorageEngine underlyingStorage) {
this.underlyingStorage = underlyingStorage;
this.queryCacheExists = false;
this.makeCacheIfNecessary(underlyingStorage.getClass().getName());
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/main/java/org/apache/kylin/storage/cache/CacheFledgedDynamicStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/cache/CacheFledgedDynamicStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/cache/CacheFledgedDynamicStorageEngine.java
index 65672ae..0a4fd2a 100644
--- a/storage/src/main/java/org/apache/kylin/storage/cache/CacheFledgedDynamicStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/cache/CacheFledgedDynamicStorageEngine.java
@@ -12,7 +12,7 @@ import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.realization.SQLDigestUtil;
import org.apache.kylin.metadata.realization.StreamSQLDigest;
import org.apache.kylin.metadata.tuple.*;
-import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.ICachableStorageEngine;
import org.apache.kylin.storage.StorageContext;
import org.apache.kylin.storage.hbase.coprocessor.endpoint.TsConditionExtractor;
import org.apache.kylin.storage.tuple.TupleInfo;
@@ -24,14 +24,14 @@ import java.util.List;
/**
* Created by Hongbin Ma(Binmahone) on 5/11/15.
*/
-public class CacheFledgedDynamicStorageEngine extends AbstractCacheFledgedStorageEngine implements IStorageEngine, TeeTupleItrListener {
+public class CacheFledgedDynamicStorageEngine extends AbstractCacheFledgedStorageEngine {
private static final Logger logger = LoggerFactory.getLogger(CacheFledgedDynamicStorageEngine.class);
private final TblColRef partitionColRef;
private Range<Long> ts;
- public CacheFledgedDynamicStorageEngine(IStorageEngine underlyingStorage, TblColRef partitionColRef) {
+ public CacheFledgedDynamicStorageEngine(ICachableStorageEngine underlyingStorage, TblColRef partitionColRef) {
super(underlyingStorage);
this.partitionColRef = partitionColRef;
@@ -117,17 +117,7 @@ public class CacheFledgedDynamicStorageEngine extends AbstractCacheFledgedStorag
}
}
- @Override
- public Range<Long> getVolatilePeriod() {
- return underlyingStorage.getVolatilePeriod();
- }
-
- @Override
- public boolean isDynamic() {
- return true;
- }
-
- @Override
+ @Override
public void notify(List<ITuple> duplicated) {
Range<Long> cacheExclude = this.underlyingStorage.getVolatilePeriod();
if (cacheExclude != null) {
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/main/java/org/apache/kylin/storage/cache/CacheFledgedStaticStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/cache/CacheFledgedStaticStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/cache/CacheFledgedStaticStorageEngine.java
index 860dea2..a309c24 100644
--- a/storage/src/main/java/org/apache/kylin/storage/cache/CacheFledgedStaticStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/cache/CacheFledgedStaticStorageEngine.java
@@ -1,13 +1,15 @@
package org.apache.kylin.storage.cache;
-import com.google.common.collect.Range;
import com.google.common.collect.Ranges;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.realization.StreamSQLDigest;
-import org.apache.kylin.metadata.tuple.*;
-import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.metadata.tuple.ITuple;
+import org.apache.kylin.metadata.tuple.ITupleIterator;
+import org.apache.kylin.metadata.tuple.SimpleTupleIterator;
+import org.apache.kylin.metadata.tuple.TeeTupleIterator;
+import org.apache.kylin.storage.ICachableStorageEngine;
import org.apache.kylin.storage.StorageContext;
import org.apache.kylin.storage.tuple.TupleInfo;
import org.slf4j.Logger;
@@ -18,10 +20,10 @@ import java.util.List;
/**
* Created by Hongbin Ma(Binmahone) on 5/11/15.
*/
-public class CacheFledgedStaticStorageEngine extends AbstractCacheFledgedStorageEngine implements IStorageEngine, TeeTupleItrListener {
+public class CacheFledgedStaticStorageEngine extends AbstractCacheFledgedStorageEngine {
private static final Logger logger = LoggerFactory.getLogger(CacheFledgedStaticStorageEngine.class);
- public CacheFledgedStaticStorageEngine(IStorageEngine underlyingStorage) {
+ public CacheFledgedStaticStorageEngine(ICachableStorageEngine underlyingStorage) {
super(underlyingStorage);
}
@@ -62,16 +64,6 @@ public class CacheFledgedStaticStorageEngine extends AbstractCacheFledgedStorage
}
@Override
- public Range<Long> getVolatilePeriod() {
- return underlyingStorage.getVolatilePeriod();
- }
-
- @Override
- public boolean isDynamic() {
- return false;
- }
-
- @Override
public void notify(List<ITuple> duplicated) {
StreamSQLResult newCacheEntry = new StreamSQLResult(duplicated, Ranges.<Long> all(), null);
cacheManager.getCache(this.underlyingStorage.getClass().getName()).put(new Element(streamSQLDigest, newCacheEntry));
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/main/java/org/apache/kylin/storage/cube/CubeStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/cube/CubeStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/cube/CubeStorageEngine.java
index a353f49..5fbcf98 100644
--- a/storage/src/main/java/org/apache/kylin/storage/cube/CubeStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/cube/CubeStorageEngine.java
@@ -21,7 +21,7 @@ import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.tuple.ITupleIterator;
-import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.ICachableStorageEngine;
import org.apache.kylin.storage.StorageContext;
import org.apache.kylin.storage.hbase.DerivedFilterTranslator;
import org.apache.kylin.storage.tuple.TupleInfo;
@@ -30,7 +30,7 @@ import org.slf4j.LoggerFactory;
import java.util.*;
-public class CubeStorageEngine implements IStorageEngine {
+public class CubeStorageEngine implements ICachableStorageEngine {
private static final Logger logger = LoggerFactory.getLogger(CubeStorageEngine.class);
@@ -38,10 +38,12 @@ public class CubeStorageEngine implements IStorageEngine {
private final CubeInstance cubeInstance;
private final CubeDesc cubeDesc;
+ private final String uuid;
public CubeStorageEngine(CubeInstance cube) {
this.cubeInstance = cube;
this.cubeDesc = cube.getDescriptor();
+ this.uuid = cube.getUuid();
}
@Override
@@ -99,6 +101,11 @@ public class CubeStorageEngine implements IStorageEngine {
}
@Override
+ public String getStorageUUID() {
+ return this.uuid;
+ }
+
+ @Override
public boolean isDynamic() {
return false;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
index 699cc41..94c1dcc 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/CubeStorageEngine.java
@@ -47,7 +47,7 @@ import org.apache.kylin.metadata.model.SegmentStatusEnum;
import org.apache.kylin.metadata.model.TblColRef;
import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.tuple.ITupleIterator;
-import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.ICachableStorageEngine;
import org.apache.kylin.storage.StorageContext;
import org.apache.kylin.storage.hbase.coprocessor.observer.ObserverEnabler;
import org.apache.kylin.storage.tuple.TupleInfo;
@@ -59,7 +59,7 @@ import java.util.*;
/**
* @author xjiang, yangli9
*/
-public class CubeStorageEngine implements IStorageEngine {
+public class CubeStorageEngine implements ICachableStorageEngine {
private static final Logger logger = LoggerFactory.getLogger(CubeStorageEngine.class);
@@ -68,10 +68,12 @@ public class CubeStorageEngine implements IStorageEngine {
private final CubeInstance cubeInstance;
private final CubeDesc cubeDesc;
+ private final String uuid;
public CubeStorageEngine(CubeInstance cube) {
this.cubeInstance = cube;
this.cubeDesc = cube.getDescriptor();
+ this.uuid = cube.getUuid();
}
@Override
@@ -138,6 +140,12 @@ public class CubeStorageEngine implements IStorageEngine {
}
@Override
+ public String getStorageUUID() {
+ return this.uuid;
+ }
+
+
+ @Override
public boolean isDynamic() {
return false;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/main/java/org/apache/kylin/storage/hbase/InvertedIndexStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hbase/InvertedIndexStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/hbase/InvertedIndexStorageEngine.java
index c94222e..de85190 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hbase/InvertedIndexStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hbase/InvertedIndexStorageEngine.java
@@ -25,7 +25,7 @@ import org.apache.kylin.invertedindex.IIInstance;
import org.apache.kylin.invertedindex.IISegment;
import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.tuple.ITupleIterator;
-import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.ICachableStorageEngine;
import org.apache.kylin.storage.StorageContext;
import org.apache.kylin.storage.hbase.coprocessor.endpoint.EndpointTupleIterator;
import org.apache.kylin.storage.tuple.TupleInfo;
@@ -37,15 +37,17 @@ import java.util.ArrayList;
/**
* @author yangli9
*/
-public class InvertedIndexStorageEngine implements IStorageEngine {
+public class InvertedIndexStorageEngine implements ICachableStorageEngine {
private static Logger logger = LoggerFactory.getLogger(InvertedIndexStorageEngine.class);
private IISegment seg;
+ private String uuid;
private EndpointTupleIterator dataIterator;
public InvertedIndexStorageEngine(IIInstance ii) {
this.seg = ii.getFirstSegment();
+ this.uuid = ii.getUuid();
}
@Override
@@ -70,6 +72,11 @@ public class InvertedIndexStorageEngine implements IStorageEngine {
}
@Override
+ public String getStorageUUID() {
+ return this.uuid;
+ }
+
+ @Override
public boolean isDynamic() {
return true;
}
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
----------------------------------------------------------------------
diff --git a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
index f9cea05..b7219b5 100644
--- a/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
+++ b/storage/src/main/java/org/apache/kylin/storage/hybrid/HybridStorageEngine.java
@@ -2,10 +2,8 @@ package org.apache.kylin.storage.hybrid;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
-import com.google.common.collect.Range;
import com.google.common.collect.Ranges;
import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.RangeUtil;
import org.apache.kylin.metadata.MetadataManager;
import org.apache.kylin.metadata.model.DataModelDesc;
import org.apache.kylin.metadata.model.TblColRef;
@@ -64,15 +62,6 @@ public class HybridStorageEngine implements IStorageEngine {
return new CompoundTupleIterator(Lists.newArrayList(historicalDataIterator, realtimeDataIterator));
}
- @Override
- public Range<Long> getVolatilePeriod() {
- return RangeUtil.merge(historicalStorageEngine.getVolatilePeriod(), realtimeStorageEngine.getVolatilePeriod());
- }
-
- @Override
- public boolean isDynamic() {
- return true;
- }
private MetadataManager getMetadataManager() {
return MetadataManager.getInstance(KylinConfig.getInstanceFromEnv());
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/test/java/org/apache/kylin/storage/test/DynamicCacheTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/test/DynamicCacheTest.java b/storage/src/test/java/org/apache/kylin/storage/test/DynamicCacheTest.java
index 0d962cb..3b587f1 100644
--- a/storage/src/test/java/org/apache/kylin/storage/test/DynamicCacheTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/test/DynamicCacheTest.java
@@ -12,7 +12,7 @@ import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.tuple.ITuple;
import org.apache.kylin.metadata.tuple.ITupleIterator;
import org.apache.kylin.metadata.tuple.SimpleTupleIterator;
-import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.ICachableStorageEngine;
import org.apache.kylin.storage.StorageContext;
import org.apache.kylin.storage.cache.CacheFledgedDynamicStorageEngine;
import org.apache.kylin.storage.hbase.coprocessor.endpoint.TsConditionExtractor;
@@ -88,7 +88,7 @@ public class DynamicCacheTest {
final AtomicInteger underlyingSEHitCount = new AtomicInteger(0);
final List<Integer> returnedRowPerSearch = Lists.newArrayList();
- CacheFledgedDynamicStorageEngine dynamicCache = new CacheFledgedDynamicStorageEngine(new IStorageEngine() {
+ CacheFledgedDynamicStorageEngine dynamicCache = new CacheFledgedDynamicStorageEngine(new ICachableStorageEngine() {
@Override
public ITupleIterator search(StorageContext context, SQLDigest sqlDigest, TupleInfo returnTupleInfo) {
Range<Long> tsRagneInQuery = TsConditionExtractor.extractTsCondition(partitionCol, sqlDigest.filter);
@@ -114,6 +114,11 @@ public class DynamicCacheTest {
public Range<Long> getVolatilePeriod() {
return Ranges.greaterThan(DateFormat.stringToMillis("2011-02-01"));
}
+
+ @Override
+ public String getStorageUUID() {
+ return "111ca32a-a33e-4b69-12aa-0bb8b1f8c191";
+ }
}, partitionCol);
sqlDigest.filter = StorageMockUtils.buildTs2010Filter(groups.get(0));
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/ac515a76/storage/src/test/java/org/apache/kylin/storage/test/StaticCacheTest.java
----------------------------------------------------------------------
diff --git a/storage/src/test/java/org/apache/kylin/storage/test/StaticCacheTest.java b/storage/src/test/java/org/apache/kylin/storage/test/StaticCacheTest.java
index 9b69830..0133214 100644
--- a/storage/src/test/java/org/apache/kylin/storage/test/StaticCacheTest.java
+++ b/storage/src/test/java/org/apache/kylin/storage/test/StaticCacheTest.java
@@ -10,7 +10,7 @@ import org.apache.kylin.metadata.realization.SQLDigest;
import org.apache.kylin.metadata.tuple.ITuple;
import org.apache.kylin.metadata.tuple.ITupleIterator;
import org.apache.kylin.metadata.tuple.SimpleTupleIterator;
-import org.apache.kylin.storage.IStorageEngine;
+import org.apache.kylin.storage.ICachableStorageEngine;
import org.apache.kylin.storage.StorageContext;
import org.apache.kylin.storage.cache.CacheFledgedStaticStorageEngine;
import org.apache.kylin.storage.tuple.Tuple;
@@ -45,7 +45,7 @@ public class StaticCacheTest {
final AtomicInteger underlyingSEHitCount = new AtomicInteger(0);
- CacheFledgedStaticStorageEngine cacheFledgedStaticStorageEngine = new CacheFledgedStaticStorageEngine(new IStorageEngine() {
+ CacheFledgedStaticStorageEngine cacheFledgedStaticStorageEngine = new CacheFledgedStaticStorageEngine(new ICachableStorageEngine() {
@Override
public ITupleIterator search(StorageContext context, SQLDigest sqlDigest, TupleInfo returnTupleInfo) {
underlyingSEHitCount.incrementAndGet();
@@ -61,6 +61,11 @@ public class StaticCacheTest {
public Range<Long> getVolatilePeriod() {
return null;
}
+
+ @Override
+ public String getStorageUUID() {
+ return "111ca32a-a33e-4b69-12aa-0bb8b1f8c092";
+ }
});
ITupleIterator firstIterator = cacheFledgedStaticStorageEngine.search(context, sqlDigest, tupleInfo);