@Override public void setHighestPossibleIdInUse( long highestIdInUse ) { actual.setHighestPossibleIdInUse( highestIdInUse ); }
@Override public void close() { // Notifies the stores about the recovered ids and will bump those high ids atomically if // they surpass the current high ids for ( Map.Entry<RecordStore<?>,HighId> highId : highIds.entrySet() ) { highId.getKey().setHighestPossibleIdInUse( highId.getValue().id ); } }
private static <RECORD extends AbstractBaseRecord> void migrate( RecordStore<RECORD> from, RecordStore<RECORD> to ) { to.setHighestPossibleIdInUse( from.getHighestPossibleIdInUse() ); from.scanAllRecords( record -> { to.prepareForCommit( record ); to.updateRecord( record ); return false; } ); }
@SuppressWarnings( "unchecked" ) @Test public void shouldProcessAllTheRecordsInAStore() throws Exception { // given RecordStore<NodeRecord> nodeStore = stores.builder().build().getNodeStore(); ConsistencyReport.Reporter reporter = mock( ConsistencyReport.Reporter.class ); StoreProcessor processor = new StoreProcessor( CheckDecorator.NONE, reporter, Stage.SEQUENTIAL_FORWARD, CacheAccess.EMPTY ); nodeStore.updateRecord( node( 0, false, 0, 0 ) ); nodeStore.updateRecord( node( 1, false, 0, 0 ) ); nodeStore.updateRecord( node( 2, false, 0, 0 ) ); nodeStore.setHighestPossibleIdInUse( 2 ); // when processor.applyFiltered( nodeStore ); // then verify( reporter, times( 3 ) ).forNode( any( NodeRecord.class ), any( RecordCheck.class ) ); }
nodeStore.updateRecord( node( 3, false, 0, 0 ) ); nodeStore.updateRecord( node( 4, false, 0, 0 ) ); nodeStore.setHighestPossibleIdInUse( 4 );
nodeRecord.setId( nodeId ); nodeStore.updateRecord( nodeRecord ); nodeStore.setHighestPossibleIdInUse( nodeId ); initializedNodes.set( nodeId );
nodeRecord.setId( nodeId ); nodeStore.updateRecord( nodeRecord ); nodeStore.setHighestPossibleIdInUse( nodeId );
@Override public void setHighestPossibleIdInUse( long highestIdInUse ) { actual.setHighestPossibleIdInUse( highestIdInUse ); }
@Override public void close() { // Notifies the stores about the recovered ids and will bump those high ids atomically if // they surpass the current high ids for ( Map.Entry<RecordStore<?>,HighId> highId : highIds.entrySet() ) { highId.getKey().setHighestPossibleIdInUse( highId.getValue().id ); } }
private static <RECORD extends AbstractBaseRecord> void migrate( RecordStore<RECORD> from, RecordStore<RECORD> to ) { to.setHighestPossibleIdInUse( from.getHighestPossibleIdInUse() ); from.scanAllRecords( record -> { to.prepareForCommit( record ); to.updateRecord( record ); return false; } ); }