@Override public void get(IValueReference key, ArrayBackedValueStorage value) throws HyracksDataException { mdpManager.get(mdpManager.createMetadataFrame(), key, value); }
@Override public void put(IValueReference key, IValueReference value) throws HyracksDataException { mdpManager.put(mdpManager.createMetadataFrame(), key, value); }
public void copy(IMetadataPageManager mdpManager) throws HyracksDataException { lock.readLock().lock(); try { LOGGER.trace("Copying Metadata into a different component"); ITreeIndexMetadataFrame frame = mdpManager.createMetadataFrame(); for (Pair<IValueReference, ArrayBackedValueStorage> pair : store) { if (LOGGER.isTraceEnabled()) { LOGGER.trace("Copying " + pair.getKey() + " : " + pair.getValue().getLength() + " bytes"); } mdpManager.put(frame, pair.getKey(), pair.getValue()); } } finally { lock.readLock().unlock(); } }
@Override public boolean readFilter(ILSMComponentFilter filter, ITreeIndex treeIndex) throws HyracksDataException { IMetadataPageManager treeMetaManager = (IMetadataPageManager) treeIndex.getPageManager(); ILSMComponentFilterReference filterFrame = filterFrameFactory.createFrame(); treeMetaManager.get(treeMetaManager.createMetadataFrame(), FILTER_KEY, filterFrame); // TODO: Filters never have one of min/max set and the other not if (!filterFrame.isMinTupleSet() || !filterFrame.isMaxTupleSet()) { return false; } List<ITupleReference> filterTuples = new ArrayList<>(); filterTuples.add(filterFrame.getMinTuple()); filterTuples.add(filterFrame.getMaxTuple()); updateFilter(filter, filterTuples, NoOpOperationCallback.INSTANCE); return true; }
public static long getTreeIndexLSN(DiskComponentMetadata md) throws HyracksDataException { LongPointable pointable = new LongPointable(); IMetadataPageManager metadataPageManager = md.getMetadataPageManager(); metadataPageManager.get(metadataPageManager.createMetadataFrame(), KEY_METADATA_FLUSH_LOG_LSN, pointable); return pointable.getLength() == 0 ? INVALID_LSN : pointable.longValue(); }
@Override public void writeFilter(ILSMComponentFilter filter, ITreeIndex treeIndex) throws HyracksDataException { IMetadataPageManager treeMetaManager = (IMetadataPageManager) treeIndex.getPageManager(); ILSMComponentFilterReference filterFrame = filterFrameFactory.createFrame(); try { if (filter.getMinTuple() != null) { filterFrame.writeMinTuple(filter.getMinTuple()); } if (filter.getMaxTuple() != null) { filterFrame.writeMaxTuple(filter.getMaxTuple()); } } finally { treeMetaManager.put(treeMetaManager.createMetadataFrame(), FILTER_KEY, filterFrame); } }