public static void dump( FileSystemAbstraction fs, DatabaseLayout databaseLayout, Dumper dumper, TxFilter txFilter ) throws IOException { File writeLogFile = writeLogBaseFile( databaseLayout ); String writeLogFileBaseName = writeLogFile.getName(); File[] files = fs.listFiles( databaseLayout.databaseDirectory(), ( dir, name ) -> name.startsWith( writeLogFileBaseName ) ); Arrays.sort( files, comparing( file -> file.getName().equals( writeLogFileBaseName ) ? 0 : millisOf( file ) ) ); long session = 0; for ( File file : files ) { dumper.file( file ); session = dumpFile( fs, file, dumper, txFilter, session ); } }
public static void dump( FileSystemAbstraction fs, DatabaseLayout databaseLayout, Dumper dumper, TxFilter txFilter ) throws IOException { File writeLogFile = writeLogBaseFile( databaseLayout ); String writeLogFileBaseName = writeLogFile.getName(); File[] files = fs.listFiles( databaseLayout.databaseDirectory(), ( dir, name ) -> name.startsWith( writeLogFileBaseName ) ); Arrays.sort( files, comparing( file -> file.getName().equals( writeLogFileBaseName ) ? 0 : millisOf( file ) ) ); long session = 0; for ( File file : files ) { dumper.file( file ); session = dumpFile( fs, file, dumper, txFilter, session ); } }
private static void dumpMerge( Dumper dumper, byte type, ReadableChannel channel, long range, int labelId, TxFilter txFilter, long session, long flush ) throws IOException { long existingBits = channel.getLong(); long newBits = channel.getLong(); if ( txFilter == null || txFilter.contains() ) { dumper.merge( type == TYPE_MERGE_ADD, session, flush, range, labelId, existingBits, newBits ); } }
private static void dumpPrepare( Dumper dumper, byte type, ReadableChannel channel, long range, int labelId, TxFilter txFilter, long session, long flush ) throws IOException { long txId = channel.getLong(); int offset = channel.get(); long nodeId = range * 64 + offset; if ( txFilter == null || txFilter.contains( txId ) ) { // I.e. if the txId this update comes from is within the txFilter dumper.prepare( type == TYPE_PREPARE_ADD, session, flush, txId, nodeId, labelId ); } }
private static void dumpMerge( Dumper dumper, byte type, ReadableChannel channel, long range, int labelId, TxFilter txFilter, long session, long flush ) throws IOException { long existingBits = channel.getLong(); long newBits = channel.getLong(); if ( txFilter == null || txFilter.contains() ) { dumper.merge( type == TYPE_MERGE_ADD, session, flush, range, labelId, existingBits, newBits ); } }
private static void dumpPrepare( Dumper dumper, byte type, ReadableChannel channel, long range, int labelId, TxFilter txFilter, long session, long flush ) throws IOException { long txId = channel.getLong(); int offset = channel.get(); long nodeId = range * 64 + offset; if ( txFilter == null || txFilter.contains( txId ) ) { // I.e. if the txId this update comes from is within the txFilter dumper.prepare( type == TYPE_PREPARE_ADD, session, flush, txId, nodeId, labelId ); } }