aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Stockhammer <martin_s@apache.org>2021-08-29 13:57:22 +0200
committerMartin Stockhammer <martin_s@apache.org>2021-08-29 13:57:22 +0200
commitd0aa5dd63718373102f89f87f37d2201e350e59d (patch)
tree7f8d8ce4b29b3d234045671be1007fb157b4603c
parent20918cb383892f8f79322fb2889262074efe0383 (diff)
downloadarchiva-d0aa5dd63718373102f89f87f37d2201e350e59d.tar.gz
archiva-d0aa5dd63718373102f89f87f37d2201e350e59d.zip
Trying to speed up table truncate
-rw-r--r--archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/pom.xml3
-rw-r--r--archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java29
2 files changed, 20 insertions, 12 deletions
diff --git a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/pom.xml b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/pom.xml
index e0f592a7a..477482870 100644
--- a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/pom.xml
+++ b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/pom.xml
@@ -396,7 +396,7 @@
<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
@@ -404,6 +404,7 @@
<systemPropertyVariables>
<java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
</systemPropertyVariables>
+
</configuration>
</execution>
<execution>
diff --git a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java
index 4ab388149..71636efb4 100644
--- a/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java
+++ b/archiva-modules/metadata/metadata-store-provider/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java
@@ -44,7 +44,10 @@ import java.nio.file.Path;
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 @@ public class CassandraMetadataRepositoryTest
long cTime;
int testNum = 0;
- AtomicBoolean clearedTables = new AtomicBoolean( false );
+ final AtomicBoolean clearedTables = new AtomicBoolean( false );
@Override
@@ -121,8 +124,7 @@ public class CassandraMetadataRepositoryTest
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 class CassandraMetadataRepositoryTest
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 @@ public class CassandraMetadataRepositoryTest
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 );
+ }
+
}