From b1b933eb43730a819a37ab0b33d78b09df838b33 Mon Sep 17 00:00:00 2001 From: Shalin Shekhar Mangar Date: Sun, 28 Aug 2016 01:04:36 +0530 Subject: [PATCH] SOLR-9374: Speed up Jmx MBean retrieval for FieldCache --- solr/CHANGES.txt | 2 ++ .../java/org/apache/solr/search/SolrFieldCacheMBean.java | 6 ++++-- .../java/org/apache/solr/uninverting/UninvertingReader.java | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index a4f918c8175..de75a397c67 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -92,6 +92,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 42b2f7628ba..8d49fcba929 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; + } }