@Override public String toString() { return nodeLabelRange.toString(); } }
@Override public void close() throws Exception { nodeLabelRanges.close(); }
@Override public void cleanupFinished( long numberOfPagesVisited, long numberOfCleanedCrashPointers, long durationMillis ) { monitor.recoveryCleanupFinished( numberOfPagesVisited, numberOfCleanedCrashPointers, durationMillis ); }
private void prepareIndex() throws IOException { start(); try ( LabelScanWriter labelScanWriter = store.newWriter() ) { labelScanWriter.write( NodeLabelUpdate.labelChanges( 1, new long[]{}, new long[]{1} ) ); } store.shutdown(); }
public static NodeLabelUpdate labelChanges( long nodeId, long[] labelsBeforeChange, long[] labelsAfterChange ) { return labelChanges( nodeId, labelsBeforeChange, labelsAfterChange, -1 ); }
public LabelIndexWriterStep( StageControl control, Configuration config, LabelScanStore store, NodeStore nodeStore ) { super( control, "LABEL INDEX", config, 1 ); this.writer = store.newWriter(); this.nodeStore = nodeStore; }
@Override public boolean visit( NodeLabelUpdate update ) throws IOException { writer.write( update ); count++; return false; } }
@Override public long maxCount() { return nodeLabelRanges.maxCount(); }
private boolean isEmptyLabelScanStore() throws Exception { return labelScanStore.isEmpty(); }
@Override public void cleanupClosed() { monitor.recoveryCleanupClosed(); }
@Override public int rangeSize() { return nodeLabelRanges.rangeSize(); }
@Override public void cleanupStarted() { monitor.recoveryCleanupStarted(); }
@Override public void cleanupFailed( Throwable throwable ) { monitor.recoveryCleanupFailed( throwable ); } }
public static NodeLabelUpdate labelChanges( long nodeId, long[] labelsBeforeChange, long[] labelsAfterChange, long txId ) { return new NodeLabelUpdate( nodeId, labelsBeforeChange, labelsAfterChange, txId ); }
@Override public void cleanupRegistered() { monitor.recoveryCleanupRegistered(); }
@Override protected NodeLabelUpdate fetchNextOrNull() { return ++i < nodeCount ? labelChanges( i, NO_LABELS, new long[]{labelId} ) : null; } } );
static FullStoreChangeStream asStream( final List<NodeLabelUpdate> existingData ) { return writer -> { long count = 0; for ( NodeLabelUpdate update : existingData ) { writer.write( update ); count++; } return count; }; } }
@Override public String toString() { String rangeString = idRange * labels.length + "-" + (idRange + 1) * labels.length; String prefix = "NodeLabelRange[idRange=" + rangeString; return toString( prefix, nodes, labels ); }