static long getComponentSize(BloomFilter bloomFilter) { return bloomFilter.getFileReference().getFile().length(); } }
private long getNumberOfElements(List<ILSMComponent> mergedComponents) throws HyracksDataException { long numElements = 0L; if (hasBloomFilter) { //count elements in btree for creating Bloomfilter for (int i = 0; i < mergedComponents.size(); ++i) { numElements += ((AbstractLSMWithBloomFilterDiskComponent) mergedComponents.get(i)).getBloomFilter() .getNumElements(); } } return numElements; }
public boolean contains(ITupleReference tuple, long[] hashes) throws HyracksDataException { if (numPages == 0) { return false; } MurmurHash128Bit.hash3_x64_128(tuple, keyFields, SEED, hashes); if (version == BLOCKED_BLOOM_FILTER_VERSION) { return blockContains(hashes); } else { return legacyContains(hashes); } }
protected boolean isDeleted(ITupleReference key) throws HyracksDataException { keySearchPred.setLowKey(key, true); keySearchPred.setHighKey(key, true); for (int i = 0; i < accessorIndex; i++) { deletedKeysBTreeCursors[i].close(); if (deletedKeysBTreeBloomFilters[i] != null && !deletedKeysBTreeBloomFilters[i].contains(key, hashes)) { continue; } try { deletedKeysBTreeAccessors.get(i).search(deletedKeysBTreeCursors[i], keySearchPred); if (deletedKeysBTreeCursors[i].hasNext()) { return true; } } finally { deletedKeysBTreeCursors[i].close(); } } return false; }
for (int i = 0; i < mergeOp.getMergingComponents().size(); ++i) { numElements += ((LSMRTreeDiskComponent) mergeOp.getMergingComponents().get(i)).getBloomFilter() .getNumElements(); BloomFilterSpecification bloomFilterSpec = BloomCalculations.computeBloomSpec(maxBucketsPerElement, bloomFilterFalsePositiveRate); IIndexBulkLoader builder = mergedComponent.getBloomFilter().createBuilder(numElements, bloomFilterSpec.getNumHashes(), bloomFilterSpec.getNumBucketsPerElements());
public int getNumPages() throws HyracksDataException { if (!isActivated) { activate(); } return numPages; }
public IChainedComponentBulkLoader createBloomFilterBulkLoader(long numElementsHint) throws HyracksDataException { BloomFilterSpecification bloomFilterSpec = BloomCalculations.computeBloomSpec( BloomCalculations.maxBucketsPerElement(numElementsHint), getLsmIndex().bloomFilterFalsePositiveRate()); return new BloomFilterBulkLoader(getBloomFilter().createBuilder(numElementsHint, bloomFilterSpec.getNumHashes(), bloomFilterSpec.getNumBucketsPerElements())); }
public BloomFilter createBloomFiltertInstance(FileReference file) throws HyracksDataException { return new BloomFilter(bufferCache, file, bloomFilterKeyFields); }
/** * Check deleted-keys BTrees whether they contain the key in the checkElement's tuple. */ protected boolean isDeleted(PriorityQueueElement keyElement) throws HyracksDataException { ITupleReference keyTuple = keyElement.getTuple(); int end = keyElement.getCursorIndex(); for (int i = 0; i < end; i++) { if (bloomFilters[i] != null && !bloomFilters[i].contains(keyTuple, hashes)) { continue; } deletedKeysBTreeCursors[i].close(); deletedKeysBTreeAccessors.get(i).search(deletedKeysBTreeCursors[i], deletedKeyBTreeSearchPred); try { if (deletedKeysBTreeCursors[i].hasNext()) { return true; } } finally { deletedKeysBTreeCursors[i].close(); } } return false; }
static void addFiles(Set<String> files, BloomFilter bloomFilter) { files.add(bloomFilter.getFileReference().getFile().getAbsolutePath()); }
/** * Check deleted-keys BTrees whether they contain the key in the checkElement's tuple. */ @Override protected boolean isDeleted(PriorityQueueElement checkElement) throws HyracksDataException { keysOnlyTuple.reset(checkElement.getTuple()); int end = checkElement.getCursorIndex(); for (int i = 0; i < end; i++) { if (bloomFilters[i] != null && !bloomFilters[i].contains(keysOnlyTuple, hashes)) { continue; } deletedKeysBTreeAccessors.get(i).search(deletedKeysBTreeCursors[i], keySearchPred); try { if (deletedKeysBTreeCursors[i].hasNext()) { return true; } } finally { deletedKeysBTreeCursors[i].close(); } } return false; }
for (int i = 0; i < mergeOp.getMergingComponents().size(); ++i) { numElements += ((LSMRTreeDiskComponent) mergeOp.getMergingComponents().get(i)).getBloomFilter() .getNumElements();
@Override public Set<String> getLSMComponentPhysicalFiles() { Set<String> files = getFiles(rtree); files.add(btree.getFileReference().getFile().getAbsolutePath()); files.add(bloomFilter.getFileReference().getFile().getAbsolutePath()); return files; }
for (int i = 0; i < currentCursor && !killerTupleFound; i++) { if (buddyBtreeBloomFilters[i] != null && !buddyBtreeBloomFilters[i].contains(buddyBTreeTuple, hashes)) { continue;
for (int i = 0; i < mergeOp.getMergingComponents().size(); ++i) { numElements += ((LSMInvertedIndexDiskComponent) mergeOp.getMergingComponents().get(i)) .getBloomFilter().getNumElements();
@Override public Set<String> getLSMComponentPhysicalFiles() { Set<String> files = new HashSet<>(); files.add(invIndex.getInvListsFile().getFile().getAbsolutePath()); files.add(invIndex.getBTree().getFileReference().getFile().getAbsolutePath()); files.add(bloomFilter.getFileReference().getFile().getAbsolutePath()); files.add(deletedKeysBTree.getFileReference().getFile().getAbsolutePath()); return files; }
boolean killerTupleFound = false; for (int i = 0; i < currentCursor && !killerTupleFound; i++) { if (bloomFilters[i] != null && bloomFilters[i].contains(btreeTuple, hashes)) { continue;
for (int i = 0; i < mergeOp.getMergingComponents().size(); ++i) { numElements += ((AbstractLSMWithBloomFilterDiskComponent) mergeOp.getMergingComponents().get(i)) .getBloomFilter().getNumElements();
@Override public long getComponentSize() { long size = getComponentSize(rtree); size += btree.getFileReference().getFile().length(); size += bloomFilter.getFileReference().getFile().length(); return size; }