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

mariofusco pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-benchmarks.git


The following commit(s) were added to refs/heads/main by this push:
     new 0ddde0a9 DROOLS-7573 - add parameter for h2vm/infinispan store (#268)
0ddde0a9 is described below

commit 0ddde0a9c5ed87c7290faf2af0a882a6683b40f5
Author: nprentza <[email protected]>
AuthorDate: Thu Oct 19 13:06:57 2023 +0300

    DROOLS-7573 - add parameter for h2vm/infinispan store (#268)
    
    * add parameter for h2vm/infinispan store
    
    * add 'h2vmstore' option in Mode parameter
    
    * a fix for InsertOnlyBenchmark
---
 .../drools-benchmarks-reliability/pom.xml          |  4 +
 .../reliability/AbstractReliabilityBenchmark.java  | 94 ++++++++++++++++------
 .../reliability/FireAndAlarmBenchmark.java         |  2 +-
 .../reliability/InsertFailoverFireBenchmark.java   | 18 +++--
 4 files changed, 85 insertions(+), 33 deletions(-)

diff --git a/drools-benchmarks-parent/drools-benchmarks-reliability/pom.xml 
b/drools-benchmarks-parent/drools-benchmarks-reliability/pom.xml
index 7f8e25b3..33c88296 100644
--- a/drools-benchmarks-parent/drools-benchmarks-reliability/pom.xml
+++ b/drools-benchmarks-parent/drools-benchmarks-reliability/pom.xml
@@ -47,6 +47,10 @@
       <groupId>org.drools</groupId>
       <artifactId>drools-reliability-infinispan</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-reliability-h2mvstore</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.infinispan</groupId>
       <artifactId>infinispan-server-testdriver-core</artifactId>
diff --git 
a/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/AbstractReliabilityBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/AbstractReliabilityBenchmark.java
index cd3be3cf..c39b6400 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/AbstractReliabilityBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/AbstractReliabilityBenchmark.java
@@ -21,7 +21,10 @@ import java.nio.file.Path;
 
 import org.drools.benchmarks.common.AbstractBenchmark;
 import org.drools.benchmarks.common.util.RuntimeUtil;
+import org.drools.reliability.core.ReliableGlobalResolverFactory;
+import org.drools.reliability.core.SimpleReliableObjectStoreFactory;
 import org.drools.reliability.core.StorageManagerFactory;
+import org.drools.reliability.h2mvstore.H2MVStoreStorageManager;
 import org.drools.reliability.infinispan.InfinispanStorageManager;
 import org.drools.reliability.infinispan.InfinispanStorageManagerFactory;
 import org.drools.util.FileUtils;
@@ -33,23 +36,26 @@ import org.openjdk.jmh.annotations.Param;
 import org.openjdk.jmh.annotations.Setup;
 import org.openjdk.jmh.annotations.TearDown;
 
-import static 
org.drools.benchmarks.reliability.AbstractReliabilityBenchmark.Mode.EMBEDDED;
+import static 
org.drools.benchmarks.reliability.AbstractReliabilityBenchmark.Mode.INFINISPAN_EMBEDDED;
 import static 
org.drools.benchmarks.reliability.AbstractReliabilityBenchmark.Mode.NONE;
-import static 
org.drools.benchmarks.reliability.AbstractReliabilityBenchmark.Mode.REMOTE;
-import static 
org.drools.benchmarks.reliability.AbstractReliabilityBenchmark.Mode.REMOTEPROTO;
+import static 
org.drools.benchmarks.reliability.AbstractReliabilityBenchmark.Mode.INFINISPAN_REMOTE;
+import static 
org.drools.benchmarks.reliability.AbstractReliabilityBenchmark.Mode.INFINISPAN_REMOTEPROTO;
+import static 
org.drools.benchmarks.reliability.AbstractReliabilityBenchmark.Mode.H2MVSTORE;
 import static 
org.drools.reliability.infinispan.EmbeddedStorageManager.GLOBAL_STATE_DIR;
 import static 
org.drools.reliability.infinispan.InfinispanStorageManagerFactory.INFINISPAN_STORAGE_ALLOWED_PACKAGES;
 import static 
org.drools.reliability.infinispan.InfinispanStorageManagerFactory.INFINISPAN_STORAGE_MARSHALLER;
 import static 
org.drools.reliability.infinispan.InfinispanStorageManagerFactory.INFINISPAN_STORAGE_MODE;
+import static org.drools.util.Config.getConfig;
 
 public abstract class AbstractReliabilityBenchmark extends AbstractBenchmark {
 
     // infinispanStorageMode has to match 
InfinispanStorageManagerFactory.INFINISPAN_STORAGE_MODE
     public enum Mode {
         NONE(null),
-        EMBEDDED("EMBEDDED"),
-        REMOTE("REMOTE"),
-        REMOTEPROTO("REMOTE");
+        INFINISPAN_EMBEDDED("EMBEDDED"),
+        INFINISPAN_REMOTE("REMOTE"),
+        INFINISPAN_REMOTEPROTO("REMOTE"),
+        H2MVSTORE("H2MVSTORE");
 
         private String infinispanStorageMode;
 
@@ -62,7 +68,14 @@ public abstract class AbstractReliabilityBenchmark extends 
AbstractBenchmark {
         }
     }
 
-    @Param({"NONE", "EMBEDDED", "REMOTE", "REMOTEPROTO"})
+    public enum Module {
+        INFINISPAN,
+        H2MVSTORE
+    }
+
+    public static final String DROOLS_RELIABILITY_MODULE_TEST = 
"drools.reliability.module.test";
+
+    @Param({"NONE", "INFINISPAN_EMBEDDED", "INFINISPAN_REMOTE", 
"INFINISPAN_REMOTEPROTO", "H2MVSTORE"})
     protected Mode mode;
 
     @Param({"true", "false"})
@@ -74,25 +87,34 @@ public abstract class AbstractReliabilityBenchmark extends 
AbstractBenchmark {
     public void setupEnvironment() {
         FileUtils.deleteDirectory(Path.of(GLOBAL_STATE_DIR));
 
-        if (mode != NONE) {
-            System.setProperty(INFINISPAN_STORAGE_MODE, 
mode.getInfinispanStorageMode());
-        }
+        if (mode == H2MVSTORE){
+            H2MVStoreStorageManager.cleanUpDatabase();
+            System.setProperty(DROOLS_RELIABILITY_MODULE_TEST, "H2MVSTORE");
+            configureServicePriorities();
+        }else {
+            System.setProperty(DROOLS_RELIABILITY_MODULE_TEST, "INFINISPAN");
+            if (mode != NONE) {
+                System.setProperty(INFINISPAN_STORAGE_MODE, 
mode.getInfinispanStorageMode());
+            }
 
-        if (mode == EMBEDDED || mode == REMOTE) {
-            System.setProperty(INFINISPAN_STORAGE_ALLOWED_PACKAGES, 
"org.drools.benchmarks.common.model");
-        }
+            if (mode == INFINISPAN_EMBEDDED || mode == INFINISPAN_REMOTE) {
+                System.setProperty(INFINISPAN_STORAGE_ALLOWED_PACKAGES, 
"org.drools.benchmarks.common.model");
+            }
 
-        if (mode == REMOTEPROTO) {
-            System.setProperty(INFINISPAN_STORAGE_MARSHALLER, "PROTOSTREAM");
-            setupSerializationContext();
-        }
+            if (mode == INFINISPAN_REMOTEPROTO) {
+                System.setProperty(INFINISPAN_STORAGE_MARSHALLER, 
"PROTOSTREAM");
+                setupSerializationContext();
+            }
+
+            configureServicePriorities();
 
-        if (mode == REMOTE || mode == REMOTEPROTO) {
-            container = new InfinispanContainer();
-            container.start();
-            InfinispanStorageManager storageManager = 
(InfinispanStorageManager) StorageManagerFactory.get().getStorageManager();
-            RemoteCacheManager remoteCacheManager = 
container.getRemoteCacheManager(storageManager.provideAdditionalRemoteConfigurationBuilder());
-            storageManager.setRemoteCacheManager(remoteCacheManager);
+            if (mode == INFINISPAN_REMOTE || mode == INFINISPAN_REMOTEPROTO) {
+                container = new InfinispanContainer();
+                container.start();
+                InfinispanStorageManager storageManager = 
(InfinispanStorageManager) StorageManagerFactory.get().getStorageManager();
+                RemoteCacheManager remoteCacheManager = 
container.getRemoteCacheManager(storageManager.provideAdditionalRemoteConfigurationBuilder());
+                storageManager.setRemoteCacheManager(remoteCacheManager);
+            }
         }
     }
 
@@ -104,7 +126,7 @@ public abstract class AbstractReliabilityBenchmark extends 
AbstractBenchmark {
 
     @TearDown
     public void tearDownEnvironment() {
-        if (mode == REMOTE || mode == REMOTEPROTO) {
+        if (mode == Mode.INFINISPAN_REMOTE || mode == 
Mode.INFINISPAN_REMOTEPROTO) {
             StorageManagerFactory.get().getStorageManager().close();
             container.stop();
         }
@@ -127,4 +149,28 @@ public abstract class AbstractReliabilityBenchmark extends 
AbstractBenchmark {
     }
 
     protected abstract void populateKieSessionPerIteration();
+
+
+    public static void configureServicePriorities() {
+        Module module = 
Module.valueOf(getConfig(DROOLS_RELIABILITY_MODULE_TEST, 
Module.INFINISPAN.name()));
+        if (module == Module.INFINISPAN) {
+            prioritizeInfinispanServices();
+        } else if (module == Module.H2MVSTORE) {
+            prioritizeH2MVStoreServices();
+        } else {
+            throw new IllegalStateException("Unknown module: " + module);
+        }
+    }
+
+    private static void prioritizeInfinispanServices() {
+        ReliableGlobalResolverFactory.get("infinispan");
+        SimpleReliableObjectStoreFactory.get("infinispan");
+        StorageManagerFactory.get("infinispan");
+    }
+
+    private static void prioritizeH2MVStoreServices() {
+        ReliableGlobalResolverFactory.get("core");
+        SimpleReliableObjectStoreFactory.get("core");
+        StorageManagerFactory.get("h2mvstore");
+    }
 }
\ No newline at end of file
diff --git 
a/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/FireAndAlarmBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/FireAndAlarmBenchmark.java
index c9eeb422..ecfa1a38 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/FireAndAlarmBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/FireAndAlarmBenchmark.java
@@ -62,7 +62,7 @@ public class FireAndAlarmBenchmark extends 
AbstractReliabilityBenchmark{
     @Param({"100"})
     private int factsNr;
 
-    @Param({"EMBEDDED"})
+    @Param({"INFINISPAN_EMBEDDED"})
     private Mode mode;
 
     @Param({"true", "false"})
diff --git 
a/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/InsertFailoverFireBenchmark.java
 
b/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/InsertFailoverFireBenchmark.java
index 21122a98..cd633c5f 100644
--- 
a/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/InsertFailoverFireBenchmark.java
+++ 
b/drools-benchmarks-parent/drools-benchmarks-reliability/src/main/java/org/drools/benchmarks/reliability/InsertFailoverFireBenchmark.java
@@ -43,7 +43,7 @@ public class InsertFailoverFireBenchmark extends 
AbstractReliabilityBenchmarkFai
     @Param({"100"})
     private int factsNr;
 
-    @Param({"EMBEDDED"})
+    @Param({"INFINISPAN_EMBEDDED", "H2MVSTORE"})
     private Mode mode;
 
     @Param({"true", "false"})
@@ -63,7 +63,7 @@ public class InsertFailoverFireBenchmark extends 
AbstractReliabilityBenchmarkFai
 
     @Setup(Level.Iteration)
     public void setupAndFailover() {
-        System.out.println("setupAndFailover!!");
+        //  System.out.println("setupAndFailover!!");
         if (mode != Mode.NONE) {
             persistenceStrategy = 
PersistedSessionOption.PersistenceStrategy.STORES_ONLY;
             safepointStrategy = useSafepoints ? 
PersistedSessionOption.SafepointStrategy.AFTER_FIRE : 
PersistedSessionOption.SafepointStrategy.ALWAYS;
@@ -110,18 +110,20 @@ public class InsertFailoverFireBenchmark extends 
AbstractReliabilityBenchmarkFai
     public static void main(String[] args) {
         InsertFailoverFireBenchmark benchmark = new 
InsertFailoverFireBenchmark();
         benchmark.factsNr = 10;
-        benchmark.mode = Mode.EMBEDDED;
+        benchmark.mode = Mode.H2MVSTORE;
         benchmark.useObjectStoreWithReferences = true;
         benchmark.useSafepoints = true;
 
-        benchmark.setupKieBase();
-        benchmark.setupAndFailover();
-        benchmark.test();
-        benchmark.tearDown();
-
+        benchmark.setupEnvironment(benchmark.mode);
         benchmark.setupKieBase();
         benchmark.setupAndFailover();
         benchmark.test();
         benchmark.tearDown();
    }
+
+    //  this method is only used by main
+    protected void setupEnvironment(Mode mode) {
+        super.mode = mode;
+        super.setupEnvironment();
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to