This is an automated email from the ASF dual-hosted git repository. joscorbe pushed a commit to branch OAK-11835 in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit d15732dce77b2e4319230abc8ad0ae2baefe7136 Author: Jose Cordero <corde...@adobe.com> AuthorDate: Tue Aug 5 03:47:01 2025 +0200 OAK-11835: Apply default configuration in getDefaultBuilder --- .../plugins/document/DocumentNodeStoreService.java | 22 +++++++++--------- .../oak/plugins/document/util/MongoConnection.java | 26 +++++++++++++++++++--- 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java index a2a90f383a..0a4e0d8a01 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java @@ -144,17 +144,17 @@ public class DocumentNodeStoreService { static final int DEFAULT_FULL_GC_GENERATION = 0; static final int DEFAULT_MONGO_LEASE_SO_TIMEOUT_MILLIS = 30000; // MongoDB Connection Pool Settings - static final int DEFAULT_MONGO_MAX_POOL_SIZE = 100; - static final int DEFAULT_MONGO_MIN_POOL_SIZE = 0; - static final int DEFAULT_MONGO_MAX_CONNECTING = 2; - static final int DEFAULT_MONGO_MAX_IDLE_TIME_MS = 0; - static final int DEFAULT_MONGO_MAX_LIFE_TIME_MS = 0; - static final int DEFAULT_MONGO_CONNECT_TIMEOUT_MS = 10000; - static final int DEFAULT_MONGO_HEARTBEAT_FREQUENCY_MS = 5000; - static final int DEFAULT_MONGO_SERVER_SELECTION_TIMEOUT_MS = 30000; - static final int DEFAULT_MONGO_WAIT_QUEUE_TIMEOUT_MS = 60000; - static final int DEFAULT_MONGO_READ_TIMEOUT_MS = 0; - static final int DEFAULT_MONGO_MIN_HEARTBEAT_FREQUENCY_MS = 500; + public static final int DEFAULT_MONGO_MAX_POOL_SIZE = 100; + public static final int DEFAULT_MONGO_MIN_POOL_SIZE = 0; + public static final int DEFAULT_MONGO_MAX_CONNECTING = 2; + public static final int DEFAULT_MONGO_MAX_IDLE_TIME_MS = 0; + public static final int DEFAULT_MONGO_MAX_LIFE_TIME_MS = 0; + public static final int DEFAULT_MONGO_CONNECT_TIMEOUT_MS = 10000; + public static final int DEFAULT_MONGO_HEARTBEAT_FREQUENCY_MS = 5000; + public static final int DEFAULT_MONGO_SERVER_SELECTION_TIMEOUT_MS = 30000; + public static final int DEFAULT_MONGO_WAIT_QUEUE_TIMEOUT_MS = 60000; + public static final int DEFAULT_MONGO_READ_TIMEOUT_MS = 0; + public static final int DEFAULT_MONGO_MIN_HEARTBEAT_FREQUENCY_MS = 500; static final String DEFAULT_PERSISTENT_CACHE = "cache"; static final String DEFAULT_JOURNAL_CACHE = "diff-cache"; static final boolean DEFAULT_CUSTOM_BLOB_STORE = false; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java index 3be4e9bf3d..f63b9f925b 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java @@ -39,10 +39,11 @@ import com.mongodb.connection.SocketSettings; import static java.util.Objects.requireNonNull; -import org.jetbrains.annotations.NotNull; +import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService; -import org.slf4j.LoggerFactory; +import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * The {@code MongoConnection} abstracts connection to the {@code MongoDB}. @@ -174,7 +175,26 @@ public class MongoConnection { */ public static MongoClientSettings.Builder getDefaultBuilder() { return MongoClientSettings.builder() - .applicationName("MongoConnection for Oak DocumentMK"); + .applicationName("MongoConnection for Oak DocumentMK") + // Apply default connection pool settings + .applyToConnectionPoolSettings(poolBuilder -> poolBuilder + .maxSize(DocumentNodeStoreService.DEFAULT_MONGO_MAX_POOL_SIZE) + .minSize(DocumentNodeStoreService.DEFAULT_MONGO_MIN_POOL_SIZE) + .maxConnecting(DocumentNodeStoreService.DEFAULT_MONGO_MAX_CONNECTING) + .maxConnectionIdleTime(DocumentNodeStoreService.DEFAULT_MONGO_MAX_IDLE_TIME_MS, TimeUnit.MILLISECONDS) + .maxConnectionLifeTime(DocumentNodeStoreService.DEFAULT_MONGO_MAX_LIFE_TIME_MS, TimeUnit.MILLISECONDS) + .maxWaitTime(DocumentNodeStoreService.DEFAULT_MONGO_WAIT_QUEUE_TIMEOUT_MS, TimeUnit.MILLISECONDS)) + // Apply default socket settings + .applyToSocketSettings(socketBuilder -> socketBuilder + .connectTimeout(DocumentNodeStoreService.DEFAULT_MONGO_CONNECT_TIMEOUT_MS, TimeUnit.MILLISECONDS) + .readTimeout(DocumentNodeStoreService.DEFAULT_MONGO_READ_TIMEOUT_MS, TimeUnit.MILLISECONDS)) + // Apply default server settings + .applyToServerSettings(serverBuilder -> serverBuilder + .heartbeatFrequency(DocumentNodeStoreService.DEFAULT_MONGO_HEARTBEAT_FREQUENCY_MS, TimeUnit.MILLISECONDS) + .minHeartbeatFrequency(DocumentNodeStoreService.DEFAULT_MONGO_MIN_HEARTBEAT_FREQUENCY_MS, TimeUnit.MILLISECONDS)) + // Apply default cluster settings + .applyToClusterSettings(clusterBuilder -> clusterBuilder + .serverSelectionTimeout(DocumentNodeStoreService.DEFAULT_MONGO_SERVER_SELECTION_TIMEOUT_MS, TimeUnit.MILLISECONDS)); } public static String toString(MongoClientSettings settings) {