You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ab...@apache.org on 2017/04/04 16:27:27 UTC
[14/14] lucene-solr:jira/solr-9959: Merge branch 'master' into
jira/solr-9959
Merge branch 'master' into jira/solr-9959
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/b9b707cc
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/b9b707cc
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/b9b707cc
Branch: refs/heads/jira/solr-9959
Commit: b9b707cce66c27953bea03b35ba61795c8252d35
Parents: 4249c8a 05749d0
Author: Andrzej Bialecki <ab...@apache.org>
Authored: Tue Apr 4 18:18:06 2017 +0200
Committer: Andrzej Bialecki <ab...@apache.org>
Committed: Tue Apr 4 18:18:06 2017 +0200
----------------------------------------------------------------------
dev-tools/idea/.idea/workspace.xml | 2 +-
dev-tools/maven/pom.xml.template | 1 -
lucene/CHANGES.txt | 10 +-
.../lucene50/Lucene50SegmentInfoFormat.java | 2 +-
.../lucene/codecs/lucene62/Lucene62Codec.java | 2 +-
.../apache/lucene/index/FixBrokenOffsets.java | 3 +
.../lucene50/Lucene50RWSegmentInfoFormat.java | 2 +-
.../lucene50/TestLucene50SegmentInfoFormat.java | 10 +
.../lucene53/TestLucene53NormsFormat.java | 6 +
.../lucene/codecs/lucene62/Lucene62RWCodec.java | 12 +
.../lucene62/Lucene62RWSegmentInfoFormat.java | 193 ++++++++
.../lucene62/TestLucene62SegmentInfoFormat.java | 48 ++
.../index/TestBackwardsCompatibility.java | 69 ++-
.../lucene/index/TestFixBrokenOffsets.java | 10 +-
.../lucene/index/TestIndexWriterOnOldIndex.java | 6 +-
.../simpletext/SimpleTextSegmentInfoFormat.java | 29 +-
lucene/common-build.xml | 3 -
.../lucene62/Lucene62SegmentInfoFormat.java | 152 +------
.../lucene/codecs/lucene70/Lucene70Codec.java | 3 +-
.../lucene70/Lucene70SegmentInfoFormat.java | 439 +++++++++++++++++++
.../org/apache/lucene/index/CheckIndex.java | 2 +-
.../lucene/index/DocumentsWriterPerThread.java | 2 +-
.../apache/lucene/index/FilterCodecReader.java | 5 +-
.../apache/lucene/index/FilterLeafReader.java | 5 +-
.../org/apache/lucene/index/IndexWriter.java | 54 ++-
.../org/apache/lucene/index/LeafMetaData.java | 74 ++++
.../org/apache/lucene/index/LeafReader.java | 7 +-
.../apache/lucene/index/MergeReaderWrapper.java | 5 +-
.../org/apache/lucene/index/MergeState.java | 2 +-
.../apache/lucene/index/ParallelLeafReader.java | 36 +-
.../apache/lucene/index/ReadersAndUpdates.java | 4 +-
.../org/apache/lucene/index/SegmentInfo.java | 19 +-
.../org/apache/lucene/index/SegmentInfos.java | 77 ++--
.../org/apache/lucene/index/SegmentMerger.java | 14 +
.../org/apache/lucene/index/SegmentReader.java | 10 +-
.../lucene/index/SlowCodecReaderWrapper.java | 5 +-
.../lucene/index/StandardDirectoryReader.java | 4 +-
.../EarlyTerminatingSortingCollector.java | 2 +-
.../org/apache/lucene/search/LRUQueryCache.java | 32 +-
.../lucene62/TestLucene62SegmentInfoFormat.java | 39 --
.../lucene70/TestLucene70SegmentInfoFormat.java | 35 ++
.../org/apache/lucene/index/TestCodecs.java | 4 +-
.../index/TestDemoParallelLeafReader.java | 3 +-
.../test/org/apache/lucene/index/TestDoc.java | 8 +-
.../apache/lucene/index/TestDocumentWriter.java | 9 +-
.../apache/lucene/index/TestIndexSorting.java | 2 +-
.../apache/lucene/index/TestIndexWriter.java | 2 +-
.../index/TestIndexWriterThreadsToSegments.java | 3 +-
.../index/TestOneMergeWrappingMergePolicy.java | 1 +
.../apache/lucene/index/TestSegmentInfos.java | 22 +-
.../apache/lucene/index/TestSegmentMerger.java | 7 +-
.../apache/lucene/index/TestSegmentReader.java | 3 +-
.../lucene/index/TestSegmentTermDocs.java | 7 +-
.../apache/lucene/search/TestLRUQueryCache.java | 76 ++++
.../search/highlight/TermVectorLeafReader.java | 7 +-
.../apache/lucene/index/memory/MemoryIndex.java | 6 +-
.../org/apache/lucene/index/IndexSplitter.java | 4 +-
.../lucene/replicator/nrt/ReplicaNode.java | 2 +-
.../index/BaseCompoundFormatTestCase.java | 3 +-
.../index/BaseFieldInfoFormatTestCase.java | 3 +-
.../index/BaseIndexFileFormatTestCase.java | 28 +-
.../lucene/index/BaseNormsFormatTestCase.java | 6 +-
.../index/BaseSegmentInfoFormatTestCase.java | 54 ++-
.../lucene/index/RandomPostingsTester.java | 2 +-
.../org/apache/lucene/search/QueryUtils.java | 6 +-
solr/CHANGES.txt | 20 +-
.../solr/ltr/feature/OriginalScoreFeature.java | 2 +-
.../ltr/feature/TestOriginalScoreFeature.java | 120 ++---
.../org/apache/solr/core/CoreContainer.java | 25 +-
.../java/org/apache/solr/core/NodeConfig.java | 25 +-
.../java/org/apache/solr/core/SolrCores.java | 166 ++++---
.../org/apache/solr/core/SolrXmlConfig.java | 5 +
.../solr/core/TransientSolrCoreCache.java | 127 ++++++
.../core/TransientSolrCoreCacheDefault.java | 198 +++++++++
.../core/TransientSolrCoreCacheFactory.java | 85 ++++
.../TransientSolrCoreCacheFactoryDefault.java | 31 ++
.../apache/solr/handler/AnalyzeEvaluator.java | 17 +-
.../solr/handler/admin/MetricsHandler.java | 3 +-
.../solr/index/SlowCompositeReaderWrapper.java | 19 +-
.../apache/solr/search/grouping/Command.java | 2 +-
.../solr/search/grouping/CommandHandler.java | 4 +-
.../distributed/command/QueryCommand.java | 2 +-
.../command/SearchGroupsFieldCommand.java | 2 +-
.../command/TopGroupsFieldCommand.java | 2 +-
.../src/java/org/apache/solr/util/SolrCLI.java | 18 +-
solr/core/src/test-files/solr/solr.xml | 5 +
.../test/SecureRandomAlgorithmTesterApp.java | 41 --
.../org/apache/solr/cloud/ZkControllerTest.java | 9 +-
.../org/apache/solr/core/TestCoreDiscovery.java | 7 +-
.../org/apache/solr/core/TestLazyCores.java | 53 ++-
.../solr/handler/admin/MetricsHandlerTest.java | 7 +-
.../test/org/apache/solr/search/TestDocSet.java | 7 +-
.../apache/solr/util/TestSolrCLIRunExample.java | 38 ++
.../java/org/apache/solr/SolrTestCaseJ4.java | 22 +-
94 files changed, 2127 insertions(+), 638 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b9b707cc/solr/core/src/java/org/apache/solr/core/CoreContainer.java
----------------------------------------------------------------------
diff --cc solr/core/src/java/org/apache/solr/core/CoreContainer.java
index ea792c5,1ef036a..f1e28dd
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@@ -491,9 -493,9 +494,9 @@@ public class CoreContainer
}
updateShardHandler = new UpdateShardHandler(cfg.getUpdateShardHandlerConfig());
- updateShardHandler.initializeMetrics(metricManager, SolrInfoMBean.Group.node.toString(), "updateShardHandler");
+ updateShardHandler.initializeMetrics(metricManager, SolrInfoBean.Group.node.toString(), "updateShardHandler");
- solrCores.allocateLazyCores(cfg.getTransientCacheSize(), loader);
+ transientCoreCache = TransientSolrCoreCacheFactory.newInstance(loader, this);
logging = LogWatcher.newRegisteredLogWatcher(cfg.getLogWatcherConfig(), loader);
@@@ -533,25 -535,17 +536,25 @@@
// initialize gauges for reporting the number of cores and disk total/free
- String registryName = SolrMetricManager.getRegistryName(SolrInfoMBean.Group.node);
- metricManager.registerGauge(registryName, () -> solrCores.getCores().size(),
- true, "loaded", SolrInfoMBean.Category.CONTAINER.toString(), "cores");
- metricManager.registerGauge(registryName, () -> solrCores.getLoadedCoreNames().size() - solrCores.getCores().size(),
- true, "lazy",SolrInfoMBean.Category.CONTAINER.toString(), "cores");
- metricManager.registerGauge(registryName, () -> solrCores.getAllCoreNames().size() - solrCores.getLoadedCoreNames().size(),
- true, "unloaded",SolrInfoMBean.Category.CONTAINER.toString(), "cores");
- metricManager.registerGauge(registryName, () -> cfg.getCoreRootDirectory().toFile().getTotalSpace(),
- true, "totalSpace", SolrInfoMBean.Category.CONTAINER.toString(), "fs");
- metricManager.registerGauge(registryName, () -> cfg.getCoreRootDirectory().toFile().getUsableSpace(),
- true, "usableSpace", SolrInfoMBean.Category.CONTAINER.toString(), "fs");
+ String registryName = SolrMetricManager.getRegistryName(SolrInfoBean.Group.node);
+ metricManager.registerGauge(null, registryName, () -> solrCores.getCores().size(),
+ true, "loaded", SolrInfoBean.Category.CONTAINER.toString(), "cores");
- metricManager.registerGauge(null, registryName, () -> solrCores.getCoreNames().size() - solrCores.getCores().size(),
++ metricManager.registerGauge(null, registryName, () -> solrCores.getLoadedCoreNames().size() - solrCores.getCores().size(),
+ true, "lazy", SolrInfoBean.Category.CONTAINER.toString(), "cores");
- metricManager.registerGauge(null, registryName, () -> solrCores.getAllCoreNames().size() - solrCores.getCoreNames().size(),
++ metricManager.registerGauge(null, registryName, () -> solrCores.getAllCoreNames().size() - solrCores.getLoadedCoreNames().size(),
+ true, "unloaded", SolrInfoBean.Category.CONTAINER.toString(), "cores");
+ metricManager.registerGauge(null, registryName, () -> cfg.getCoreRootDirectory().toFile().getTotalSpace(),
+ true, "totalSpace", SolrInfoBean.Category.CONTAINER.toString(), "fs");
+ metricManager.registerGauge(null, registryName, () -> cfg.getCoreRootDirectory().toFile().getUsableSpace(),
+ true, "usableSpace", SolrInfoBean.Category.CONTAINER.toString(), "fs");
+ // add version information
+ metricManager.registerGauge(null, registryName, () -> this.getClass().getPackage().getSpecificationVersion(),
+ true, "specification", SolrInfoBean.Category.CONTAINER.toString(), "version");
+ metricManager.registerGauge(null, registryName, () -> this.getClass().getPackage().getImplementationVersion(),
+ true, "implementation", SolrInfoBean.Category.CONTAINER.toString(), "version");
+
+ SolrFieldCacheBean fieldCacheBean = new SolrFieldCacheBean();
+ fieldCacheBean.initializeMetrics(metricManager, registryName, null);
if (isZooKeeperAware()) {
metricManager.loadClusterReporters(cfg.getMetricReporterPlugins(), this);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b9b707cc/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
----------------------------------------------------------------------
diff --cc solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
index 144dc1a,b37bd52..c6fe2ae
--- a/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrXmlConfig.java
@@@ -453,30 -448,18 +454,34 @@@ public class SolrXmlConfig
private static PluginInfo[] getMetricReporterPluginInfos(Config config) {
NodeList nodes = (NodeList) config.evaluate("solr/metrics/reporter", XPathConstants.NODESET);
- if (nodes == null || nodes.getLength() == 0)
- return new PluginInfo[0];
- PluginInfo[] configs = new PluginInfo[nodes.getLength()];
- for (int i = 0; i < nodes.getLength(); i++) {
- // we don't require class in order to support predefined replica and node reporter classes
- configs[i] = new PluginInfo(nodes.item(i), "SolrMetricReporter", true, false);
+ List<PluginInfo> configs = new ArrayList<>();
+ boolean hasJmxReporter = false;
+ if (nodes != null && nodes.getLength() > 0) {
+ for (int i = 0; i < nodes.getLength(); i++) {
+ // we don't require class in order to support predefined replica and node reporter classes
+ PluginInfo info = new PluginInfo(nodes.item(i), "SolrMetricReporter", true, false);
+ String clazz = info.className;
+ if (clazz != null && clazz.equals(SolrJmxReporter.class.getName())) {
+ hasJmxReporter = true;
+ }
+ configs.add(info);
+ }
}
- return configs;
+ // if there's an MBean server running but there was no JMX reporter then add a default one
+ MBeanServer mBeanServer = JmxUtil.findFirstMBeanServer();
+ if (mBeanServer != null && !hasJmxReporter) {
+ log.info("MBean server found: " + mBeanServer + ", but no JMX reporters were configured - adding default JMX reporter.");
+ Map<String,String> attributes = new HashMap<>();
+ attributes.put("name", "default");
+ attributes.put("class", SolrJmxReporter.class.getName());
+ PluginInfo defaultPlugin = new PluginInfo("reporter", attributes, null, null);
+ configs.add(defaultPlugin);
+ }
+ return configs.toArray(new PluginInfo[configs.size()]);
}
+ private static PluginInfo getTransientCoreCacheFactoryPluginInfo(Config config) {
+ Node node = config.getNode("solr/transientCoreCacheFactory", false);
+ return (node == null) ? null : new PluginInfo(node, "transientCoreCacheFactory", false, true);
+ }
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b9b707cc/solr/core/src/java/org/apache/solr/handler/AnalyzeEvaluator.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b9b707cc/solr/core/src/java/org/apache/solr/handler/admin/MetricsHandler.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/b9b707cc/solr/core/src/test/org/apache/solr/handler/admin/MetricsHandlerTest.java
----------------------------------------------------------------------