[ 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org