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 re...@apache.org on 2016/01/28 16:29:47 UTC

svn commit: r1727383 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java

Author: reschke
Date: Thu Jan 28 15:29:47 2016
New Revision: 1727383

URL: http://svn.apache.org/viewvc?rev=1727383&view=rev
Log:
OAK-3948: RDBDocumentStore: add system property for disabling bulk updates

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1727383&r1=1727382&r2=1727383&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java Thu Jan 28 15:29:47 2016
@@ -297,6 +297,14 @@ public class RDBDocumentStore implements
 
     @Override
     public <T extends Document> List<T> createOrUpdate(Collection<T> collection, List<UpdateOp> updateOps) {
+        if (!BATCHUPDATES) {
+            List<T> results = new ArrayList<T>(updateOps.size());
+            for (UpdateOp update : updateOps) {
+                results.add(createOrUpdate(collection, update));
+            }
+            return results;
+        }
+
         Map<UpdateOp, T> results = new LinkedHashMap<UpdateOp, T>();
         Map<String, UpdateOp> operationsToCover = new LinkedHashMap<String, UpdateOp>();
         Set<UpdateOp> duplicates = new HashSet<UpdateOp>();
@@ -1764,6 +1772,9 @@ public class RDBDocumentStore implements
     // Number of elapsed ms in a query above which a diagnostic warning is generated
     private static final int QUERYTIMELIMIT = Integer.getInteger(
             "org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.QUERYTIMELIMIT", 10000);
+    // Whether to use JDBC batch commands for the createOrUpdate (default: true).
+    private static final boolean BATCHUPDATES = Boolean.parseBoolean(System
+            .getProperty("org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.BATCHUPDATES", "true"));
 
     public static byte[] asBytes(String data) {
         byte[] bytes;