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 2019/12/18 16:38:52 UTC
[lucene-solr] 14/36: Small fixes and improvements.
This is an automated email from the ASF dual-hosted git repository.
ab pushed a commit to branch jira/solr-13579
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit 0876676ea869930b123d9e22caf86751e4443a40
Author: Andrzej Bialecki <ab...@apache.org>
AuthorDate: Thu Jul 18 18:49:22 2019 +0200
Small fixes and improvements.
---
solr/core/src/java/org/apache/solr/core/CoreContainer.java | 8 ++++++++
.../org/apache/solr/handler/admin/ResourceManagerHandler.java | 8 ++++----
.../java/org/apache/solr/managed/DefaultResourceManagerPool.java | 9 +++++++--
solr/core/src/java/org/apache/solr/managed/ResourceManager.java | 2 ++
4 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index b68e701..7f27ac9 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -100,6 +100,7 @@ import org.apache.solr.logging.LogWatcher;
import org.apache.solr.logging.MDCLoggingContext;
import org.apache.solr.managed.DefaultResourceManager;
import org.apache.solr.managed.ResourceManager;
+import org.apache.solr.managed.plugins.CacheManagerPlugin;
import org.apache.solr.metrics.SolrCoreMetricManager;
import org.apache.solr.metrics.SolrMetricManager;
import org.apache.solr.metrics.SolrMetricProducer;
@@ -616,6 +617,13 @@ public class CoreContainer {
resourceManager = new DefaultResourceManager(loader, TimeSource.NANO_TIME);
// TODO: get the config from solr.xml?
resourceManager.init(new PluginInfo("resourceManager", Collections.emptyMap()));
+ // TODO: create default pools from solr.xml?
+ try {
+ resourceManager.createPool(ResourceManager.SEARCHER_CACHE_POOL, CacheManagerPlugin.TYPE,
+ Collections.singletonMap("maxRamMB", 500), Collections.emptyMap());
+ } catch (Exception e) {
+ log.warn("failed to create default searcherCache pool,, disabling", e);
+ }
coreContainerWorkExecutor = MetricUtils.instrumentedExecutorService(
coreContainerWorkExecutor, null,
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/ResourceManagerHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/ResourceManagerHandler.java
index bd65132..596672d 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/ResourceManagerHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/ResourceManagerHandler.java
@@ -45,7 +45,6 @@ public class ResourceManagerHandler extends RequestHandlerBase implements Permis
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
public static final String POOL_PARAM = "pool";
- public static final String RESOURCE_PARAM = "resource";
public static final String LIMIT_PREFIX_PARAM = "limit.";
public static final String ARG_PREFIX_PARAM = "arg.";
public static final String POOL_ACTION_PARAM = "poolAction";
@@ -138,6 +137,7 @@ public class ResourceManagerHandler extends RequestHandlerBase implements Permis
perPool.add("size", pool.getResources().size());
perPool.add("limits", pool.getPoolLimits());
perPool.add("args", pool.getArgs());
+ perPool.add("resources", pool.getResources().keySet());
});
break;
case STATUS:
@@ -151,7 +151,7 @@ public class ResourceManagerHandler extends RequestHandlerBase implements Permis
result.add("args", pool.getArgs());
result.add("resources", pool.getResources().keySet());
try {
- result.add("currentValues", pool.getCurrentValues());
+ pool.getCurrentValues();
result.add("totalValues", pool.getTotalValues());
} catch (Exception e) {
log.warn("Error getting current values from pool " + name, e);
@@ -230,9 +230,9 @@ public class ResourceManagerHandler extends RequestHandlerBase implements Permis
if (pool == null) {
throw new SolrException(SolrException.ErrorCode.NOT_FOUND, "Pool '" + poolName + "' not found.");
}
- String resName = params.get(RESOURCE_PARAM);
+ String resName = params.get(CommonParams.NAME);
if ((resName == null || resName.isBlank()) && op != ResOp.LIST) {
- throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Missing '" + RESOURCE_PARAM + "' parameter.");
+ throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Missing '" + CommonParams.NAME + "' parameter.");
}
NamedList<Object> result = new SimpleOrderedMap<>();
switch (op) {
diff --git a/solr/core/src/java/org/apache/solr/managed/DefaultResourceManagerPool.java b/solr/core/src/java/org/apache/solr/managed/DefaultResourceManagerPool.java
index aada8c2..3295ef6 100644
--- a/solr/core/src/java/org/apache/solr/managed/DefaultResourceManagerPool.java
+++ b/solr/core/src/java/org/apache/solr/managed/DefaultResourceManagerPool.java
@@ -123,11 +123,16 @@ public class DefaultResourceManagerPool implements ResourceManagerPool {
if (!(v instanceof Number)) {
return;
}
+ Float val = ((Number)v).floatValue();
+ // -1 and MAX_VALUE are our special guard values
+ if (val < 0 || val.longValue() == Long.MAX_VALUE || val.longValue() == Integer.MAX_VALUE) {
+ return;
+ }
Float total = newTotalValues.get(k);
if (total == null) {
- newTotalValues.put(k, ((Number)v).floatValue());
+ newTotalValues.put(k, val);
} else {
- newTotalValues.put(k, total + ((Number)v).floatValue());
+ newTotalValues.put(k, total + val);
}
}));
totalValues = newTotalValues;
diff --git a/solr/core/src/java/org/apache/solr/managed/ResourceManager.java b/solr/core/src/java/org/apache/solr/managed/ResourceManager.java
index aaeedbf..bd2e924 100644
--- a/solr/core/src/java/org/apache/solr/managed/ResourceManager.java
+++ b/solr/core/src/java/org/apache/solr/managed/ResourceManager.java
@@ -36,6 +36,8 @@ import org.slf4j.LoggerFactory;
public abstract class ResourceManager implements SolrCloseable, PluginInfoInitialized {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+ public static final String SEARCHER_CACHE_POOL = "searcherCache";
+
protected PluginInfo pluginInfo;
protected boolean isClosed = false;
protected boolean enabled = true;