lucene-solr-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hoss...@apache.org
Subject svn commit: r818618 - in /lucene/solr/trunk: CHANGES.txt src/java/org/apache/solr/core/SolrCore.java src/java/org/apache/solr/search/SolrFieldCacheMBean.java
Date Thu, 24 Sep 2009 20:35:57 GMT
Author: hossman
Date: Thu Sep 24 20:35:56 2009
New Revision: 818618

URL: http://svn.apache.org/viewvc?rev=818618&view=rev
Log:
SOLR-1292: Add FieldCache introspection to stats.jsp and JMX Monitoring via a new SolrFieldCacheMBean

Added:
    lucene/solr/trunk/src/java/org/apache/solr/search/SolrFieldCacheMBean.java   (with props)
Modified:
    lucene/solr/trunk/CHANGES.txt
    lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java

Modified: lucene/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=818618&r1=818617&r2=818618&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Thu Sep 24 20:35:56 2009
@@ -325,6 +325,9 @@
     speeding up phrase queries containing common words by indexing
     n-grams and using them at query time. 
     (Tom Burton-West, Jason Rutherglen via yonik)
+    
+83. SOLR-1292: Add FieldCache introspection to stats.jsp and JMX Monitoring via
+    a new SolrFieldCacheMBean.  (hossman)
 
 Optimizations
 ----------------------

Modified: lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java?rev=818618&r1=818617&r2=818618&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/SolrCore.java Thu Sep 24 20:35:56 2009
@@ -35,6 +35,7 @@
 import org.apache.solr.request.*;
 import org.apache.solr.schema.IndexSchema;
 import org.apache.solr.search.QParserPlugin;
+import org.apache.solr.search.SolrFieldCacheMBean;
 import org.apache.solr.search.SolrIndexSearcher;
 import org.apache.solr.search.ValueSourceParser;
 import org.apache.solr.update.DirectUpdateHandler2;
@@ -527,6 +528,8 @@
       infoRegistry = new ConcurrentHashMap<String, SolrInfoMBean>();
     }
 
+    infoRegistry.put("fieldCache", new SolrFieldCacheMBean());
+
     this.schema = schema;
     this.dataDir = dataDir;
     this.solrConfig = config;

Added: lucene/solr/trunk/src/java/org/apache/solr/search/SolrFieldCacheMBean.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/search/SolrFieldCacheMBean.java?rev=818618&view=auto
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/search/SolrFieldCacheMBean.java (added)
+++ lucene/solr/trunk/src/java/org/apache/solr/search/SolrFieldCacheMBean.java Thu Sep 24
20:35:56 2009
@@ -0,0 +1,77 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.solr.search;
+
+import java.net.URL;
+
+import org.apache.solr.common.util.NamedList;
+import org.apache.solr.common.util.SimpleOrderedMap;
+
+import org.apache.solr.core.SolrCore;
+import org.apache.solr.core.SolrInfoMBean;
+
+import org.apache.lucene.search.FieldCache;
+import org.apache.lucene.search.FieldCache.CacheEntry;
+import org.apache.lucene.util.FieldCacheSanityChecker;
+import org.apache.lucene.util.FieldCacheSanityChecker.Insanity;
+
+/**
+ * A SolrInfoMBean that provides introspection of the Lucene FiledCache, this is <b>NOT</b>
a cache that is manged by Solr.
+ *
+ * @version $Id:$
+ */
+public class SolrFieldCacheMBean implements SolrInfoMBean {
+
+  protected FieldCacheSanityChecker checker = new FieldCacheSanityChecker();
+
+  public String getName() { return this.getClass().getName(); }
+  public String getVersion() { return SolrCore.version; }
+  public String getDescription() {
+    return "Provides introspection of the Lucene FiledCache, "
+      +    "this is **NOT** a cache that is manged by Solr.";
+  }
+  public Category getCategory() { return Category.CACHE; } 
+  public String getSourceId() { 
+    return "$Id:$"; 
+  }
+  public String getSource() { 
+    return "$URL:$";
+  }
+  public URL[] getDocs() {
+    return null;
+  }
+  public NamedList getStatistics() {
+    NamedList stats = new SimpleOrderedMap();
+    CacheEntry[] entries = FieldCache.DEFAULT.getCacheEntries();
+    stats.add("entries_count", entries.length);
+    for (int i = 0; i < entries.length; i++) {
+      CacheEntry e = entries[i];
+      e.estimateSize();
+      stats.add("entry#" + i, e.toString());
+    }
+
+    Insanity[] insanity = checker.checkSanity(entries);
+
+    stats.add("instanity_count", insanity.length);
+    for (int i = 0; i < insanity.length; i++) {
+      stats.add("insanity#" + i, insanity[i].toString());
+    }
+    return stats;
+  }
+
+}

Propchange: lucene/solr/trunk/src/java/org/apache/solr/search/SolrFieldCacheMBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: lucene/solr/trunk/src/java/org/apache/solr/search/SolrFieldCacheMBean.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL



Mime
View raw message