This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git


The following commit(s) were added to refs/heads/master by this push:
     new d0aa5dd  Trying to speed up table truncate
d0aa5dd is described below

commit d0aa5dd63718373102f89f87f37d2201e350e59d
Author: Martin Stockhammer <[email protected]>
AuthorDate: Sun Aug 29 13:57:22 2021 +0200

    Trying to speed up table truncate
---
 .../metadata-store-cassandra/pom.xml               |  3 ++-
 .../cassandra/CassandraMetadataRepositoryTest.java | 29 ++++++++++++++--------
 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 e0f592a..4774828 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 4ab3881..71636ef 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 );
+    }
+
 }

Reply via email to