This is an automated email from the ASF dual-hosted git repository.

cpoerschke pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 5ec0571dd8b SOLR-17631: Lucene's 
ConcurrentMergeScheduler.autoIOThrottle default changed (#3459)
5ec0571dd8b is described below

commit 5ec0571dd8bbd67c960a2f40b561978914e34498
Author: Christine Poerschke <[email protected]>
AuthorDate: Wed Aug 20 17:49:21 2025 +0100

    SOLR-17631: Lucene's ConcurrentMergeScheduler.autoIOThrottle default 
changed (#3459)
---
 solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java        | 4 ++--
 .../solr/collection1/conf/solrconfig-concurrentmergescheduler.xml     | 2 +-
 solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java    | 2 +-
 .../modules/configuration-guide/pages/index-segments-merging.adoc     | 2 +-
 .../modules/upgrade-notes/pages/major-changes-in-solr-10.adoc         | 2 ++
 5 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java 
b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
index 94c5e63aa37..2842c5acb2e 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
@@ -340,8 +340,8 @@ public class SolrIndexConfig implements MapSerializable {
         ((ConcurrentMergeScheduler) scheduler)
             .setMaxMergesAndThreads(maxMergeCount, maxThreadCount);
         Boolean ioThrottle = (Boolean) args.remove("ioThrottle");
-        if (ioThrottle != null && !ioThrottle) { // by-default 'enabled'
-          ((ConcurrentMergeScheduler) scheduler).disableAutoIOThrottle();
+        if (ioThrottle != null && ioThrottle) { // by-default 'disabled'
+          ((ConcurrentMergeScheduler) scheduler).enableAutoIOThrottle();
         }
         SolrPluginUtils.invokeSetters(scheduler, args);
       } else {
diff --git 
a/solr/core/src/test-files/solr/collection1/conf/solrconfig-concurrentmergescheduler.xml
 
b/solr/core/src/test-files/solr/collection1/conf/solrconfig-concurrentmergescheduler.xml
index 3c7c7959ed0..5ea753f41f2 100644
--- 
a/solr/core/src/test-files/solr/collection1/conf/solrconfig-concurrentmergescheduler.xml
+++ 
b/solr/core/src/test-files/solr/collection1/conf/solrconfig-concurrentmergescheduler.xml
@@ -28,7 +28,7 @@
     <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler">
       <int name="maxMergeCount">987</int>
       <int name="maxThreadCount">42</int>
-      <bool name="ioThrottle">false</bool>
+      <bool name="ioThrottle">true</bool>
     </mergeScheduler>
   </indexConfig>
 
diff --git a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java 
b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
index 66f623ed678..066be8e04f5 100644
--- a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
+++ b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
@@ -139,7 +139,7 @@ public class SolrIndexConfigTest extends SolrTestCaseJ4 {
     ConcurrentMergeScheduler ms = (ConcurrentMergeScheduler) 
iwc.getMergeScheduler();
     assertEquals("ms.maxMergeCount", 987, ms.getMaxMergeCount());
     assertEquals("ms.maxThreadCount", 42, ms.getMaxThreadCount());
-    assertFalse("ms.isAutoIOThrottle", ms.getAutoIOThrottle());
+    assertTrue("ms.isAutoIOThrottle", ms.getAutoIOThrottle());
   }
 
   public void testSortingMPSolrIndexConfigCreation() throws Exception {
diff --git 
a/solr/solr-ref-guide/modules/configuration-guide/pages/index-segments-merging.adoc
 
b/solr/solr-ref-guide/modules/configuration-guide/pages/index-segments-merging.adoc
index 165fc021984..5a917887ba5 100644
--- 
a/solr/solr-ref-guide/modules/configuration-guide/pages/index-segments-merging.adoc
+++ 
b/solr/solr-ref-guide/modules/configuration-guide/pages/index-segments-merging.adoc
@@ -221,7 +221,7 @@ This must be less than `maxMergeCount`.
 |===
 +
 A Boolean value (`true` or `false`) to explicitly control I/O throttling.
-By default throttling is enabled and the CMS will limit I/O throughput when 
merging to leave other (search, indexing) some room.
+By default throttling is disabled and the CMS will not limit I/O throughput 
when merging to leave other (search, indexing) some room.
 
 .Example: Dynamic defaults
 [source,xml]
diff --git 
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc 
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
index 21d36eb73a8..d63fd5007ef 100644
--- 
a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
+++ 
b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc
@@ -117,6 +117,8 @@ Nowadays, the HTTP request is available via internal APIs: 
`SolrQueryRequest.get
 
 * PreAnalyzedField and PreAnalyzedUpdateProcessor have been removed due to 
incompatibility with Lucene 10 (SOLR-17839).
 
+* The ConcurrentMergeScheduler's autoIOThrottle default changed to `false` but 
`true` may be configured to retain prior behaviour. (SOLR-17631).
+
 * BlobHandler and the `.system` collection have been removed in favour of 
FileStore API.  (SOLR-17851). 
 
 

Reply via email to