You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ad...@apache.org on 2020/09/28 14:47:41 UTC

svn commit: r1882085 - /jackrabbit/oak/trunk/oak-benchmarks/README.md

Author: adulceanu
Date: Mon Sep 28 14:47:40 2020
New Revision: 1882085

URL: http://svn.apache.org/viewvc?rev=1882085&view=rev
Log:
OAK-9239 - Update oak-benchmarks readme to include azure fixture
Contribution by Aravindo Wingeier

Modified:
    jackrabbit/oak/trunk/oak-benchmarks/README.md

Modified: jackrabbit/oak/trunk/oak-benchmarks/README.md
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/README.md?rev=1882085&r1=1882084&r2=1882085&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-benchmarks/README.md (original)
+++ jackrabbit/oak/trunk/oak-benchmarks/README.md Mon Sep 28 14:47:40 2020
@@ -1,7 +1,7 @@
 Oak Benchmark Jar
 =================
 
-This jar is runnable and contains test related run modes. 
+This jar is runnable and contains test related run modes.
 
 The following runmodes are currently available:
 
@@ -20,6 +20,14 @@ be invoked like this:
 
 The following benchmark options (with default values) are currently supported:
 
+    --azure                - Azure Connection String (default:
+                               DefaultEndpointsProtocol=http;
+                               AccountName=devstoreaccount1;
+                               AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
+                                           BlobEndpoint=http://127.0.0.1:
+                                           10000/devstoreaccount1;)
+    --azureContainerName   - Azure container name (default: oak)
+    --azureRootPath        - Azure root path (default: /oak)
     --host localhost       - MongoDB host
     --port 27101           - MongoDB port
     --db <name>            - MongoDB database (default is a generated name)
