diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java index 9072368..1a79349 100755 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java @@ -297,6 +297,14 @@ public class RDBDocumentStore implements DocumentStore { @Override public List createOrUpdate(Collection collection, List updateOps) { + if (!BATCHUPDATES) { + List results = new ArrayList(updateOps.size()); + for (UpdateOp update : updateOps) { + results.add(createOrUpdate(collection, update)); + } + return results; + } + Map results = new LinkedHashMap(); Map operationsToCover = new LinkedHashMap(); Set duplicates = new HashSet(); @@ -1762,6 +1770,9 @@ public class RDBDocumentStore implements DocumentStore { // 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;