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

Provide a clean API for cluster-level event processing

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: master (9.0)
    • Component/s: AutoScaling
    • Labels:

      Description

      This is a companion issue to SOLR-14613 and it aims at providing a clean, strongly typed API for the functionality formerly known as "triggers" - that is, a component for generating cluster-level events corresponding to changes in the cluster state, and a pluggable API for processing these events.

      The 8x triggers have been removed so this functionality is currently missing in 9.0. However, this functionality is crucial for implementing the automatic collection repair and re-balancing as the cluster state changes (nodes going down / up, becoming overloaded / unused / decommissioned, etc).

      For this reason we need this API and a default implementation of triggers that at least can perform automatic collection repair (maintaining the desired replication factor in presence of live node changes).

      As before, the actual changes to the collections will be executed using existing CollectionAdmin API, which in turn may use the placement plugins from SOLR-14613.

      Division of responsibility

      • built-in Solr components (non-pluggable):
        • cluster state monitoring and event generation,
        • simple scheduler to periodically generate scheduled events
      • plugins:
        • automatic collection repair on nodeLost events (provided by default)
        • re-balancing of replicas (periodic or on nodeAdded events)
        • reporting (eg. requesting additional node provisioning)
        • scheduled maintenance (eg. removing inactive shards after split)

      Other considerations

      These plugins (unlike the placement plugins) need to execute on one designated node in the cluster. Currently the easiest way to implement this is to run them on the Overseer leader node.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                ab Andrzej Bialecki
                Reporter:
                ab Andrzej Bialecki
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 22h
                  22h