@@ -41,6 +49,8 @@ The following benchmark options (with de
     --rdbjdbctableprefix   - for RDB persistence: prefix for table names (defaults to "")
     --vgcMaxAge            - Continuous DocumentNodeStore VersionGC max age in sec (RDB only)
 
+Please run `--help` to list all options.
+
 These options are passed to the test cases and repository fixtures
 that need them. For example the Wikipedia dump option is needed by the
 WikipediaImport test case and the MongoDB address information by the
@@ -84,21 +94,26 @@ that we used to produce earlier.
 
 Finally the benchmark runner supports the following repository fixtures:
 
-| Fixture             | Description                                                    |
-|---------------------|----------------------------------------------------------------|
-| Jackrabbit          | Jackrabbit with the default embedded Derby  bundle PM          |
-| Oak-Memory          | Oak with default in-memory storage                             |
-| Oak-MemoryNS        | Oak with default in-memory NodeStore                           |
-| Oak-Mongo           | Oak with the default Mongo backend                             |
-| Oak-Mongo-DS        | Oak with the default Mongo backend and DataStore               |
-| Oak-MongoNS         | Oak with the Mongo NodeStore                                   |
-| Oak-Segment-Tar     | Oak with the Segment Tar backend                               |
-| Oak-Segment-Tar-DS  | Oak with the Segment Tar backend and DataStore                 |
-| Oak-RDB             | Oak with the DocumentMK/RDB persistence                        |
-| Oak-RDB-DS          | Oak with the DocumentMK/RDB persistence and DataStore          |
+| Fixture                      | Description                                                    |
+|------------------------------|----------------------------------------------------------------|
+| Jackrabbit                   | Jackrabbit with the default embedded Derby  bundle PM          |
+| Oak-Memory                   | Oak with default in-memory storage                             |
+| Oak-MemoryNS                 | Oak with default in-memory NodeStore                           |
+| Oak-Mongo                    | Oak with the default Mongo backend                             |
+| Oak-Mongo-DS                 | Oak with the default Mongo backend and DataStore               |
+| Oak-MongoNS                  | Oak with the Mongo NodeStore                                   |
+| Oak-Segment-Tar              | Oak with the Segment Tar backend                               |
+| Oak-Segment-Tar-DS           | Oak with the Segment Tar backend and DataStore                 |
+| Oak-Segment-Azure            | Oak with the Azure Segment backend                             |
+| Oak-RDB                      | Oak with the DocumentMK/RDB persistence                        |
+| Oak-RDB-DS                   | Oak with the DocumentMK/RDB persistence and DataStore          |
+| Oak-Composite-Store          | Oak with the Composite Node store with Segment Tar backend     |
+| Oak-Composite-Memory-Store   | Oak with the Composite Node store with in-memory NodeStore     |
+| Oak-Composite-Mongo-Store    | Oak with the Composite Node store with Mongo backend           |
+
 
 (Note that for Oak-RDB, the required JDBC drivers either need to be embedded
-into oak-run, or be specified separately in the class path. Furthermore, 
+into oak-run, or be specified separately in the class path. Furthermore,
 dropDBAfterTest is interpreted to drop the *tables*, not the database
 itself, if and only if they have been auto-created)
 
@@ -213,7 +228,7 @@ are done, before the `afterSuite()` meth
 Scalability mode
 --------------
 
-The scalability mode is used for executing various scalability suites to test the 
+The scalability mode is used for executing various scalability suites to test the
 performance of various associated tests. It can be invoked like this:
 
     $ java -jar oak-benchmarks-*.jar scalability [options] [suites] [fixtures]
@@ -247,16 +262,16 @@ java.hprof.txt` to produce a somewhat ea
 bottom-up summaries of how the execution time is distributed across
 the benchmarked codebase.
 
-The scalability suite creates the relevant repository load before starting the tests. 
+The scalability suite creates the relevant repository load before starting the tests.
 Each test case tries to benchmark and profile a specific aspect of the repository.
 
-Each scalability suite is configured to run a number of related tests which require the 
+Each scalability suite is configured to run a number of related tests which require the
 same base load to be available in the repository.
-Either the entire suite can be executed or individual tests within the suite can be run. 
-If the suite names are specified like `ScalabilityBlobSearchSuite` then all the tests 
-configured for the suite are executed. To execute particular tests in the 
-suite, suite names appended with tests of the form `suite:test1,test2` must be specified like 
-`ScalabilityBlobSearchSuite:FormatSearcher,NodeTypeSearcher`. You can specify one or more 
+Either the entire suite can be executed or individual tests within the suite can be run.
+If the suite names are specified like `ScalabilityBlobSearchSuite` then all the tests
+configured for the suite are executed. To execute particular tests in the
+suite, suite names appended with tests of the form `suite:test1,test2` must be specified like
+`ScalabilityBlobSearchSuite:FormatSearcher,NodeTypeSearcher`. You can specify one or more
 suites in the scalability command line, and oak-run will execute each suite in sequence.
 
 Finally the scalability runner supports the following repository fixtures:
@@ -276,11 +291,11 @@ Finally the scalability runner supports
 (Note that for Oak-RDB, the required JDBC drivers either need to be embedded
 into oak-run, or be specified separately in the class path.)
 
-Once started, the scalability runner will execute each listed suite against all the listed 
-repository fixtures. After starting up the repository and preparing the test environment, 
-the scalability suite executes all the configured tests to warm up caches before measurements 
-are started. Then each configured test within the suite are run and the number of 
-milliseconds used by each execution is recorded. Once done, the following statistics are 
+Once started, the scalability runner will execute each listed suite against all the listed
+repository fixtures. After starting up the repository and preparing the test environment,
+the scalability suite executes all the configured tests to warm up caches before measurements
+are started. Then each configured test within the suite are run and the number of
+milliseconds used by each execution is recorded. Once done, the following statistics are
 computed and reported:
 
 | Column      | Description                                           |
@@ -298,22 +313,22 @@ Also, for each test, the execution times
 |-------------|-------------------------------------------------------|
 | Load        | time (in ms) taken by a test run              |
 
-The latter is more useful of these numbers as it shows how the individual execution 
+The latter is more useful of these numbers as it shows how the individual execution
 times are scaling for each load.
 
 How to add a new scalability suite
 --------------------------
 The scalability code is
 located under `org.apache.jackrabbit.oak.scalabiity` in the oak-run
-component. 
+component.
 
 To add a new scalability suite, you'll need to implement
 the `ScalabilitySuite` interface and add an instance of the new suite to the
 `allSuites` array in the `ScalabilityRunner` class, along with the test benchmarks,
 in the `org.apache.jackrabbit.oak.scalability` package.
-To implement the test benchmarks, it is required to extend the `ScalabilityBenchmark` 
+To implement the test benchmarks, it is required to extend the `ScalabilityBenchmark`
 abstract class and implement the `execute()` method.
-In addition, the methods `beforeExecute()` and `afterExecute()` can overridden to do processing 
+In addition, the methods `beforeExecute()` and `afterExecute()` can overridden to do processing
 before and after the benchmark executes.
 
 The best way to implement the `ScalabilitySuite` interface is to extend the
@@ -328,7 +343,7 @@ details. The outline of such a suite is:
         }
         @Override
         protected void beforeIteration(ExecutionContext) throws Exception {
-            // optional, Typically, this can be configured to create additional 
+            // optional, Typically, this can be configured to create additional
             // loads for each iteration.
             // This method will be called before each test iteration begins
         }
@@ -338,7 +353,7 @@ details. The outline of such a suite is:
             ExecutionContext context) throws Exception {
             // required, executes the specified benchmark
         }
-        
+
         @Override
         protected void afterIteration() throws Exception {
             // optional, executed after runIteration(),
@@ -363,11 +378,11 @@ The rough outline of how the individual
         }
         test.afterIteration();
     }
-    test.afterSuite(); 
+    test.afterSuite();
 
-You can specify any context information to the test benchmarks using the ExecutionContext 
+You can specify any context information to the test benchmarks using the ExecutionContext
 object passed as parameter to the `beforeIteration()` and the `executeBenchmark()` methods.
-`ExecutionBenchmark` exposes two methods `getMap()` and `setMap()` which can be used to 
+`ExecutionBenchmark` exposes two methods `getMap()` and `setMap()` which can be used to
 pass context information.
 
 You can use the `loginWriter()` and `loginReader()` methods to create admin
@@ -388,12 +403,12 @@ As you can see, the `run()` method of th
 repeatedly. Such threads will automatically close once all test iterations
 are done, before the `afterSuite()` method is called.
 
-`ScalabilityAbstractSuite` defines some system properties which are used to control the 
+`ScalabilityAbstractSuite` defines some system properties which are used to control the
 suites extending from it :
 
     -Dincrements=10,100,1000,1000     - defines the varying loads for each test iteration
     -Dprofile=true                    - to collect and print profiling data
-    -Ddebug=true                      - to output any intermediate results during the suite 
+    -Ddebug=true                      - to output any intermediate results during the suite
                                         run
 
 License