private long lsnFromImmutableMemoryComponents() { List<ILSMMemoryComponent> memComponents = index.getMemoryComponents(); int numOtherMemComponents = memComponents.size() - 1; int next = index.getCurrentMemoryComponentIndex(); long lsn = ComponentUtils.NOT_FOUND; for (int i = 0; i < numOtherMemComponents; i++) { next = next - 1; if (next < 0) { next = memComponents.size() - 1; } ILSMMemoryComponent c = index.getMemoryComponents().get(next); if (c.isReadable()) { try { lsn = ComponentUtils.getLong(c.getMetadata(), ComponentUtils.MARKER_LSN_KEY, ComponentUtils.NOT_FOUND, buffer); } catch (HyracksDataException e) { // Should never happen since this is a memory component throw new IllegalStateException(e); } if (lsn != ComponentUtils.NOT_FOUND) { return lsn; } } } return lsn; }
private boolean flushingOrMerging() { // check if flushes are taking place for (ILSMMemoryComponent memComponent : lsmIndex.getMemoryComponents()) { if (memComponent.getState() == ComponentState.READABLE_UNWRITABLE_FLUSHING) { return true; } } // check if merges are taking place for (ILSMDiskComponent diskComponent : lsmIndex.getDiskComponents()) { if (diskComponent.getState() == ComponentState.READABLE_MERGING) { return true; } } return false; }
LOGGER.log(Level.DEBUG, "Getting " + key + " from immutable memory components of " + index); List<ILSMMemoryComponent> memComponents = index.getMemoryComponents(); int numOtherMemComponents = memComponents.size() - 1; int next = index.getCurrentMemoryComponentIndex(); next = memComponents.size() - 1; ILSMMemoryComponent c = index.getMemoryComponents().get(next); if (c.isReadable()) { c.getMetadata().get(key, value);
private void assertCorrectSearchComponents(ILSMIndexOperationContext opCtx, ILSMIndex index, int numSuccesfullyCompletedFlushes) throws HyracksDataException { opCtx.reset(); opCtx.setOperation(IndexOperation.SEARCH); index.getOperationalComponents(opCtx); List<ILSMMemoryComponent> memComponents = index.getMemoryComponents(); int first = numSuccesfullyCompletedFlushes % memComponents.size(); Assert.assertEquals(memComponents.get(first), getFirstMemoryComponent(opCtx)); }