Skip to content
Permalink
Browse files
Trying to speed up table truncate
  • Loading branch information
effrafax committed Aug 29, 2021
1 parent 20918cb commit d0aa5dd63718373102f89f87f37d2201e350e59d
Showing 2 changed files with 20 additions and 12 deletions.
@@ -396,14 +396,15 @@
<addTestClasspath>false</addTestClasspath>
<startWaitSeconds>500</startWaitSeconds>
<startNativeTransport>true</startNativeTransport>
<logLevel>DEBUG</logLevel>
<logLevel>INFO</logLevel>
<loadAfterFirstStart>false</loadAfterFirstStart>
<yaml>
broadcast_rpc_address: 127.0.0.1
</yaml>
<systemPropertyVariables>
<java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
</systemPropertyVariables>

</configuration>
</execution>
<execution>
@@ -44,7 +44,10 @@
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;

import static com.datastax.oss.driver.api.querybuilder.QueryBuilder.truncate;
import static com.datastax.oss.driver.api.querybuilder.SchemaBuilder.dropTable;
@@ -72,7 +75,7 @@

long cTime;
int testNum = 0;
AtomicBoolean clearedTables = new AtomicBoolean( false );
final AtomicBoolean clearedTables = new AtomicBoolean( false );


@Override
@@ -121,8 +124,7 @@ public void setUp( TestInfo testInfo )

if (!clearedTables.get())
{
clearReposAndNamespace( cassandraArchivaManager );
clearedTables.set( true );
clearReposAndNamespace( cassandraArchivaManager, clearedTables );
}
System.err.println( "Finished setting up - "+testInfo.getDisplayName() + " - " + (System.currentTimeMillis( ) - cTime) +"ms");
}
@@ -164,13 +166,12 @@ public void shutdown(TestInfo testInfo)
throws Exception
{
System.err.println( "Shutting down - " + (testNum-1) + " - " + testInfo.getDisplayName( ) + " - " + ( System.currentTimeMillis( ) - cTime ) +"ms");
clearReposAndNamespace( cassandraArchivaManager );
clearedTables.set( true );
clearReposAndNamespace( cassandraArchivaManager, clearedTables );
super.tearDown();
System.err.println( "Shutting down finished - " + testInfo.getDisplayName( ) + " - " + ( System.currentTimeMillis( ) - cTime ) +"ms");
}

static void clearReposAndNamespace( CassandraArchivaManager cassandraArchivaManager )
static void clearReposAndNamespace( final CassandraArchivaManager cassandraArchivaManager, final AtomicBoolean clearedFlag )
throws Exception
{
if (cassandraArchivaManager!=null)
@@ -188,15 +189,21 @@ static void clearReposAndNamespace( CassandraArchivaManager cassandraArchivaMana
cassandraArchivaManager.getLicenseFamilyName( ),
cassandraArchivaManager.getDependencyFamilyName( )
);
for ( String table : tables )
{
session.execute( truncate( table ).build( ) );
}

CompletableFuture.allOf( tables.stream( ).map( table -> session.executeAsync( truncate( table ).build( ) ) )
.map( CompletionStage::toCompletableFuture ).collect( Collectors.toList( ) ).toArray( new CompletableFuture[0] ) )
.thenAccept( ( c ) -> {
if ( clearedFlag != null ) clearedFlag.set( true );
} ).get( )
;
}
} else {
System.err.println( "cassandraArchivaManager is null" );
}
}

static void clearReposAndNamespace( final CassandraArchivaManager cassandraArchivaManager)
throws Exception {
clearReposAndNamespace( cassandraArchivaManager, null );
}

}

0 comments on commit d0aa5dd

Please sign in to comment.