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:57 UTC
[lucene-solr] 19/36: Renaming and refactoring.
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 55c0060eaed0db72247a93a11d0bca6eaf6bda81
Author: Andrzej Bialecki <ab...@apache.org>
AuthorDate: Thu Jul 25 17:12:13 2019 +0200
Renaming and refactoring.
---
.../solr/handler/admin/ResourceManagerHandler.java | 40 +++++++++++-----------
.../solr/managed/DefaultResourceManager.java | 10 +++---
.../solr/managed/DefaultResourceManagerPool.java | 35 +++++++------------
...{ManagedResource.java => ManagedComponent.java} | 18 ++++++----
.../{ResourceId.java => ManagedComponentId.java} | 12 +++----
.../apache/solr/managed/ManagedMetricProducer.java | 2 +-
.../apache/solr/managed/NoOpResourceManager.java | 17 ++++-----
...gedMetricProducer.java => ResourceContext.java} | 27 ++-------------
.../org/apache/solr/managed/ResourceManager.java | 28 +++++++--------
.../apache/solr/managed/ResourceManagerPlugin.java | 4 +--
.../apache/solr/managed/ResourceManagerPool.java | 30 +++++-----------
.../solr/managed/plugins/CacheManagerPlugin.java | 20 +++++++++--
.../java/org/apache/solr/search/FastLRUCache.java | 10 +++---
.../src/java/org/apache/solr/search/LFUCache.java | 10 +++---
.../src/java/org/apache/solr/search/LRUCache.java | 10 +++---
.../src/java/org/apache/solr/search/SolrCache.java | 4 +--
.../org/apache/solr/search/SolrIndexSearcher.java | 6 ++--
17 files changed, 129 insertions(+), 154 deletions(-)
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 e76dbc7..76b3aa7 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
@@ -28,7 +28,7 @@ import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.handler.RequestHandlerBase;
-import org.apache.solr.managed.ManagedResource;
+import org.apache.solr.managed.ManagedComponent;
import org.apache.solr.managed.ResourceManager;
import org.apache.solr.managed.ResourceManagerPool;
import org.apache.solr.request.SolrQueryRequest;
@@ -134,10 +134,10 @@ public class ResourceManagerHandler extends RequestHandlerBase implements Permis
NamedList<Object> perPool = new SimpleOrderedMap<>();
result.add(p, perPool);
perPool.add("type", pool.getType());
- perPool.add("size", pool.getResources().size());
+ perPool.add("size", pool.getComponents().size());
perPool.add("poolLimits", pool.getPoolLimits());
perPool.add("poolParams", pool.getParams());
- perPool.add("resources", pool.getResources().keySet());
+ perPool.add("resources", pool.getComponents().keySet());
});
break;
case STATUS:
@@ -146,10 +146,10 @@ public class ResourceManagerHandler extends RequestHandlerBase implements Permis
throw new SolrException(SolrException.ErrorCode.NOT_FOUND, "Pool '" + name + "' not found.");
}
result.add("type", pool.getType());
- result.add("size", pool.getResources().size());
+ result.add("size", pool.getComponents().size());
result.add("poolLimits", pool.getPoolLimits());
result.add("poolParams", pool.getParams());
- result.add("resources", pool.getResources().keySet());
+ result.add("resources", pool.getComponents().keySet());
try {
pool.getCurrentValues();
result.add("totalValues", pool.getTotalValues());
@@ -237,7 +237,7 @@ public class ResourceManagerHandler extends RequestHandlerBase implements Permis
NamedList<Object> result = new SimpleOrderedMap<>();
switch (op) {
case LIST:
- pool.getResources().forEach((n, resource) -> {
+ pool.getComponents().forEach((n, resource) -> {
NamedList<Object> perRes = new SimpleOrderedMap<>();
result.add(n, perRes);
perRes.add("class", resource.getClass().getName());
@@ -246,33 +246,33 @@ public class ResourceManagerHandler extends RequestHandlerBase implements Permis
});
break;
case STATUS:
- ManagedResource resource = pool.getResources().get(resName);
- if (resource == null) {
+ ManagedComponent managedComponent = pool.getComponents().get(resName);
+ if (managedComponent == null) {
throw new SolrException(SolrException.ErrorCode.NOT_FOUND, "Resource '" + resName + " not found in pool '" + poolName + "'.");
}
- result.add("class", resource.getClass().getName());
- result.add("types", resource.getManagedResourceTypes());
- result.add("resourceLimits", resource.getResourceLimits());
+ result.add("class", managedComponent.getClass().getName());
+ result.add("types", managedComponent.getManagedResourceTypes());
+ result.add("resourceLimits", managedComponent.getResourceLimits());
try {
- result.add("monitoredValues", resource.getMonitoredValues(Collections.emptySet()));
+ result.add("monitoredValues", managedComponent.getMonitoredValues(Collections.emptySet()));
} catch (Exception e) {
log.warn("Error getting monitored values of " + resName + "/" + poolName + " : " + e.toString(), e);
result.add("error", "Error getting monitored values of " + resName + ": " + e.toString());
}
break;
case GETLIMITS:
- ManagedResource resource1 = pool.getResources().get(resName);
- if (resource1 == null) {
+ ManagedComponent managedComponent1 = pool.getComponents().get(resName);
+ if (managedComponent1 == null) {
throw new SolrException(SolrException.ErrorCode.NOT_FOUND, "Resource '" + resName + " not found in pool '" + poolName + "'.");
}
- result.add("resourceLimits", resource1.getResourceLimits());
+ result.add("resourceLimits", managedComponent1.getResourceLimits());
break;
case SETLIMITS:
- ManagedResource resource2 = pool.getResources().get(resName);
- if (resource2 == null) {
+ ManagedComponent managedComponent2 = pool.getComponents().get(resName);
+ if (managedComponent2 == null) {
throw new SolrException(SolrException.ErrorCode.NOT_FOUND, "Resource '" + resName + " not found in pool '" + poolName + "'.");
}
- Map<String, Object> currentLimits = new HashMap<>(resource2.getResourceLimits());
+ Map<String, Object> currentLimits = new HashMap<>(managedComponent2.getResourceLimits());
Map<String, Object> newLimits = getMap(params, LIMIT_PREFIX_PARAM);
newLimits.forEach((k, v) -> {
if (v == null) {
@@ -281,11 +281,11 @@ public class ResourceManagerHandler extends RequestHandlerBase implements Permis
currentLimits.put(k, v);
}
});
- resource2.setResourceLimits(newLimits);
+ managedComponent2.setResourceLimits(newLimits);
result.add("success", newLimits);
break;
case DELETE:
- result.add("success", pool.removeResource(resName) ? "removed" : "not found");
+ result.add("success", pool.unregisterComponent(resName) ? "removed" : "not found");
}
rsp.getValues().add("result", result);
}
diff --git a/solr/core/src/java/org/apache/solr/managed/DefaultResourceManager.java b/solr/core/src/java/org/apache/solr/managed/DefaultResourceManager.java
index d0d8233..93dfb2d2 100644
--- a/solr/core/src/java/org/apache/solr/managed/DefaultResourceManager.java
+++ b/solr/core/src/java/org/apache/solr/managed/DefaultResourceManager.java
@@ -169,7 +169,7 @@ public class DefaultResourceManager extends ResourceManager {
}
@Override
- public void addResource(String name, ManagedResource managedResource) {
+ public void registerComponent(String name, ManagedComponent managedComponent) {
ensureActive();
ResourceManagerPool pool = resourcePools.get(name);
if (pool == null) {
@@ -181,22 +181,22 @@ public class DefaultResourceManager extends ResourceManager {
return;
}
if (otherPool.getType().equals(type)) {
- throw new IllegalArgumentException("Resource " + managedResource.getResourceId() +
+ throw new IllegalArgumentException("Resource " + managedComponent.getManagedComponentId() +
" is already managed in another pool (" +
otherPool.getName() + ") of the same type " + type);
}
});
- pool.addResource(managedResource);
+ pool.registerComponent(managedComponent);
}
@Override
- public boolean removeResource(String poolName, String resourceId) {
+ public boolean unregisterComponent(String poolName, String resourceId) {
ensureActive();
ResourceManagerPool pool = resourcePools.get(poolName);
if (pool == null) {
throw new IllegalArgumentException("Pool '" + poolName + "' doesn't exist.");
}
- return pool.removeResource(resourceId);
+ return pool.unregisterComponent(resourceId);
}
@Override
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 d46666f..b966336 100644
--- a/solr/core/src/java/org/apache/solr/managed/DefaultResourceManagerPool.java
+++ b/solr/core/src/java/org/apache/solr/managed/DefaultResourceManagerPool.java
@@ -37,14 +37,13 @@ import org.slf4j.LoggerFactory;
public class DefaultResourceManagerPool implements ResourceManagerPool {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- private final Map<String, ManagedResource> resources = new ConcurrentHashMap<>();
- private final Map<String, Context> resourceContexts = new ConcurrentHashMap<>();
+ private final Map<String, ManagedComponent> resources = new ConcurrentHashMap<>();
private Map<String, Object> poolLimits;
private final String type;
private final String name;
private final ResourceManagerPlugin resourceManagerPlugin;
private final Map<String, Object> args;
- private final Context poolContext = new Context();
+ private final ResourceContext poolContext = new ResourceContext();
private Map<String, Float> totalValues = null;
private final ReentrantLock updateLock = new ReentrantLock();
int scheduleDelaySeconds;
@@ -83,27 +82,25 @@ public class DefaultResourceManagerPool implements ResourceManagerPool {
}
@Override
- public void addResource(ManagedResource managedResource) {
- Collection<String> types = managedResource.getManagedResourceTypes();
+ public void registerComponent(ManagedComponent managedComponent) {
+ Collection<String> types = managedComponent.getManagedResourceTypes();
if (!types.contains(type)) {
- log.debug("Pool type '" + type + "' is not supported by the resource " + managedResource.getResourceId());
+ log.debug("Pool type '" + type + "' is not supported by the resource " + managedComponent.getManagedComponentId());
return;
}
- ManagedResource existing = resources.putIfAbsent(managedResource.getResourceId().toString(), managedResource);
+ ManagedComponent existing = resources.putIfAbsent(managedComponent.getManagedComponentId().toString(), managedComponent);
if (existing != null) {
- throw new IllegalArgumentException("Resource '" + managedResource.getResourceId() + "' already exists in pool '" + name + "' !");
+ throw new IllegalArgumentException("Resource '" + managedComponent.getManagedComponentId() + "' already exists in pool '" + name + "' !");
}
- resourceContexts.putIfAbsent(managedResource.getResourceId().toString(), new Context());
}
@Override
- public boolean removeResource(String name) {
- resourceContexts.remove(name);
+ public boolean unregisterComponent(String name) {
return resources.remove(name) != null;
}
@Override
- public Map<String, ManagedResource> getResources() {
+ public Map<String, ManagedComponent> getComponents() {
return Collections.unmodifiableMap(resources);
}
@@ -113,11 +110,11 @@ public class DefaultResourceManagerPool implements ResourceManagerPool {
try {
// collect current values
Map<String, Map<String, Object>> currentValues = new HashMap<>();
- for (ManagedResource resource : resources.values()) {
+ for (ManagedComponent managedComponent : resources.values()) {
try {
- currentValues.put(resource.getResourceId().toString(), resource.getMonitoredValues(resourceManagerPlugin.getMonitoredParams()));
+ currentValues.put(managedComponent.getManagedComponentId().toString(), managedComponent.getMonitoredValues(resourceManagerPlugin.getMonitoredParams()));
} catch (Exception e) {
- log.warn("Error getting managed values from " + resource.getResourceId(), e);
+ log.warn("Error getting managed values from " + managedComponent.getManagedComponentId(), e);
}
}
// calculate totals
@@ -167,16 +164,11 @@ public class DefaultResourceManagerPool implements ResourceManagerPool {
}
@Override
- public Context getPoolContext() {
+ public ResourceContext getPoolContext() {
return poolContext;
}
@Override
- public Context getResourceContext(String name) {
- return resourceContexts.get(name);
- }
-
- @Override
public void run() {
try {
resourceManagerPlugin.manage(this);
@@ -192,7 +184,6 @@ public class DefaultResourceManagerPool implements ResourceManagerPool {
scheduledFuture = null;
}
resources.clear();
- resourceContexts.clear();
poolContext.clear();
}
}
diff --git a/solr/core/src/java/org/apache/solr/managed/ManagedResource.java b/solr/core/src/java/org/apache/solr/managed/ManagedComponent.java
similarity index 83%
rename from solr/core/src/java/org/apache/solr/managed/ManagedResource.java
rename to solr/core/src/java/org/apache/solr/managed/ManagedComponent.java
index d058c97..c8d3dba 100644
--- a/solr/core/src/java/org/apache/solr/managed/ManagedResource.java
+++ b/solr/core/src/java/org/apache/solr/managed/ManagedComponent.java
@@ -24,19 +24,19 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * A managed resource.
+ * A managed component.
*/
-public interface ManagedResource {
+public interface ManagedComponent {
Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
/**
- * Unique name of this resource. By convention id-s form a dot-separated hierarchy that
+ * Unique name of this component. By convention id-s form a dot-separated hierarchy that
* follows the naming of metric registries and metric names.
*/
- ResourceId getResourceId();
+ ManagedComponentId getManagedComponentId();
/**
- * Returns types of management plugins supported by this resource. This must always
+ * Returns types of management plugins supported by this component. This must always
* return a non-null collection with at least one entry.
*/
Collection<String> getManagedResourceTypes();
@@ -54,7 +54,7 @@ public interface ManagedResource {
setResourceLimit(key, value);
} catch (Exception e) {
log.warn("Exception setting resource limit on {}: key={}, value={}, exception={}",
- getResourceId(), key, value, e);
+ getManagedComponentId(), key, value, e);
}
});
}
@@ -78,4 +78,10 @@ public interface ManagedResource {
* @return map of parameter names to current values.
*/
Map<String, Object> getMonitoredValues(Collection<String> params) throws Exception;
+
+ /**
+ * Component context used for managing additional component state.
+ * @return component's context
+ */
+ ResourceContext getManagedContext();
}
diff --git a/solr/core/src/java/org/apache/solr/managed/ResourceId.java b/solr/core/src/java/org/apache/solr/managed/ManagedComponentId.java
similarity index 85%
rename from solr/core/src/java/org/apache/solr/managed/ResourceId.java
rename to solr/core/src/java/org/apache/solr/managed/ManagedComponentId.java
index 81b7a80..064cbe5 100644
--- a/solr/core/src/java/org/apache/solr/managed/ResourceId.java
+++ b/solr/core/src/java/org/apache/solr/managed/ManagedComponentId.java
@@ -22,14 +22,14 @@ import java.util.Arrays;
import org.apache.solr.metrics.SolrMetricManager;
/**
- * Hierarchical resource id.
+ * Hierarchical component id.
*/
-public class ResourceId {
+public class ManagedComponentId {
private final String name;
private final String[] path;
private final String id;
- public ResourceId(String name, String... path) {
+ public ManagedComponentId(String name, String... path) {
this.name = name;
this.path = path;
this.id = SolrMetricManager.mkName(name, path);
@@ -47,7 +47,7 @@ public class ResourceId {
return id;
}
- public ResourceId of(String fullName) {
+ public ManagedComponentId of(String fullName) {
if (fullName == null || fullName.isEmpty()) {
return null;
}
@@ -55,9 +55,9 @@ public class ResourceId {
if (parts.length > 1) {
String name = parts[parts.length - 1];
String[] path = Arrays.copyOfRange(parts, 0, parts.length - 1);
- return new ResourceId(name, path);
+ return new ManagedComponentId(name, path);
} else {
- return new ResourceId(parts[0]);
+ return new ManagedComponentId(parts[0]);
}
}
}
diff --git a/solr/core/src/java/org/apache/solr/managed/ManagedMetricProducer.java b/solr/core/src/java/org/apache/solr/managed/ManagedMetricProducer.java
index 82d431e..1cb9a04 100644
--- a/solr/core/src/java/org/apache/solr/managed/ManagedMetricProducer.java
+++ b/solr/core/src/java/org/apache/solr/managed/ManagedMetricProducer.java
@@ -26,7 +26,7 @@ import org.apache.solr.core.SolrInfoBean;
/**
* Convenience interface for {@link SolrInfoBean}-s that need to be managed.
*/
-public interface ManagedMetricProducer extends SolrInfoBean, ManagedResource {
+public interface ManagedMetricProducer extends SolrInfoBean, ManagedComponent {
@Override
default Map<String, Object> getMonitoredValues(Collection<String> params) {
diff --git a/solr/core/src/java/org/apache/solr/managed/NoOpResourceManager.java b/solr/core/src/java/org/apache/solr/managed/NoOpResourceManager.java
index 1eccff2..cd94afe 100644
--- a/solr/core/src/java/org/apache/solr/managed/NoOpResourceManager.java
+++ b/solr/core/src/java/org/apache/solr/managed/NoOpResourceManager.java
@@ -44,17 +44,17 @@ public class NoOpResourceManager extends ResourceManager {
}
@Override
- public void addResource(ManagedResource managedResource) {
+ public void registerComponent(ManagedComponent managedComponent) {
}
@Override
- public boolean removeResource(String name) {
+ public boolean unregisterComponent(String name) {
return false;
}
@Override
- public Map<String, ManagedResource> getResources() {
+ public Map<String, ManagedComponent> getComponents() {
return Collections.emptyMap();
}
@@ -84,12 +84,7 @@ public class NoOpResourceManager extends ResourceManager {
}
@Override
- public Context getPoolContext() {
- return null;
- }
-
- @Override
- public Context getResourceContext(String name) {
+ public ResourceContext getPoolContext() {
return null;
}
@@ -135,12 +130,12 @@ public class NoOpResourceManager extends ResourceManager {
}
@Override
- public void addResource(String pool, ManagedResource managedResource) throws Exception {
+ public void registerComponent(String pool, ManagedComponent managedComponent) throws Exception {
}
@Override
- public boolean removeResource(String pool, String resourceId) {
+ public boolean unregisterComponent(String pool, String componentId) {
return false;
}
diff --git a/solr/core/src/java/org/apache/solr/managed/ManagedMetricProducer.java b/solr/core/src/java/org/apache/solr/managed/ResourceContext.java
similarity index 53%
copy from solr/core/src/java/org/apache/solr/managed/ManagedMetricProducer.java
copy to solr/core/src/java/org/apache/solr/managed/ResourceContext.java
index 82d431e..0c8e5a3 100644
--- a/solr/core/src/java/org/apache/solr/managed/ManagedMetricProducer.java
+++ b/solr/core/src/java/org/apache/solr/managed/ResourceContext.java
@@ -16,32 +16,11 @@
*/
package org.apache.solr.managed;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.solr.core.SolrInfoBean;
+import java.util.concurrent.ConcurrentHashMap;
/**
- * Convenience interface for {@link SolrInfoBean}-s that need to be managed.
+ *
*/
-public interface ManagedMetricProducer extends SolrInfoBean, ManagedResource {
+public class ResourceContext extends ConcurrentHashMap<String, Object> {
- @Override
- default Map<String, Object> getMonitoredValues(Collection<String> params) {
- Map<String, Object> metrics = getMetricsSnapshot();
- if (metrics == null) {
- return Collections.emptyMap();
- }
- Map<String, Object> result = new HashMap<>();
- params.forEach(tag -> {
- Object value = metrics.get(tag);
- if (value == null) {
- return;
- }
- result.put(tag, value);
- });
- return result;
- }
}
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 43054fe..48c2273 100644
--- a/solr/core/src/java/org/apache/solr/managed/ResourceManager.java
+++ b/solr/core/src/java/org/apache/solr/managed/ResourceManager.java
@@ -197,34 +197,34 @@ public abstract class ResourceManager implements SolrCloseable, PluginInfoInitia
public abstract void removePool(String name) throws Exception;
/**
- * Add managed resources to a pool.
+ * Add managed components to a pool.
* @param pool existing pool name.
- * @param managedResources resources to add
+ * @param managedComponents components to add
*/
- public void addResources(String pool, Collection<ManagedResource> managedResources) throws Exception {
+ public void registerComponents(String pool, Collection<ManagedComponent> managedComponents) throws Exception {
ensureActive();
- for (ManagedResource resource : managedResources) {
- addResource(pool, resource);
+ for (ManagedComponent managedComponent : managedComponents) {
+ registerComponent(pool, managedComponent);
}
}
/**
- * Add a managed resource to a pool.
+ * Add a managed component to a pool.
* @param pool existing pool name.
- * @param managedResource managed resource. The resource must support the management type
- * (in its {@link ManagedResource#getManagedResourceTypes()}) used
- * in the selected pool. The resource must not be already managed by
+ * @param managedComponent managed component. The component must support the management type
+ * (in its {@link ManagedComponent#getManagedResourceTypes()}) used
+ * in the selected pool. The component must not be already managed by
* another pool of the same type.
*/
- public abstract void addResource(String pool, ManagedResource managedResource) throws Exception;
+ public abstract void registerComponent(String pool, ManagedComponent managedComponent) throws Exception;
/**
- * Remove a managed resource from a pool.
+ * Remove a managed component from a pool.
* @param pool existing pool name.
- * @param resourceId resource id to remove
- * @return true if a resource was actually registered and has been removed
+ * @param componentId component id to remove
+ * @return true if a component was actually registered and has been removed
*/
- public abstract boolean removeResource(String pool, String resourceId);
+ public abstract boolean unregisterComponent(String pool, String componentId);
protected void ensureActive() {
if (isClosed()) {
diff --git a/solr/core/src/java/org/apache/solr/managed/ResourceManagerPlugin.java b/solr/core/src/java/org/apache/solr/managed/ResourceManagerPlugin.java
index f531c46..01f8363 100644
--- a/solr/core/src/java/org/apache/solr/managed/ResourceManagerPlugin.java
+++ b/solr/core/src/java/org/apache/solr/managed/ResourceManagerPlugin.java
@@ -30,12 +30,12 @@ public interface ResourceManagerPlugin {
void init(Map<String, Object> params);
/**
- * Name of monitored parameters that {@link ManagedResource}-s managed by this plugin
+ * Name of monitored parameters that {@link ManagedComponent}-s managed by this plugin
* are expected to support.
*/
Collection<String> getMonitoredParams();
/**
- * Name of controlled parameters that {@link ManagedResource}-s managed by this plugin
+ * Name of controlled parameters that {@link ManagedComponent}-s managed by this plugin
* are expected to support.
*/
Collection<String> getControlledParams();
diff --git a/solr/core/src/java/org/apache/solr/managed/ResourceManagerPool.java b/solr/core/src/java/org/apache/solr/managed/ResourceManagerPool.java
index a8a7666..3a3bd78 100644
--- a/solr/core/src/java/org/apache/solr/managed/ResourceManagerPool.java
+++ b/solr/core/src/java/org/apache/solr/managed/ResourceManagerPool.java
@@ -2,31 +2,26 @@ package org.apache.solr.managed;
import java.io.Closeable;
import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
/**
*
*/
public interface ResourceManagerPool extends Runnable, Closeable {
- public class Context extends ConcurrentHashMap<String, Object> {
-
- }
-
/** Unique pool name. */
String getName();
/** Pool type. */
String getType();
- /** Add resource to this pool. */
- void addResource(ManagedResource managedResource);
+ /** Add component to this pool. */
+ void registerComponent(ManagedComponent managedComponent);
- /** Remove named resource from this pool. */
- boolean removeResource(String name);
+ /** Remove named component from this pool. */
+ boolean unregisterComponent(String componentId);
- /** Get resources managed by this pool. */
- Map<String, ManagedResource> getResources();
+ /** Get components managed by this pool. */
+ Map<String, ManagedComponent> getComponents();
/**
* Get the current monitored values from all resources. Result is a map with resource names as keys,
@@ -35,7 +30,7 @@ public interface ResourceManagerPool extends Runnable, Closeable {
Map<String, Map<String, Object>> getCurrentValues() throws InterruptedException;
/**
- * This returns cumulative monitored values of all resources.
+ * This returns cumulative monitored values of all components.
* <p>NOTE: you must call {@link #getCurrentValues()} first!</p>
*/
Map<String, Number> getTotalValues() throws InterruptedException;
@@ -52,14 +47,7 @@ public interface ResourceManagerPool extends Runnable, Closeable {
void setPoolLimits(Map<String, Object> poolLimits);
/**
- * Pool context used for managing pool state.
- */
- Context getPoolContext();
-
- /**
- * Resource context used for managing resource state. This context is always present for
- * a resource registered in this pool, and it is unique to this pool.
- * @param name resource name
+ * Pool context used for managing additional pool state.
*/
- Context getResourceContext(String name);
+ ResourceContext getPoolContext();
}
diff --git a/solr/core/src/java/org/apache/solr/managed/plugins/CacheManagerPlugin.java b/solr/core/src/java/org/apache/solr/managed/plugins/CacheManagerPlugin.java
index f522ad3..67a5bf3 100644
--- a/solr/core/src/java/org/apache/solr/managed/plugins/CacheManagerPlugin.java
+++ b/solr/core/src/java/org/apache/solr/managed/plugins/CacheManagerPlugin.java
@@ -1,3 +1,19 @@
+/*
+ * 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.managed.plugins;
import java.lang.invoke.MethodHandles;
@@ -105,7 +121,7 @@ public class CacheManagerPlugin extends AbstractResourceManagerPlugin {
float changeRatio = poolLimitValue / totalValue.floatValue();
// modify current limits by the changeRatio
- pool.getResources().forEach((name, resource) -> {
+ pool.getComponents().forEach((name, resource) -> {
Map<String, Object> resourceLimits = resource.getResourceLimits();
Object limit = resourceLimits.get(poolLimitName);
// XXX we could attempt here to control eg. ramBytesUsed by adjusting maxSize limit
@@ -122,7 +138,7 @@ public class CacheManagerPlugin extends AbstractResourceManagerPlugin {
resource.setResourceLimit(poolLimitName, newLimit);
} catch (Exception e) {
log.warn("Failed to set managed limit " + poolLimitName +
- " from " + currentResourceLimit + " to " + newLimit + " on " + resource.getResourceId(), e);
+ " from " + currentResourceLimit + " to " + newLimit + " on " + resource.getManagedComponentId(), e);
}
});
});
diff --git a/solr/core/src/java/org/apache/solr/search/FastLRUCache.java b/solr/core/src/java/org/apache/solr/search/FastLRUCache.java
index 0ad4a9b..3f40135 100644
--- a/solr/core/src/java/org/apache/solr/search/FastLRUCache.java
+++ b/solr/core/src/java/org/apache/solr/search/FastLRUCache.java
@@ -20,7 +20,7 @@ import com.codahale.metrics.MetricRegistry;
import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.RamUsageEstimator;
import org.apache.solr.common.SolrException;
-import org.apache.solr.managed.ResourceId;
+import org.apache.solr.managed.ManagedComponentId;
import org.apache.solr.managed.plugins.CacheManagerPlugin;
import org.apache.solr.metrics.MetricsMap;
import org.apache.solr.metrics.SolrMetricManager;
@@ -82,7 +82,7 @@ public class FastLRUCache<K, V> extends SolrCacheBase implements SolrCache<K,V>,
private MetricsMap cacheMap;
private Set<String> metricNames = ConcurrentHashMap.newKeySet();
private MetricRegistry registry;
- private ResourceId resourceId;
+ private ManagedComponentId managedComponentId;
@Override
public Object init(Map args, Object persistence, CacheRegenerator regenerator) {
@@ -310,7 +310,7 @@ public class FastLRUCache<K, V> extends SolrCacheBase implements SolrCache<K,V>,
}
});
manager.registerGauge(this, registryName, cacheMap, tag, true, scope, getCategory().toString());
- resourceId = new ResourceId(tag, registryName, getCategory().toString(), scope);
+ managedComponentId = new ManagedComponentId(tag, registryName, getCategory().toString(), scope);
}
@@ -354,8 +354,8 @@ public class FastLRUCache<K, V> extends SolrCacheBase implements SolrCache<K,V>,
}
@Override
- public ResourceId getResourceId() {
- return resourceId;
+ public ManagedComponentId getManagedComponentId() {
+ return managedComponentId;
}
@Override
diff --git a/solr/core/src/java/org/apache/solr/search/LFUCache.java b/solr/core/src/java/org/apache/solr/search/LFUCache.java
index 5d82a2d..a4dd8ff 100644
--- a/solr/core/src/java/org/apache/solr/search/LFUCache.java
+++ b/solr/core/src/java/org/apache/solr/search/LFUCache.java
@@ -31,7 +31,7 @@ import com.codahale.metrics.MetricRegistry;
import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.RamUsageEstimator;
import org.apache.solr.common.SolrException;
-import org.apache.solr.managed.ResourceId;
+import org.apache.solr.managed.ManagedComponentId;
import org.apache.solr.managed.plugins.CacheManagerPlugin;
import org.apache.solr.metrics.MetricsMap;
import org.apache.solr.metrics.SolrMetricManager;
@@ -83,7 +83,7 @@ public class LFUCache<K, V> implements SolrCache<K, V>, Accountable {
private MetricsMap cacheMap;
private Set<String> metricNames = ConcurrentHashMap.newKeySet();
private MetricRegistry registry;
- private ResourceId resourceId;
+ private ManagedComponentId managedComponentId;
private int maxSize;
private int minSize;
@@ -318,7 +318,7 @@ public class LFUCache<K, V> implements SolrCache<K, V>, Accountable {
}
});
manager.registerGauge(this, registryName, cacheMap, tag, true, scope, getCategory().toString());
- resourceId = new ResourceId(tag, registryName, getCategory().toString(), scope);
+ managedComponentId = new ManagedComponentId(tag, registryName, getCategory().toString(), scope);
}
// for unit tests only
@@ -353,8 +353,8 @@ public class LFUCache<K, V> implements SolrCache<K, V>, Accountable {
}
@Override
- public ResourceId getResourceId() {
- return resourceId;
+ public ManagedComponentId getManagedComponentId() {
+ return managedComponentId;
}
@Override
diff --git a/solr/core/src/java/org/apache/solr/search/LRUCache.java b/solr/core/src/java/org/apache/solr/search/LRUCache.java
index 3ab0d60..c62d4fd 100644
--- a/solr/core/src/java/org/apache/solr/search/LRUCache.java
+++ b/solr/core/src/java/org/apache/solr/search/LRUCache.java
@@ -33,7 +33,7 @@ import org.apache.lucene.util.Accountable;
import org.apache.lucene.util.Accountables;
import org.apache.lucene.util.RamUsageEstimator;
import org.apache.solr.common.SolrException;
-import org.apache.solr.managed.ResourceId;
+import org.apache.solr.managed.ManagedComponentId;
import org.apache.solr.managed.plugins.CacheManagerPlugin;
import org.apache.solr.metrics.MetricsMap;
import org.apache.solr.metrics.SolrMetricManager;
@@ -81,7 +81,7 @@ public class LRUCache<K,V> extends SolrCacheBase implements SolrCache<K,V>, Acco
private MetricRegistry registry;
private int maxSize;
private int initialSize;
- private ResourceId resourceId;
+ private ManagedComponentId managedComponentId;
private long maxRamBytes = Long.MAX_VALUE;
// The synchronization used for the map will be used to update this,
@@ -340,7 +340,7 @@ public class LRUCache<K,V> extends SolrCacheBase implements SolrCache<K,V>, Acco
res.put("cumulative_evictionsRamUsage", stats.evictionsRamUsage.longValue());
});
manager.registerGauge(this, registryName, cacheMap, tag, true, scope, getCategory().toString());
- resourceId = new ResourceId(tag, registryName, getCategory().toString(), scope);
+ managedComponentId = new ManagedComponentId(tag, registryName, getCategory().toString(), scope);
}
// for unit tests only
@@ -386,8 +386,8 @@ public class LRUCache<K,V> extends SolrCacheBase implements SolrCache<K,V>, Acco
}
@Override
- public ResourceId getResourceId() {
- return resourceId;
+ public ManagedComponentId getManagedComponentId() {
+ return managedComponentId;
}
@Override
diff --git a/solr/core/src/java/org/apache/solr/search/SolrCache.java b/solr/core/src/java/org/apache/solr/search/SolrCache.java
index e2c6440..7814384 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrCache.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrCache.java
@@ -17,7 +17,7 @@
package org.apache.solr.search;
import org.apache.solr.core.SolrInfoBean;
-import org.apache.solr.managed.ManagedResource;
+import org.apache.solr.managed.ManagedComponent;
import org.apache.solr.metrics.SolrMetricProducer;
import java.util.Map;
@@ -26,7 +26,7 @@ import java.util.Map;
/**
* Primary API for dealing with Solr's internal caches.
*/
-public interface SolrCache<K,V> extends SolrInfoBean, SolrMetricProducer, ManagedResource {
+public interface SolrCache<K,V> extends SolrInfoBean, SolrMetricProducer, ManagedComponent {
/** Current size of the cache. */
String SIZE_PARAM = "size";
diff --git a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
index 561136e..b1c4b12 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
@@ -431,9 +431,9 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
for (SolrCache cache : cacheList) {
cache.initializeMetrics(metricManager, registryName, core.getMetricTag(), SolrMetricManager.mkName(cache.name(), STATISTICS_KEY));
try {
- resourceManager.addResource(DefaultResourceManager.NODE_SEARCHER_CACHE_POOL, cache);
+ resourceManager.registerComponent(DefaultResourceManager.NODE_SEARCHER_CACHE_POOL, cache);
} catch (Exception e) {
- log.warn("Exception adding cache '" + cache.getResourceId() + "' to the resource manager pool", e);
+ log.warn("Exception adding cache '" + cache.getManagedComponentId() + "' to the resource manager pool", e);
}
}
initializeMetrics(metricManager, registryName, core.getMetricTag(), STATISTICS_KEY);
@@ -479,7 +479,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
}
for (SolrCache cache : cacheList) {
- core.getCoreContainer().getResourceManager().removeResource(DefaultResourceManager.NODE_SEARCHER_CACHE_POOL, cache.getResourceId().toString());
+ core.getCoreContainer().getResourceManager().unregisterComponent(DefaultResourceManager.NODE_SEARCHER_CACHE_POOL, cache.getManagedComponentId().toString());
cache.close();
}