diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 7f0e49ba5d0..fa6dcbaac2a 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -54,6 +54,8 @@ Bug Fixes Optimizations ---------------------- +* SOLR-9374: Speed up Jmx MBean retrieval for FieldCache. (Tim Owen via shalin) + Other Changes ---------------------- diff --git a/solr/core/src/java/org/apache/solr/search/SolrFieldCacheMBean.java b/solr/core/src/java/org/apache/solr/search/SolrFieldCacheMBean.java index 4c8c0c10bca..62bc4fa1ff2 100644 --- a/solr/core/src/java/org/apache/solr/search/SolrFieldCacheMBean.java +++ b/solr/core/src/java/org/apache/solr/search/SolrFieldCacheMBean.java @@ -61,12 +61,14 @@ public class SolrFieldCacheMBean implements JmxAugmentedSolrInfoMBean { private NamedList getStats(boolean listEntries) { NamedList stats = new SimpleOrderedMap(); - String[] entries = UninvertingReader.getUninvertedStats(); - stats.add("entries_count", entries.length); if (listEntries) { + String[] entries = UninvertingReader.getUninvertedStats(); + stats.add("entries_count", entries.length); for (int i = 0; i < entries.length; i++) { stats.add("entry#" + i, entries[i]); } + } else { + stats.add("entries_count", UninvertingReader.getUninvertedStatsSize()); } return stats; } diff --git a/solr/core/src/java/org/apache/solr/uninverting/UninvertingReader.java b/solr/core/src/java/org/apache/solr/uninverting/UninvertingReader.java index 4450cbb7d86..3bc5e3eda70 100644 --- a/solr/core/src/java/org/apache/solr/uninverting/UninvertingReader.java +++ b/solr/core/src/java/org/apache/solr/uninverting/UninvertingReader.java @@ -388,4 +388,8 @@ public class UninvertingReader extends FilterLeafReader { } return info; } + + public static int getUninvertedStatsSize() { + return FieldCache.DEFAULT.getCacheEntries().length; + } }