Luo Chen has submitted this change and it was merged. ( https://asterix-gerrit.ics.uci.edu/3366 )
Change subject: [NO ISSUE][STO]Ensure Bloom filters are not built for secondary indexes ...................................................................... [NO ISSUE][STO]Ensure Bloom filters are not built for secondary indexes - user model changes: no - storage format changes: no - interface changes: no Details: - Calculate bloom filter fields properly based on the index type so that we do not build unnecessary bloom filters for secondary indexes. Change-Id: Ib4272e5278bf76fa78af36ccf10d516da12c4810 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3366 Contrib: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Murtadha Hubail <mhub...@apache.org> --- M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/dataflow/TestLsmBTreeResourceFactoryProvider.java M asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/BTreeResourceFactoryProvider.java 2 files changed, 26 insertions(+), 13 deletions(-) Approvals: Jenkins: Verified; ; Verified Murtadha Hubail: Looks good to me, approved Objections: Jenkins: Violations found Anon. E. Moose (1000171): Violations found 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 8d37878..9a0cd5a 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 @@ -22,6 +22,7 @@ import java.util.Map; import org.apache.asterix.common.config.DatasetConfig.DatasetType; +import org.apache.asterix.common.config.DatasetConfig.IndexType; import org.apache.asterix.common.context.AsterixVirtualBufferCacheProvider; import org.apache.asterix.common.context.IStorageComponentProvider; import org.apache.asterix.external.indexing.FilesIndexDescription; @@ -155,7 +156,8 @@ } private static int[] getBloomFilterFields(Dataset dataset, Index index) throws AlgebricksException { - if (index.isPrimaryIndex()) { + // both the Primary index and the Primary Key index have bloom filters + if (index.isPrimaryIndex() || index.isPrimaryKeyIndex()) { return dataset.getPrimaryBloomFilterFields(); } else if (dataset.getDatasetType() == DatasetType.EXTERNAL) { if (index.getIndexName().equals(IndexingConstants.getFilesIndexName(dataset.getDatasetName()))) { @@ -163,12 +165,17 @@ } else { return new int[] { index.getKeyFieldNames().size() }; } + } else if (index.getIndexType() == IndexType.BTREE || index.getIndexType() == IndexType.RTREE) { + // secondary btrees and rtrees do not have bloom filters + return null; + } else { + // inverted indexes have bloom filters on deleted-key btrees + int numKeys = index.getKeyFieldNames().size(); + int[] bloomFilterKeyFields = new int[numKeys]; + for (int i = 0; i < numKeys; i++) { + bloomFilterKeyFields[i] = i; + } + return bloomFilterKeyFields; } - int numKeys = index.getKeyFieldNames().size(); - int[] bloomFilterKeyFields = new int[numKeys]; - for (int i = 0; i < numKeys; i++) { - bloomFilterKeyFields[i] = i; - } - return bloomFilterKeyFields; } } 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 883da84..21fafaf 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 @@ -22,6 +22,7 @@ import java.util.Map; import org.apache.asterix.common.config.DatasetConfig.DatasetType; +import org.apache.asterix.common.config.DatasetConfig.IndexType; import org.apache.asterix.common.context.AsterixVirtualBufferCacheProvider; import org.apache.asterix.common.context.IStorageComponentProvider; import org.apache.asterix.common.exceptions.CompilationException; @@ -194,12 +195,17 @@ } else { return new int[] { index.getKeyFieldNames().size() }; } + } else if (index.getIndexType() == IndexType.BTREE || index.getIndexType() == IndexType.RTREE) { + // secondary btrees and rtrees do not have bloom filters + return null; + } else { + // inverted indexes have bloom filters on deleted-key btrees + int numKeys = index.getKeyFieldNames().size(); + int[] bloomFilterKeyFields = new int[numKeys]; + for (int i = 0; i < numKeys; i++) { + bloomFilterKeyFields[i] = i; + } + return bloomFilterKeyFields; } - int numKeys = index.getKeyFieldNames().size(); - int[] bloomFilterKeyFields = new int[numKeys]; - for (int i = 0; i < numKeys; i++) { - bloomFilterKeyFields[i] = i; - } - return bloomFilterKeyFields; } } -- To view, visit https://asterix-gerrit.ics.uci.edu/3366 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib4272e5278bf76fa78af36ccf10d516da12c4810 Gerrit-Change-Number: 3366 Gerrit-PatchSet: 3 Gerrit-Owner: Luo Chen <cl...@uci.edu> Gerrit-Reviewer: Anon. E. Moose (1000171) Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Gerrit-Reviewer: Luo Chen <cl...@uci.edu> Gerrit-Reviewer: Murtadha Hubail <mhub...@apache.org>