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();
}