diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java index 9ca54e5..2c97864 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java @@ -188,6 +188,15 @@ public class MongoDocumentStore implements DocumentStore { private int bulkSize = Integer.getInteger("oak.mongo.bulkSize", 30); + /** + * How many times should be the bulk update request retries in case of + * a conflict. + *

+ * Default is 0 (no retries). + */ + private int bulkRetries = + Integer.getInteger("oak.mongo.bulkRetries", 0); + private String lastReadWriteMode; private final Map metadata; @@ -876,7 +885,7 @@ public class MongoDocumentStore implements DocumentStore { oldDocs.putAll((Map) getCachedNodes(operationsToCover.keySet())); } - for (int i = 0; i < 3; i++) { + for (int i = 0; i <= bulkRetries; i++) { if (operationsToCover.size() <= 2) { // bulkUpdate() method invokes Mongo twice, so sending 2 updates // in bulk mode wouldn't result in any performance gain