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 am...@apache.org on 2014/10/09 05:42:47 UTC

svn commit: r1630275 - in /jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability: ScalabilityNodeRelationshipSuite.java ScalabilityNodeSuite.java

Author: amitj
Date: Thu Oct  9 03:42:47 2014
New Revision: 1630275

URL: http://svn.apache.org/r1630275
Log:
OAK-2028: Scalability benchmarks for search
Added ability to insert dates randomly

Modified:
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityNodeRelationshipSuite.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityNodeSuite.java

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityNodeRelationshipSuite.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityNodeRelationshipSuite.java?rev=1630275&r1=1630274&r2=1630275&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityNodeRelationshipSuite.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityNodeRelationshipSuite.java Thu Oct  9 03:42:47 2014
@@ -310,9 +310,8 @@ public class ScalabilityNodeRelationship
          */
         private void createActivityNode(Node activityParent, Map<String, String> props)
             throws RepositoryException {
-            start.add(Calendar.SECOND, 1);
             activityParent.setProperty(TITLE_PROP, props.get(TITLE_PROP));
-            activityParent.setProperty(CREATED, start);
+            activityParent.setProperty(CREATED, generateDate());
             activityParent.setProperty(ACTION, props.get(ACTION));
             activityParent.setProperty(SOURCE_ID, props.get(SOURCE_ID));
             Node sourceNode = JcrUtils
@@ -411,8 +410,6 @@ public class ScalabilityNodeRelationship
             }
 
             for (int i = 0; i < NUM_RELATIONSHIPS; i++) {
-                start.add(Calendar.SECOND, 1);
-
                 if (usersIdx.size() > 0) {
                     String otherUser =
                         users.get(usersIdx.remove(random.nextInt(usersIdx.size()))).getID();
@@ -420,7 +417,7 @@ public class ScalabilityNodeRelationship
 
                     String nameHint = Text.getName(otherUser);
                     Node rNode = relationshipsParentNode.addNode(nameHint, getType(1));
-                    rNode.setProperty(CREATED, start);
+                    rNode.setProperty(CREATED, generateDate());
                     rNode.setProperty(SOURCE_ID, user.getID());
                     rNode.setProperty(TARGET_ID, otherUser);
 

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityNodeSuite.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityNodeSuite.java?rev=1630275&r1=1630274&r2=1630275&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityNodeSuite.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/scalability/ScalabilityNodeSuite.java Thu Oct  9 03:42:47 2014
@@ -110,6 +110,11 @@ public class ScalabilityNodeSuite extend
     protected static final boolean FULL_TEXT = !Boolean.getBoolean("noFullIndex");
 
     /**
+     * Controls whether to generate random dates in a range
+     */
+    protected static final boolean RAND_DATE = Boolean.getBoolean("randDate");
+
+    /**
      * Controls if a customType is to be created
      */
     protected static final boolean CUSTOM_TYPE = Boolean.getBoolean("customType");
@@ -410,8 +415,12 @@ public class ScalabilityNodeSuite extend
 
         long counter;
 
+        int secsIn2Years = 31622400;
+
         Calendar start;
 
+        long startMillis;
+
         Timer timer;
 
         /** The maximum number of assets to be written by this thread. */
@@ -428,14 +437,24 @@ public class ScalabilityNodeSuite extend
                     .getNode(ROOT_NODE_NAME)
                     .addNode("writer-" + id);
             start = Calendar.getInstance();
-            start.add(Calendar.YEAR, -1);
+            start.add(Calendar.YEAR, -2);
             start.setTimeZone(TimeZone.getTimeZone("GMT"));
+            startMillis = start.getTimeInMillis();
 
             session.save();
 
             timer = new Timer(writeStats);
         }
 
+        protected Calendar generateDate() {
+            if (RAND_DATE) {
+                start.setTimeInMillis(startMillis + random.nextInt(secsIn2Years));
+            } else {
+                start.add(Calendar.SECOND, 1);
+            }
+            return start;
+        }
+
         @Override
         public void run() {
             try {
@@ -463,7 +482,6 @@ public class ScalabilityNodeSuite extend
         }
 
         private Node createParent(Node parent, boolean createChildren, String name) throws Exception {
-            start.add(Calendar.SECOND, 1);
             Node node = createNode(parent, 0, name);
 
             if (createChildren) {
@@ -480,7 +498,6 @@ public class ScalabilityNodeSuite extend
 
             // Recursively create sub nodes
             for (int idx = 0; idx < Integer.parseInt(NODE_LEVELS.get(levelIdx)); idx++) {
-                start.add(Calendar.SECOND, 1);
                 Node subNode =
                         createNode(parent, levelIdx, "SubNode-" + levelIdx + "-" + idx);
                 addDescSearchPath(subNode.getPath());
@@ -505,7 +522,7 @@ public class ScalabilityNodeSuite extend
             Node node =
                     JcrUtils.getOrAddNode(parent, name, getType(levelIdx));
             // Add relevant properties
-            node.setProperty(DATE_PROP, start);
+            node.setProperty(DATE_PROP, generateDate());
             node.setProperty(SORT_PROP, toss());
             node.setProperty(FILTER_PROP, toss());
             node.setProperty(TITLE_PROP, name);