Author: chetanm
Date: Thu Sep  8 08:30:37 2016
New Revision: 1759760

URL: http://svn.apache.org/viewvc?rev=1759760&view=rev
Log:
OAK-4768 - Provide an option to enable Metrics collection for benchmark run

Enable metrics from BlobStore

Modified:
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/BlobStoreFixture.java
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/BlobStoreFixture.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/BlobStoreFixture.java?rev=1759760&r1=1759759&r2=1759760&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/BlobStoreFixture.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/BlobStoreFixture.java
 Thu Sep  8 08:30:37 2016
@@ -31,10 +31,12 @@ import org.apache.jackrabbit.core.data.D
 import org.apache.jackrabbit.core.data.DataStoreException;
 import org.apache.jackrabbit.core.data.FileDataStore;
 import org.apache.jackrabbit.oak.commons.PropertiesUtil;
+import org.apache.jackrabbit.oak.plugins.blob.BlobStoreStats;
 import org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.blob.FileBlobStore;
 import org.apache.jackrabbit.oak.spi.blob.MemoryBlobStore;
+import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
@@ -66,7 +68,8 @@ public abstract class BlobStoreFixture i
      *                      any explicitly defined BlobStore
      */
     @CheckForNull
-    public static BlobStoreFixture create(File basedir, boolean fallbackToFDS) 
{
+    public static BlobStoreFixture create(File basedir, boolean fallbackToFDS,
+                                          StatisticsProvider 
statisticsProvider) {
         String className = System.getProperty("dataStore");
         if (className != null) {
             return getDataStore();
@@ -78,7 +81,7 @@ public abstract class BlobStoreFixture i
 
         String blobStore = System.getProperty("blobStoreType");
         if ("FDS".equals(blobStore) || (blobStore == null && fallbackToFDS)) {
-            return getFileDataStore(basedir, 
DataStoreBlobStore.DEFAULT_CACHE_SIZE);
+            return getFileDataStore(basedir, 
DataStoreBlobStore.DEFAULT_CACHE_SIZE, statisticsProvider);
         } else if ("FBS".equals(blobStore)) {
             return getFileBlobStore(basedir);
         } else if ("MEM".equals(blobStore)) {
@@ -88,7 +91,8 @@ public abstract class BlobStoreFixture i
         return null;
     }
 
-    public static BlobStoreFixture getFileDataStore(final File basedir, final 
int fdsCacheInMB) {
+    public static BlobStoreFixture getFileDataStore(final File basedir, final 
int fdsCacheInMB,
+                                                    final StatisticsProvider 
statisticsProvider) {
         return new BlobStoreFixture("FDS") {
             private File storeDir;
             private FileDataStore fds;
@@ -100,7 +104,8 @@ public abstract class BlobStoreFixture i
                 storeDir = new File(basedir, unique);
                 fds.init(storeDir.getAbsolutePath());
                 configure(fds);
-                BlobStore bs = new DataStoreBlobStore(fds, true, fdsCacheInMB);
+                DataStoreBlobStore bs = new DataStoreBlobStore(fds, true, 
fdsCacheInMB);
+                bs.setBlobStatsCollector(new 
BlobStoreStats(statisticsProvider));
                 configure(bs);
                 return bs;
             }

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java?rev=1759760&r1=1759759&r2=1759760&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/OakFixture.java
 Thu Sep  8 08:30:37 2016
@@ -162,14 +162,6 @@ public abstract class OakFixture {
             private DocumentMK[] kernels;
             private BlobStoreFixture blobStoreFixture;
 
-            {
-                if (useFileDataStore) {
-                    blobStoreFixture = BlobStoreFixture.getFileDataStore(base, 
fdsCacheInMB);
-                } else {
-                    blobStoreFixture = BlobStoreFixture.create(base, false);
-                }
-            }
-
             @Override
             public Oak getOak(int clusterId) throws Exception {
                 MongoConnection mongo = new MongoConnection(uri);
@@ -180,7 +172,7 @@ public abstract class OakFixture {
                         setPersistentCache("target/persistentCache,time").
                         setClusterId(clusterId).
                         setLogging(false);
-                setupBlobStore(mkBuilder);
+                setupBlobStore(mkBuilder, StatisticsProvider.NOOP);
                 DocumentMK dmk = mkBuilder.open();
                 return newOak(dmk.getNodeStore());
             }
@@ -198,7 +190,7 @@ public abstract class OakFixture {
                             setPersistentCache("target/persistentCache,time").
                             setClusterId(i + 1).
                             setLogging(false);
-                    setupBlobStore(mkBuilder);
+                    setupBlobStore(mkBuilder, statsProvider);
                     kernels[i] = mkBuilder.open();
                     cluster[i] = newOak(kernels[i].getNodeStore());
                 }
@@ -225,11 +217,24 @@ public abstract class OakFixture {
                 }
             }
 
-            private void setupBlobStore(DocumentMK.Builder mkBuilder) {
+            private void setupBlobStore(DocumentMK.Builder mkBuilder, 
StatisticsProvider statsProvider) {
+                initializeBlobStoreFixture(statsProvider);
                 if (blobStoreFixture != null) {
                     mkBuilder.setBlobStore(blobStoreFixture.setUp());
                 }
             }
+
+            private void initializeBlobStoreFixture(StatisticsProvider 
statsProvider) {
+                if (blobStoreFixture != null){
+                    return;
+                }
+
+                if (useFileDataStore) {
+                    blobStoreFixture = BlobStoreFixture.getFileDataStore(base, 
fdsCacheInMB, statsProvider);
+                } else {
+                    blobStoreFixture = BlobStoreFixture.create(base, false, 
statsProvider);
+                }
+            }
         };
     }
 
@@ -245,19 +250,14 @@ public abstract class OakFixture {
             private DocumentMK[] kernels;
             private BlobStoreFixture blobStoreFixture;
 
-            {
-                if (useFileDataStore) {
-                    blobStoreFixture = BlobStoreFixture.getFileDataStore(base, 
fdsCacheInMB);
-                }
-            }
-
             private RDBOptions getOptions(boolean dropDBAFterTest, String 
tablePrefix) {
                 return new 
RDBOptions().dropTablesOnClose(dropDBAfterTest).tablePrefix(tablePrefix);
             }
 
-            private BlobStore getBlobStore() {
+            private BlobStore getBlobStore(StatisticsProvider statsProvider) {
                 try {
                     if (useFileDataStore) {
+                        initializeBlobStoreFixture(statsProvider);
                         return blobStoreFixture.setUp();
                     } else {
                         DataSource ds = 
RDBDataSourceFactory.forJdbcUrl(jdbcuri, jdbcuser, jdbcpasswd);
@@ -274,7 +274,7 @@ public abstract class OakFixture {
                 DocumentMK.Builder mkBuilder = new DocumentMK.Builder()
                         .setRDBConnection(ds, getOptions(dropDBAfterTest, 
tablePrefix)).memoryCacheSize(cacheSize)
                         .setClusterId(clusterId).setLogging(false);
-                BlobStore blobStore = getBlobStore();
+                BlobStore blobStore = getBlobStore(StatisticsProvider.NOOP);
                 if (blobStore != null) {
                     mkBuilder.setBlobStore(blobStore);
                 }
@@ -287,7 +287,7 @@ public abstract class OakFixture {
                 Oak[] cluster = new Oak[n];
                 kernels = new DocumentMK[cluster.length];
                 for (int i = 0; i < cluster.length; i++) {
-                    BlobStore blobStore = getBlobStore();
+                    BlobStore blobStore = getBlobStore(statsProvider);
                     DataSource ds = RDBDataSourceFactory.forJdbcUrl(jdbcuri, 
jdbcuser, jdbcpasswd);
                     DocumentMK.Builder mkBuilder = new DocumentMK.Builder()
                             .setStatisticsProvider(statsProvider)
@@ -323,6 +323,12 @@ public abstract class OakFixture {
                     }
                 }
             }
+
+            private void initializeBlobStoreFixture(StatisticsProvider 
statsProvider) {
+                if (useFileDataStore && blobStoreFixture == null) {
+                    blobStoreFixture = BlobStoreFixture.getFileDataStore(base, 
fdsCacheInMB, statsProvider);
+                }
+            }
         };
     }
 
@@ -376,7 +382,7 @@ public abstract class OakFixture {
             for (int i = 0; i < cluster.length; i++) {
                 BlobStore blobStore = null;
                 if (useBlobStore) {
-                    blobStoreFixtures[i] = BlobStoreFixture.create(base, true);
+                    blobStoreFixtures[i] = BlobStoreFixture.create(base, true, 
statsProvider);
                     blobStore = blobStoreFixtures[i].setUp();
                 }
 

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java?rev=1759760&r1=1759759&r2=1759760&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/fixture/SegmentTarFixture.java
 Thu Sep  8 08:30:37 2016
@@ -75,7 +75,7 @@ class SegmentTarFixture extends OakFixtu
         for (int i = 0; i < cluster.length; i++) {
             BlobStore blobStore = null;
             if (useBlobStore) {
-                blobStoreFixtures[i] = BlobStoreFixture.create(base, true);
+                blobStoreFixtures[i] = BlobStoreFixture.create(base, true, 
statsProvider);
                 blobStore = blobStoreFixtures[i].setUp();
             }
 


Reply via email to