[
https://issues.apache.org/jira/browse/SOLR-13579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16892682#comment-16892682
]
Andrzej Bialecki commented on SOLR-13579:
------------------------------------------
bq. why is the "ResourceManagerPool" class different from the
"ResourceManagerPlugin" class?
The code in {{ResourceManagerPool}} is independent of the type of resource(s)
that a pool can manage. I decided to leave them separate for now - perhaps at
some point we could allow a single pool to manage several aspects of a
component, in which case a pool could have several plugins.
Also, there can be different pools of the same type, each used for a different
group of components that support the same management aspect. For example, for
searcher caches we may want to eventually create separate pools for
filterCache, queryResultCache and fieldValueCache. All of these pools would use
the same plugin implementation {{CacheManagerPlugin}} but configured with
different params and limits.
bq. What happens if a single ManagedResource is part of two different "pools"
with two different ResourceManagerPlugins that give conflicting/overlapping
instructions?
Currently this is not allowed ({{DefaultResourceManager.addResource:183}}). In
theory, I could imagine a component to belong to more than 1 pool of the same
type - eg. one being a global per-node pool for coarse-grained control and the
other being a local per-core pool for fine-grained optimization.
However, at this point my head explodes thinking about all possible bad
interactions, so the code expressly forbids it. :)
bq. does that imply that once SolrCache(s) are part of a "pool" they no longer
have their own max size(s)?
They still do - but it's used as the starting point for proportional
adjustments.
As I mentioned above, the exact details of how the adjustments are distributed
among all caches are still unclear - in the current patch they are applied
proportionally to each cache's maxSize / maxRamMB. It should be easy to add
more complex priorities or weights - I wanted to start with something simple to
illustrate the concept.
bq. how/where would someone specify a "preference" for ensuring that if a
"pool" is "full" that certain resources should be managed more agressively then
others
In the current API that would probably need to be defined somewhere between
{{SolrCache.getResourceLimits()}} and {{CacheManagerPlugin}}, ie. the cache
would report its "priority" as one of the limits and the plugin would know what
to do about it.
bq. Also, FYI: with this patch, we now have 2 "ManagedResource" classes in
solr/core that have absolutely nothing to do with each other...
Yeah, I'll rename this one to something else.
> Create resource management API
> ------------------------------
>
> Key: SOLR-13579
> URL: https://issues.apache.org/jira/browse/SOLR-13579
> Project: Solr
> Issue Type: New Feature
> Security Level: Public(Default Security Level. Issues are Public)
> Reporter: Andrzej Bialecki
> Assignee: Andrzej Bialecki
> Priority: Major
> Attachments: SOLR-13579.patch, SOLR-13579.patch, SOLR-13579.patch,
> SOLR-13579.patch, SOLR-13579.patch
>
>
> Resource management framework API supporting the goals outlined in SOLR-13578.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]