This is an automated email from the ASF dual-hosted git repository. mblow pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 7480309b69af1a4f0c0ea9f85a9acde768a9bc25 Author: Murtadha Hubail <[email protected]> AuthorDate: Fri Oct 18 01:13:34 2019 +0300 [NO ISSUE][STO] Persist Bloom Filter Existence in Index Metadata - user model changes: no - storage format changes: no - interface changes: no Details: - To clearly identify whether an index has a bloom filter or not for BTree indexes, persist this information in the index's metadata stored on each NC. - For backward compatibility, when reading an index's metadata that was created before adding the hasBloomFilter field, default its value based on whether or not the index is a primary key index. - Remove unused special readObject from LSMBTreeLocalResource. Change-Id: Icec570d490987de401c036790ee9567238a60301 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/3804 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> Reviewed-by: Michael Blow <[email protected]> --- .../TestLsmBTreeResourceFactoryProvider.java | 3 ++- .../metadata/bootstrap/MetadataBootstrap.java | 2 +- .../declared/BTreeResourceFactoryProvider.java | 8 +++--- .../am/lsm/btree/LSMBTreeOperatorTestHelper.java | 2 +- .../btree/dataflow/ExternalBTreeLocalResource.java | 12 +++++---- .../ExternalBTreeLocalResourceFactory.java | 7 ++--- .../ExternalBTreeWithBuddyLocalResource.java | 13 +++++----- ...ExternalBTreeWithBuddyLocalResourceFactory.java | 7 ++--- .../lsm/btree/dataflow/LSMBTreeLocalResource.java | 30 ++++++++++++---------- .../dataflow/LSMBTreeLocalResourceFactory.java | 6 +++-- .../storage/am/lsm/btree/utils/LSMBTreeUtil.java | 6 ++--- .../am/btree/AbstractOperationCallbackTest.java | 1 + .../storage/am/lsm/btree/LSMBTreeExamplesTest.java | 2 +- .../LSMBTreeModificationOperationCallbackTest.java | 2 +- .../btree/LSMBTreeSearchOperationCallbackTest.java | 2 +- .../am/lsm/btree/LSMBTreeUpdateInPlaceTest.java | 2 +- .../lsm/btree/impl/TestLsmBtreeLocalResource.java | 12 +++++---- .../impl/TestLsmBtreeLocalResourceFactory.java | 6 ++--- .../btree/multithread/LSMBTreeMultiThreadTest.java | 2 +- .../storage/am/lsm/btree/perf/LSMTreeRunner.java | 2 +- .../am/lsm/btree/util/LSMBTreeTestContext.java | 4 +-- 21 files changed, 72 insertions(+), 59 deletions(-) diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TestLsmBTreeResourceFactoryProvider.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TestLsmBTreeResourceFactoryProvider.java index d1b7f0e..532337d 100644 --- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TestLsmBTreeResourceFactoryProvider.java +++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TestLsmBTreeResourceFactoryProvider.java @@ -85,7 +85,8 @@ public class TestLsmBTreeResourceFactoryProvider implements IResourceFactoryProv return new TestLsmBtreeLocalResourceFactory(storageManager, typeTraits, cmpFactories, filterTypeTraits, filterCmpFactories, filterFields, opTrackerFactory, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, vbcProvider, ioSchedulerProvider, mergePolicyFactory, mergePolicyProperties, - true, bloomFilterFields, bloomFilterFalsePositiveRate, index.isPrimaryIndex(), btreeFields); + true, bloomFilterFields, bloomFilterFalsePositiveRate, index.isPrimaryIndex(), btreeFields, + bloomFilterFields != null); } private static ITypeTraits[] getTypeTraits(MetadataProvider metadataProvider, Dataset dataset, Index index, diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java index e25c7c0..49fffe6 100644 --- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java +++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java @@ -363,7 +363,7 @@ public class MetadataBootstrap { storageComponentProvider.getIoOperationSchedulerProvider(), appContext.getMetadataMergePolicyFactory(), StorageConstants.DEFAULT_COMPACTION_POLICY_PROPERTIES, true, bloomFilterKeyFields, - bloomFilterFalsePositiveRate, true, null, NoOpCompressorDecompressorFactory.INSTANCE); + bloomFilterFalsePositiveRate, true, null, NoOpCompressorDecompressorFactory.INSTANCE, true); DatasetLocalResourceFactory dsLocalResourceFactory = new DatasetLocalResourceFactory(datasetId, lsmBtreeFactory); // TODO(amoudi) Creating the index should be done through the same code path as diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/BTreeResourceFactoryProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/BTreeResourceFactoryProvider.java index a03e6e6..0ffdedc 100644 --- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/BTreeResourceFactoryProvider.java +++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/BTreeResourceFactoryProvider.java @@ -82,6 +82,7 @@ public class BTreeResourceFactoryProvider implements IResourceFactoryProvider { storageComponentProvider.getMetadataPageManagerFactory(); ILSMIOOperationSchedulerProvider ioSchedulerProvider = storageComponentProvider.getIoOperationSchedulerProvider(); + boolean hasBloomFilter = bloomFilterFields != null; switch (dataset.getDatasetType()) { case EXTERNAL: return index.getIndexName().equals(IndexingConstants.getFilesIndexName(dataset.getDatasetName())) @@ -89,12 +90,12 @@ public class BTreeResourceFactoryProvider implements IResourceFactoryProvider { filterTypeTraits, filterCmpFactories, filterFields, opTrackerFactory, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, ioSchedulerProvider, mergePolicyFactory, mergePolicyProperties, true, bloomFilterFields, - bloomFilterFalsePositiveRate, false, btreeFields) + bloomFilterFalsePositiveRate, false, btreeFields, hasBloomFilter) : new ExternalBTreeWithBuddyLocalResourceFactory(storageManager, typeTraits, cmpFactories, filterTypeTraits, filterCmpFactories, filterFields, opTrackerFactory, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, ioSchedulerProvider, mergePolicyFactory, mergePolicyProperties, true, bloomFilterFields, - bloomFilterFalsePositiveRate, false, btreeFields); + bloomFilterFalsePositiveRate, false, btreeFields, hasBloomFilter); case INTERNAL: AsterixVirtualBufferCacheProvider vbcProvider = new AsterixVirtualBufferCacheProvider(dataset.getDatasetId()); @@ -111,7 +112,8 @@ public class BTreeResourceFactoryProvider implements IResourceFactoryProvider { filterCmpFactories, filterFields, opTrackerFactory, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, vbcProvider, ioSchedulerProvider, mergePolicyFactory, mergePolicyProperties, true, bloomFilterFields, - bloomFilterFalsePositiveRate, index.isPrimaryIndex(), btreeFields, compDecompFactory); + bloomFilterFalsePositiveRate, index.isPrimaryIndex(), btreeFields, compDecompFactory, + hasBloomFilter); default: throw new CompilationException(ErrorCode.COMPILATION_UNKNOWN_DATASET_TYPE, dataset.getDatasetType().toString()); diff --git a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeOperatorTestHelper.java b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeOperatorTestHelper.java index 46e4fb2..d46f5f5 100644 --- a/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeOperatorTestHelper.java +++ b/hyracks-fullstack/hyracks/hyracks-examples/hyracks-integration-tests/src/test/java/org/apache/hyracks/tests/am/lsm/btree/LSMBTreeOperatorTestHelper.java @@ -49,6 +49,6 @@ public class LSMBTreeOperatorTestHelper extends LSMTreeOperatorTestHelper { getVirtualBufferCacheProvider(), SynchronousSchedulerProvider.INSTANCE, MERGE_POLICY_FACTORY, MERGE_POLICY_PROPERTIES, DURABLE, bloomFilterKeyFields, LSMTreeOperatorTestHelper.DEFAULT_BLOOM_FILTER_FALSE_POSITIVE_RATE, true, btreefields, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, bloomFilterKeyFields != null); } } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResource.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResource.java index e579f6b..d94a5e1 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResource.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResource.java @@ -54,18 +54,19 @@ public class ExternalBTreeLocalResource extends LSMBTreeLocalResource { ILSMOperationTrackerFactory opTrackerProvider, ILSMIOOperationCallbackFactory ioOpCallbackFactory, ILSMPageWriteCallbackFactory pageWriteCallbackFactory, IMetadataPageManagerFactory metadataPageManagerFactory, - ILSMIOOperationSchedulerProvider ioSchedulerProvider, boolean durable) { + ILSMIOOperationSchedulerProvider ioSchedulerProvider, boolean durable, boolean hasBloomFilter) { super(typeTraits, cmpFactories, bloomFilterKeyFields, bloomFilterFalsePositiveRate, isPrimary, path, storageManager, mergePolicyFactory, mergePolicyProperties, filterTypeTraits, filterCmpFactories, btreeFields, filterFields, opTrackerProvider, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, null, ioSchedulerProvider, durable, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, hasBloomFilter); } private ExternalBTreeLocalResource(IPersistedResourceRegistry registry, JsonNode json, int[] bloomFilterKeyFields, - double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields) throws HyracksDataException { + double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields, boolean hasBloomFilter) + throws HyracksDataException { super(registry, json, bloomFilterKeyFields, bloomFilterFalsePositiveRate, isPrimary, btreeFields, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, hasBloomFilter); } @Override @@ -93,6 +94,7 @@ public class ExternalBTreeLocalResource extends LSMBTreeLocalResource { throws HyracksDataException { LSMBTreeLocalResource lsmBtree = (LSMBTreeLocalResource) LSMBTreeLocalResource.fromJson(registry, json); return new ExternalBTreeLocalResource(registry, json, lsmBtree.bloomFilterKeyFields, - lsmBtree.bloomFilterFalsePositiveRate, lsmBtree.isPrimary, lsmBtree.btreeFields); + lsmBtree.bloomFilterFalsePositiveRate, lsmBtree.isPrimary, lsmBtree.btreeFields, + lsmBtree.hasBloomFilter); } } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResourceFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResourceFactory.java index 4477ba4..f398370 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResourceFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeLocalResourceFactory.java @@ -45,11 +45,12 @@ public class ExternalBTreeLocalResourceFactory extends LSMBTreeLocalResourceFact IMetadataPageManagerFactory metadataPageManagerFactory, ILSMIOOperationSchedulerProvider ioSchedulerProvider, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, boolean durable, int[] bloomFilterKeyFields, - double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields) { + double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields, boolean hasBloomFilter) { super(storageManager, typeTraits, cmpFactories, filterTypeTraits, filterCmpFactories, filterFields, opTrackerFactory, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, null, ioSchedulerProvider, mergePolicyFactory, mergePolicyProperties, durable, bloomFilterKeyFields, - bloomFilterFalsePositiveRate, isPrimary, btreeFields, NoOpCompressorDecompressorFactory.INSTANCE); + bloomFilterFalsePositiveRate, isPrimary, btreeFields, NoOpCompressorDecompressorFactory.INSTANCE, + hasBloomFilter); } @Override @@ -58,6 +59,6 @@ public class ExternalBTreeLocalResourceFactory extends LSMBTreeLocalResourceFact bloomFilterFalsePositiveRate, isPrimary, fileRef.getRelativePath(), storageManager, mergePolicyFactory, mergePolicyProperties, filterTypeTraits, filterCmpFactories, btreeFields, bloomFilterKeyFields, opTrackerProvider, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, - ioSchedulerProvider, durable); + ioSchedulerProvider, durable, hasBloomFilter); } } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResource.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResource.java index 7753446..bf4b06c 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResource.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResource.java @@ -57,19 +57,19 @@ public class ExternalBTreeWithBuddyLocalResource extends LSMBTreeLocalResource { ILSMOperationTrackerFactory opTrackerProvider, ILSMIOOperationCallbackFactory ioOpCallbackFactory, ILSMPageWriteCallbackFactory pageWriteCallbackFactory, IMetadataPageManagerFactory metadataPageManagerFactory, - ILSMIOOperationSchedulerProvider ioSchedulerProvider, boolean durable) { + ILSMIOOperationSchedulerProvider ioSchedulerProvider, boolean durable, boolean hasBloomFilter) { super(typeTraits, cmpFactories, buddyBtreeFields, bloomFilterFalsePositiveRate, isPrimary, path, storageManager, mergePolicyFactory, mergePolicyProperties, filterTypeTraits, filterCmpFactories, btreeFields, filterFields, opTrackerProvider, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, null, ioSchedulerProvider, durable, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, hasBloomFilter); } private ExternalBTreeWithBuddyLocalResource(IPersistedResourceRegistry registry, JsonNode json, - int[] bloomFilterKeyFields, double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields) - throws HyracksDataException { + int[] bloomFilterKeyFields, double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields, + boolean hasBloomFilter) throws HyracksDataException { super(registry, json, bloomFilterKeyFields, bloomFilterFalsePositiveRate, isPrimary, btreeFields, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, hasBloomFilter); } @Override @@ -97,6 +97,7 @@ public class ExternalBTreeWithBuddyLocalResource extends LSMBTreeLocalResource { throws HyracksDataException { LSMBTreeLocalResource lsmBtree = (LSMBTreeLocalResource) LSMBTreeLocalResource.fromJson(registry, json); return new ExternalBTreeWithBuddyLocalResource(registry, json, lsmBtree.bloomFilterKeyFields, - lsmBtree.bloomFilterFalsePositiveRate, lsmBtree.isPrimary, lsmBtree.btreeFields); + lsmBtree.bloomFilterFalsePositiveRate, lsmBtree.isPrimary, lsmBtree.btreeFields, + lsmBtree.hasBloomFilter); } } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResourceFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResourceFactory.java index 119a31b..91ebee1 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResourceFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/ExternalBTreeWithBuddyLocalResourceFactory.java @@ -45,11 +45,12 @@ public class ExternalBTreeWithBuddyLocalResourceFactory extends LSMBTreeLocalRes IMetadataPageManagerFactory metadataPageManagerFactory, ILSMIOOperationSchedulerProvider ioSchedulerProvider, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, boolean durable, int[] buddyBtreeFields, - double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields) { + double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields, boolean hasBloomFilter) { super(storageManager, typeTraits, cmpFactories, filterTypeTraits, filterCmpFactories, filterFields, opTrackerProvider, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, null, ioSchedulerProvider, mergePolicyFactory, mergePolicyProperties, durable, buddyBtreeFields, - bloomFilterFalsePositiveRate, isPrimary, btreeFields, NoOpCompressorDecompressorFactory.INSTANCE); + bloomFilterFalsePositiveRate, isPrimary, btreeFields, NoOpCompressorDecompressorFactory.INSTANCE, + hasBloomFilter); } @Override @@ -58,6 +59,6 @@ public class ExternalBTreeWithBuddyLocalResourceFactory extends LSMBTreeLocalRes bloomFilterFalsePositiveRate, isPrimary, fileRef.getRelativePath(), storageManager, mergePolicyFactory, mergePolicyProperties, filterTypeTraits, filterCmpFactories, btreeFields, filterFields, opTrackerProvider, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, - ioSchedulerProvider, durable); + ioSchedulerProvider, durable, hasBloomFilter); } } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResource.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResource.java index 52d00f4..6098a1d 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResource.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResource.java @@ -18,7 +18,6 @@ */ package org.apache.hyracks.storage.am.lsm.btree.dataflow; -import java.io.IOException; import java.util.List; import java.util.Map; @@ -44,7 +43,6 @@ import org.apache.hyracks.storage.am.lsm.common.api.IVirtualBufferCacheProvider; import org.apache.hyracks.storage.am.lsm.common.dataflow.LsmResource; import org.apache.hyracks.storage.common.IStorageManager; import org.apache.hyracks.storage.common.compression.NoOpCompressorDecompressorFactory; -import org.apache.hyracks.util.ReflectionUtils; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; @@ -52,7 +50,9 @@ import com.fasterxml.jackson.databind.node.ObjectNode; public class LSMBTreeLocalResource extends LsmResource { private static final long serialVersionUID = 1L; + private static final String HAS_BLOOM_FILTER_FIELD = "hasBloomFilter"; + protected final boolean hasBloomFilter; protected final int[] bloomFilterKeyFields; protected final double bloomFilterFalsePositiveRate; protected final boolean isPrimary; @@ -68,7 +68,7 @@ public class LSMBTreeLocalResource extends LsmResource { ILSMPageWriteCallbackFactory pageWriteCallbackFactory, IMetadataPageManagerFactory metadataPageManagerFactory, IVirtualBufferCacheProvider vbcProvider, ILSMIOOperationSchedulerProvider ioSchedulerProvider, boolean durable, - ICompressorDecompressorFactory compressorDecompressorFactory) { + ICompressorDecompressorFactory compressorDecompressorFactory, boolean hasBloomFilter) { super(path, storageManager, typeTraits, cmpFactories, filterTypeTraits, filterCmpFactories, filterFields, opTrackerProvider, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, vbcProvider, ioSchedulerProvider, mergePolicyFactory, mergePolicyProperties, durable); @@ -77,17 +77,20 @@ public class LSMBTreeLocalResource extends LsmResource { this.isPrimary = isPrimary; this.btreeFields = btreeFields; this.compressorDecompressorFactory = compressorDecompressorFactory; + this.hasBloomFilter = hasBloomFilter; } protected LSMBTreeLocalResource(IPersistedResourceRegistry registry, JsonNode json, int[] bloomFilterKeyFields, double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields, - ICompressorDecompressorFactory compressorDecompressorFactory) throws HyracksDataException { + ICompressorDecompressorFactory compressorDecompressorFactory, boolean hasBloomFilter) + throws HyracksDataException { super(registry, json); this.bloomFilterKeyFields = bloomFilterKeyFields; this.bloomFilterFalsePositiveRate = bloomFilterFalsePositiveRate; this.isPrimary = isPrimary; this.btreeFields = btreeFields; this.compressorDecompressorFactory = compressorDecompressorFactory; + this.hasBloomFilter = hasBloomFilter; } @Override @@ -105,7 +108,7 @@ public class LSMBTreeLocalResource extends LsmResource { opTrackerProvider.getOperationTracker(serviceCtx, this), ioSchedulerProvider.getIoScheduler(serviceCtx), ioOpCallbackFactory, pageWriteCallbackFactory, isPrimary, filterTypeTraits, filterCmpFactories, btreeFields, filterFields, durable, metadataPageManagerFactory, updateAware, serviceCtx.getTracer(), - compressorDecompressorFactory); + compressorDecompressorFactory, hasBloomFilter); } @Override @@ -120,18 +123,20 @@ public class LSMBTreeLocalResource extends LsmResource { final int[] bloomFilterKeyFields = OBJECT_MAPPER.convertValue(json.get("bloomFilterKeyFields"), int[].class); final double bloomFilterFalsePositiveRate = json.get("bloomFilterFalsePositiveRate").asDouble(); final boolean isPrimary = json.get("isPrimary").asBoolean(); + boolean hasBloomFilter = getOrDefaultHasBloomFilter(json, isPrimary); final int[] btreeFields = OBJECT_MAPPER.convertValue(json.get("btreeFields"), int[].class); final JsonNode compressorDecompressorNode = json.get("compressorDecompressorFactory"); final ICompressorDecompressorFactory compDecompFactory = (ICompressorDecompressorFactory) registry .deserializeOrDefault(compressorDecompressorNode, NoOpCompressorDecompressorFactory.class); return new LSMBTreeLocalResource(registry, json, bloomFilterKeyFields, bloomFilterFalsePositiveRate, isPrimary, - btreeFields, compDecompFactory); + btreeFields, compDecompFactory, hasBloomFilter); } @Override protected void appendToJson(final ObjectNode json, IPersistedResourceRegistry registry) throws HyracksDataException { super.appendToJson(json, registry); + json.put(HAS_BLOOM_FILTER_FIELD, hasBloomFilter); json.putPOJO("bloomFilterKeyFields", bloomFilterKeyFields); json.put("bloomFilterFalsePositiveRate", bloomFilterFalsePositiveRate); json.put("isPrimary", isPrimary); @@ -139,14 +144,11 @@ public class LSMBTreeLocalResource extends LsmResource { json.putPOJO("compressorDecompressorFactory", compressorDecompressorFactory.toJson(registry)); } - private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { - in.defaultReadObject(); - - // compat w/ 0.3.4 - if (compressorDecompressorFactory == null) { - ReflectionUtils.writeField(this, "compressorDecompressorFactory", - NoOpCompressorDecompressorFactory.INSTANCE); + private static boolean getOrDefaultHasBloomFilter(JsonNode json, boolean isPrimary) { + if (json.has(HAS_BLOOM_FILTER_FIELD)) { + return json.get(HAS_BLOOM_FILTER_FIELD).asBoolean(); } + // for backward compatibiliy, only primary indexes have bloom filters + return isPrimary; } - } diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResourceFactory.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResourceFactory.java index e71a3c1..a2c16b8 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResourceFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeLocalResourceFactory.java @@ -41,6 +41,7 @@ import org.apache.hyracks.util.ReflectionUtils; public class LSMBTreeLocalResourceFactory extends LsmResourceFactory { private static final long serialVersionUID = 1L; + protected final boolean hasBloomFilter; protected final int[] bloomFilterKeyFields; protected final double bloomFilterFalsePositiveRate; protected final boolean isPrimary; @@ -56,10 +57,11 @@ public class LSMBTreeLocalResourceFactory extends LsmResourceFactory { ILSMIOOperationSchedulerProvider ioSchedulerProvider, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, boolean durable, int[] bloomFilterKeyFields, double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields, - ICompressorDecompressorFactory compressorDecompressorFactory) { + ICompressorDecompressorFactory compressorDecompressorFactory, boolean hasBloomFilter) { super(storageManager, typeTraits, cmpFactories, filterTypeTraits, filterCmpFactories, filterFields, opTrackerFactory, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, vbcProvider, ioSchedulerProvider, mergePolicyFactory, mergePolicyProperties, durable); + this.hasBloomFilter = hasBloomFilter; this.bloomFilterKeyFields = bloomFilterKeyFields; this.bloomFilterFalsePositiveRate = bloomFilterFalsePositiveRate; this.isPrimary = isPrimary; @@ -73,7 +75,7 @@ public class LSMBTreeLocalResourceFactory extends LsmResourceFactory { isPrimary, fileRef.getRelativePath(), storageManager, mergePolicyFactory, mergePolicyProperties, filterTypeTraits, filterCmpFactories, btreeFields, filterFields, opTrackerProvider, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, vbcProvider, ioSchedulerProvider, durable, - compressorDecompressorFactory); + compressorDecompressorFactory, hasBloomFilter); } private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java index 8c5cdbb..021f416 100644 --- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java +++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/utils/LSMBTreeUtil.java @@ -75,8 +75,8 @@ public class LSMBTreeUtil { ILSMIOOperationCallbackFactory ioOpCallbackFactory, ILSMPageWriteCallbackFactory pageWriteCallbackFactory, boolean needKeyDupCheck, ITypeTraits[] filterTypeTraits, IBinaryComparatorFactory[] filterCmpFactories, int[] btreeFields, int[] filterFields, boolean durable, IMetadataPageManagerFactory freePageManagerFactory, - boolean updateAware, ITracer tracer, ICompressorDecompressorFactory compressorDecompressorFactory) - throws HyracksDataException { + boolean updateAware, ITracer tracer, ICompressorDecompressorFactory compressorDecompressorFactory, + boolean hasBloomFilter) throws HyracksDataException { LSMBTreeTupleWriterFactory insertTupleWriterFactory = new LSMBTreeTupleWriterFactory(typeTraits, cmpFactories.length, false, updateAware); LSMBTreeTupleWriterFactory deleteTupleWriterFactory = @@ -108,8 +108,6 @@ public class LSMBTreeUtil { filterFrameFactory = new LSMComponentFilterFrameFactory(filterTupleWriterFactory); filterManager = new LSMComponentFilterManager(filterFrameFactory); } - - boolean hasBloomFilter = bloomFilterKeyFields != null; ILSMIndexFileManager fileNameManager = new LSMBTreeFileManager(ioManager, file, diskBTreeFactory, hasBloomFilter, compressorDecompressorFactory); diff --git a/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/storage/am/btree/AbstractOperationCallbackTest.java b/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/storage/am/btree/AbstractOperationCallbackTest.java index 70d428f..73696e7 100644 --- a/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/storage/am/btree/AbstractOperationCallbackTest.java +++ b/hyracks-fullstack/hyracks/hyracks-test-support/src/main/java/org/apache/hyracks/storage/am/btree/AbstractOperationCallbackTest.java @@ -26,6 +26,7 @@ import org.apache.hyracks.storage.common.MultiComparator; public abstract class AbstractOperationCallbackTest { protected static final int NUM_KEY_FIELDS = 1; + protected static final boolean HAS_BLOOM_FILTER = true; @SuppressWarnings("rawtypes") protected final ISerializerDeserializer[] keySerdes; diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeExamplesTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeExamplesTest.java index deee002..1d41280 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeExamplesTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeExamplesTest.java @@ -64,7 +64,7 @@ public class LSMBTreeExamplesTest extends OrderedIndexExamplesTest { harness.getOperationTracker(), harness.getIOScheduler(), harness.getIOOperationCallbackFactory(), harness.getPageWriteCallbackFactory(), true, filterTypeTraits, filterCmpFactories, btreeFields, filterFields, true, harness.getMetadataPageManagerFactory(), false, ITracer.NONE, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, bloomFilterKeyFields != null); } @Before diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeModificationOperationCallbackTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeModificationOperationCallbackTest.java index 0d11607..8d8ec23 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeModificationOperationCallbackTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeModificationOperationCallbackTest.java @@ -54,7 +54,7 @@ public class LSMBTreeModificationOperationCallbackTest extends AbstractModificat NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null, null), harness.getIOScheduler(), harness.getIOOperationCallbackFactory(), harness.getPageWriteCallbackFactory(), true, null, null, null, null, true, harness.getMetadataPageManagerFactory(), false, ITracer.NONE, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, HAS_BLOOM_FILTER); } @Override diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeSearchOperationCallbackTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeSearchOperationCallbackTest.java index 56bd14c..ab068ae 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeSearchOperationCallbackTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeSearchOperationCallbackTest.java @@ -63,7 +63,7 @@ public class LSMBTreeSearchOperationCallbackTest extends AbstractSearchOperation NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null, null), harness.getIOScheduler(), harness.getIOOperationCallbackFactory(), harness.getPageWriteCallbackFactory(), true, null, null, null, null, true, harness.getMetadataPageManagerFactory(), false, ITracer.NONE, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, HAS_BLOOM_FILTER); } @Override diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeUpdateInPlaceTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeUpdateInPlaceTest.java index a695798..2954854 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeUpdateInPlaceTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/LSMBTreeUpdateInPlaceTest.java @@ -76,7 +76,7 @@ public class LSMBTreeUpdateInPlaceTest extends AbstractOperationCallbackTest { NoOpOperationTrackerFactory.INSTANCE.getOperationTracker(null, null), harness.getIOScheduler(), harness.getIOOperationCallbackFactory(), harness.getPageWriteCallbackFactory(), true, null, null, null, null, true, harness.getMetadataPageManagerFactory(), true, ITracer.NONE, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, HAS_BLOOM_FILTER); } @Override diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResource.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResource.java index 816bd0e..3450531 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResource.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResource.java @@ -56,18 +56,19 @@ public class TestLsmBtreeLocalResource extends LSMBTreeLocalResource { ILSMOperationTrackerFactory opTrackerProvider, ILSMIOOperationCallbackFactory ioOpCallbackFactory, ILSMPageWriteCallbackFactory pageWriteCallbackFactory, IMetadataPageManagerFactory metadataPageManagerFactory, IVirtualBufferCacheProvider vbcProvider, - ILSMIOOperationSchedulerProvider ioSchedulerProvider, boolean durable) { + ILSMIOOperationSchedulerProvider ioSchedulerProvider, boolean durable, boolean hasBloomFilter) { super(typeTraits, cmpFactories, bloomFilterKeyFields, bloomFilterFalsePositiveRate, isPrimary, path, storageManager, mergePolicyFactory, mergePolicyProperties, filterTypeTraits, filterCmpFactories, btreeFields, filterFields, opTrackerProvider, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, vbcProvider, ioSchedulerProvider, durable, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, hasBloomFilter); } protected TestLsmBtreeLocalResource(IPersistedResourceRegistry registry, JsonNode json, int[] bloomFilterKeyFields, - double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields) throws HyracksDataException { + double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields, boolean hasBloomFilter) + throws HyracksDataException { super(registry, json, bloomFilterKeyFields, bloomFilterFalsePositiveRate, isPrimary, btreeFields, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, hasBloomFilter); } @Override @@ -104,8 +105,9 @@ public class TestLsmBtreeLocalResource extends LSMBTreeLocalResource { final int[] bloomFilterKeyFields = OBJECT_MAPPER.convertValue(json.get("bloomFilterKeyFields"), int[].class); final double bloomFilterFalsePositiveRate = json.get("bloomFilterFalsePositiveRate").asDouble(); final boolean isPrimary = json.get("isPrimary").asBoolean(); + final boolean hasBloomFilter = json.get("hasBloomFilter").asBoolean(); final int[] btreeFields = OBJECT_MAPPER.convertValue(json.get("btreeFields"), int[].class); return new TestLsmBtreeLocalResource(registry, json, bloomFilterKeyFields, bloomFilterFalsePositiveRate, - isPrimary, btreeFields); + isPrimary, btreeFields, hasBloomFilter); } } diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResourceFactory.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResourceFactory.java index a6c1a23..229b027 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResourceFactory.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/impl/TestLsmBtreeLocalResourceFactory.java @@ -46,12 +46,12 @@ public class TestLsmBtreeLocalResourceFactory extends LSMBTreeLocalResourceFacto IMetadataPageManagerFactory metadataPageManagerFactory, IVirtualBufferCacheProvider vbcProvider, ILSMIOOperationSchedulerProvider ioSchedulerProvider, ILSMMergePolicyFactory mergePolicyFactory, Map<String, String> mergePolicyProperties, boolean durable, int[] bloomFilterKeyFields, - double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields) { + double bloomFilterFalsePositiveRate, boolean isPrimary, int[] btreeFields, boolean hasBloomFilter) { super(storageManager, typeTraits, cmpFactories, filterTypeTraits, filterCmpFactories, filterFields, opTrackerFactory, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, vbcProvider, ioSchedulerProvider, mergePolicyFactory, mergePolicyProperties, durable, bloomFilterKeyFields, bloomFilterFalsePositiveRate, isPrimary, btreeFields, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, hasBloomFilter); } @Override @@ -60,6 +60,6 @@ public class TestLsmBtreeLocalResourceFactory extends LSMBTreeLocalResourceFacto bloomFilterFalsePositiveRate, isPrimary, fileRef.getRelativePath(), storageManager, mergePolicyFactory, mergePolicyProperties, filterTypeTraits, filterCmpFactories, btreeFields, filterFields, opTrackerProvider, ioOpCallbackFactory, pageWriteCallbackFactory, metadataPageManagerFactory, - vbcProvider, ioSchedulerProvider, durable); + vbcProvider, ioSchedulerProvider, durable, hasBloomFilter); } } diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/multithread/LSMBTreeMultiThreadTest.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/multithread/LSMBTreeMultiThreadTest.java index 26707d6..fb1244f 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/multithread/LSMBTreeMultiThreadTest.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/multithread/LSMBTreeMultiThreadTest.java @@ -60,7 +60,7 @@ public class LSMBTreeMultiThreadTest extends OrderedIndexMultiThreadTest { harness.getOperationTracker(), harness.getIOScheduler(), harness.getIOOperationCallbackFactory(), harness.getPageWriteCallbackFactory(), true, null, null, null, null, true, harness.getMetadataPageManagerFactory(), false, ITracer.NONE, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, bloomFilterKeyFields != null); } @Override diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/perf/LSMTreeRunner.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/perf/LSMTreeRunner.java index 75a385e..3f36a34 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/perf/LSMTreeRunner.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/perf/LSMTreeRunner.java @@ -128,7 +128,7 @@ public class LSMTreeRunner implements IExperimentRunner { new ThreadCountingTracker(), ioScheduler, NoOpIOOperationCallbackFactory.INSTANCE, NoOpPageWriteCallbackFactory.INSTANCE, true, null, null, null, null, true, TestStorageManagerComponentHolder.getMetadataPageManagerFactory(), false, ITracer.NONE, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, bloomFilterKeyFields != null); } @Override diff --git a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/util/LSMBTreeTestContext.java b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/util/LSMBTreeTestContext.java index 396bf33..6da04e7 100644 --- a/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/util/LSMBTreeTestContext.java +++ b/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-btree-test/src/test/java/org/apache/hyracks/storage/am/lsm/btree/util/LSMBTreeTestContext.java @@ -103,7 +103,7 @@ public final class LSMBTreeTestContext extends OrderedIndexTestContext { cmpFactories, bloomFilterKeyFields, bloomFilterFalsePositiveRate, mergePolicy, opTracker, ioScheduler, ioOpCallbackFactory, pageWriteCallbackFactory, needKeyDupCheck, filterTypeTraits, filterCmp, btreefields, filterfields, true, metadataPageManagerFactory, updateAware, ITracer.NONE, - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, true); } else { lsmTree = LSMBTreeUtil.createLSMTree(ioManager, virtualBufferCaches, file, diskBufferCache, typeTraits, cmpFactories, bloomFilterKeyFields, bloomFilterFalsePositiveRate, mergePolicy, opTracker, @@ -111,7 +111,7 @@ public final class LSMBTreeTestContext extends OrderedIndexTestContext { true, metadataPageManagerFactory, updateAware, new Tracer(LSMBTreeTestContext.class.getSimpleName(), ITraceCategoryRegistry.CATEGORIES_ALL, new TraceCategoryRegistry()), - NoOpCompressorDecompressorFactory.INSTANCE); + NoOpCompressorDecompressorFactory.INSTANCE, true); } LSMBTreeTestContext testCtx = new LSMBTreeTestContext(fieldSerdes, lsmTree, filtered); return testCtx;
