Author: adulceanu
Date: Wed Nov 1 10:41:33 2017
New Revision: 1813963
URL: http://svn.apache.org/viewvc?rev=1813963&view=rev
Log:
OAK-6893 - Add BasicWriteTest benchmark
Added:
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BasicWriteTest.java
Modified:
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
Added:
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BasicWriteTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BasicWriteTest.java?rev=1813963&view=auto
==============================================================================
---
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BasicWriteTest.java
(added)
+++
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BasicWriteTest.java
Wed Nov 1 10:41:33 2017
@@ -0,0 +1,62 @@
+package org.apache.jackrabbit.oak.benchmark;
+
+import java.io.ByteArrayInputStream;
+import java.util.Calendar;
+import java.util.Random;
+
+import javax.jcr.Node;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
+/**
+ * Simple test case which adds a basic hierarchy of 3 nodes (nt:folder, nt:file
+ * and nt:resource) and 3 properties (jcr:mimeType, jcr:lastModified and
+ * jcr:data). The binary data accounts for 5MB and is randomly generated for
+ * each run.
+ */
+public class BasicWriteTest extends AbstractTest {
+ private static final int MB = 1024 * 1024;
+ private Session session;
+ private Node root;
+
+ /**
+ * Iteration counter used to avoid the slit document edge case in
+ * DocumentMK.
+ */
+ private int iteration = 0;
+
+ @Override
+ public void beforeSuite() throws RepositoryException {
+ session = loginWriter();
+ }
+
+ @Override
+ public void beforeTest() throws RepositoryException {
+ root = session.getRootNode().addNode(TEST_ID + iteration++,
"nt:folder");
+ session.save();
+ }
+
+ @SuppressWarnings("deprecation")
+ @Override
+ protected void runTest() throws Exception {
+ final int blobSize = 5 * MB;
+
+ Node file = root.addNode("server", "nt:file");
+
+ byte[] data = new byte[blobSize];
+ new Random().nextBytes(data);
+
+ Node content = file.addNode("jcr:content", "nt:resource");
+ content.setProperty("jcr:mimeType", "application/octet-stream");
+ content.setProperty("jcr:lastModified", Calendar.getInstance());
+ content.setProperty("jcr:data", new ByteArrayInputStream(data));
+
+ session.save();
+ }
+
+ @Override
+ public void afterTest() throws RepositoryException {
+ root.remove();
+ session.save();
+ }
+}
Modified:
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java?rev=1813963&r1=1813962&r2=1813963&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
(original)
+++
jackrabbit/oak/trunk/oak-benchmarks/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
Wed Nov 1 10:41:33 2017
@@ -455,7 +455,8 @@ public class BenchmarkRunner {
new HybridIndexTest(base.value(options), statsProvider),
new BundlingNodeTest(),
- new PersistentCacheTest(statsProvider)
+ new PersistentCacheTest(statsProvider),
+ new BasicWriteTest()
};
Set<String> argset = Sets.newHashSet(nonOption.values(options));