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 md...@apache.org on 2015/07/07 14:40:42 UTC
svn commit: r1689643 - in
/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment:
SegmentCompactionIT.java SegmentCompactionMBean.java
Author: mduerig
Date: Tue Jul 7 12:40:42 2015
New Revision: 1689643
URL: http://svn.apache.org/r1689643
Log:
OAK-2849: Improve revision gc on SegmentMK
SegmentCompactionIT improvement: make the ratio of the individual operations configurable
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionIT.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionMBean.java
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionIT.java?rev=1689643&r1=1689642&r2=1689643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionIT.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionIT.java Tue Jul 7 12:40:42 2015
@@ -142,6 +142,11 @@ public class SegmentCompactionIT {
private volatile int maxReferences = 10;
private volatile int maxNodeCount = 1000;
private volatile int maxPropertyCount = 1000;
+ private volatile int nodeRemoveRatio = 10;
+ private volatile int propertyRemoveRatio = 10;
+ private volatile int nodeAddRatio = 40;
+ private volatile int addStringRatio = 20;
+ private volatile int addBinaryRatio = 20;
private volatile int compactionInterval = 1;
private volatile boolean stopping;
private volatile Reference rootReference;
@@ -382,14 +387,21 @@ public class SegmentCompactionIT {
private void modify(NodeStore nodeStore, NodeBuilder nodeBuilder, boolean deleteOnly)
throws IOException {
- int k = rnd.nextInt(100);
- if (k < 10) {
+ int p0 = nodeRemoveRatio;
+ int p1 = propertyRemoveRatio;
+ int p2 = nodeAddRatio;
+ int p3 = addStringRatio;
+ int p4 = addBinaryRatio;
+ double p = p0 + p1 + p2 + p3 + p4;
+
+ double k = rnd.nextDouble();
+ if (k < p0/p) {
chooseRandomNode(nodeBuilder).remove();
- } else if (k < 20) {
+ } else if (k < (p0 + p1)/p) {
removeRandomProperty(chooseRandomNode(nodeBuilder));
- } else if (k < 60 && !deleteOnly) {
+ } else if (k < (p0 + p1 + p2)/p && !deleteOnly) {
addRandomNode(nodeBuilder);
- } else if (k < 80 && !deleteOnly) {
+ } else if (k < (p0 + p1 + p2 + p3)/p && !deleteOnly) {
addRandomValue(nodeBuilder);
} else if (!deleteOnly) {
addRandomBlob(nodeStore, nodeBuilder);
@@ -771,6 +783,56 @@ public class SegmentCompactionIT {
}
@Override
+ public void setNodeRemoveRatio(int ratio) {
+ nodeRemoveRatio = ratio;
+ }
+
+ @Override
+ public int getNodeRemoveRatio() {
+ return nodeRemoveRatio;
+ }
+
+ @Override
+ public void setPropertyRemoveRatio(int ratio) {
+ propertyRemoveRatio = ratio;
+ }
+
+ @Override
+ public int getPropertyRemoveRatio() {
+ return propertyRemoveRatio;
+ }
+
+ @Override
+ public void setNodeAddRatio(int ratio) {
+ nodeAddRatio = ratio;
+ }
+
+ @Override
+ public int getNodeAddRatio() {
+ return nodeAddRatio;
+ }
+
+ @Override
+ public void setAddStringRatio(int ratio) {
+ addStringRatio = ratio;
+ }
+
+ @Override
+ public int getAddStringRatio() {
+ return addStringRatio;
+ }
+
+ @Override
+ public void setAddBinaryRatio(int ratio) {
+ addBinaryRatio = ratio;
+ }
+
+ @Override
+ public int getAddBinaryRatio() {
+ return addBinaryRatio;
+ }
+
+ @Override
public void setRootReference(boolean set) {
if (set && rootReference == null) {
rootReference = new Reference(nodeStore.getRoot());
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionMBean.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionMBean.java?rev=1689643&r1=1689642&r2=1689643&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionMBean.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/segment/SegmentCompactionMBean.java Tue Jul 7 12:40:42 2015
@@ -162,6 +162,61 @@ public interface SegmentCompactionMBean
int getMaxPropertyCount();
/**
+ * Set the ration of remove node operations wrt. all other operations.
+ * @param ratio ratio of node remove operations
+ */
+ void setNodeRemoveRatio(int ratio);
+
+ /**
+ * @return Ratio of node remove operations
+ */
+ int getNodeRemoveRatio();
+
+ /**
+ * Set the ration of remove property operations wrt. all other operations.
+ * @param ratio ratio of property remove operations
+ */
+ void setPropertyRemoveRatio(int ratio);
+
+ /**
+ * @return Ratio of property remove operations
+ */
+ int getPropertyRemoveRatio();
+
+ /**
+ * Set the ration of add node operations wrt. all other operations.
+ * @param ratio ratio of node add operations
+ */
+ void setNodeAddRatio(int ratio);
+
+ /**
+ * @return Ratio of node add operations
+ */
+ int getNodeAddRatio();
+
+ /**
+ * Set the ration of add string property operations wrt. all other operations.
+ * @param ratio ratio of string property add operations
+ */
+ void setAddStringRatio(int ratio);
+
+ /**
+ * @return Ratio of string property add operations
+ */
+ int getAddStringRatio();
+
+ /**
+ * Set the ration of add binary property operations wrt. all other operations.
+ * @param ratio ratio of binary property add operations
+ */
+ void setAddBinaryRatio(int ratio);
+
+ /**
+ * @return Ratio of binary property add operations
+ */
+ int getAddBinaryRatio();
+
+ /**
* Add a reference to the current root or release a held reference.
* @param set add a reference if {@code true}, otherwise release any held reference
*/