Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-13578

Implement a generic Resource Manager for monitoring and controlling limited resources

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      Many common resources such as CPUs, threads, file descriptors, heap, etc. are shared between multiple SolrCore-s within a CoreContainer.

      Most of these resources can already be monitored for usage using metrics. However, in most cases Solr doesn't have any control mechanism to actually do something about excessive use (or extreme under-utilization) of a resource by any particular SolrCore or CoreContainer. Furthermore, even when a control mechanism exists it's usually available only as a static configuration parameter (eg. max cache size) and changing it requires at least a core reload, or restarting the JVM.

      This issue is especially important for multi-tenantĀ applications where the admin cannot assume voluntary co-operation of users and needs more fine-grained tools to prevent DOS attacks, either accidental or purposeful.

      This is an umbrella issue that proposes the following:

      • adding a generic ResourceManager component to Solr, which would run at a CoreContainer level and would be able to monitor and enforce both global limits and a "fair" division of resources among competing SolrCore-s.
      • extending key existing components so that their resource consumption aspects can be dynamically controlled.
      • adding a number of management plugins that implement specificĀ strategies for managing eg. the cache sizes according to the specified "fairness" and global limits.
      • the API should allow for implementation of this control loop both in Solr and as an outside mechanism.

      Attachments

        Issue Links

          Activity

            People

              ab Andrzej Bialecki
              ab Andrzej Bialecki
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated: