...
Discussion thread: here (<- link to https://mail-archives.apache.org/mod_mbox/lucene-dev/)
JIRA: here (<- link to https://issues.apache.org/jira/browse/SOLR-XXXX)
Jira | ||||||
---|---|---|---|---|---|---|
|
Released: <Solr Version>
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast). Confluence supports inline comments that can also be used.
...
The first goal is to support scaling up/down Solr Nodes and moving replicas after scale up/down to spread load evenly.
Public Interfaces
Solr Interfaces
Two new public interfaces are needed, one API addition, one API change and one ReplicaPlacementPlugin method.
API
Utilize new Node:
v1: (If we want a v1 API)
GET /solr/admin/collections?action=UTILIZENODE&node=node-name&sourceNodes=source-node-name-1,source-node-name-2
...
Replace Node: (A change to an existing option)
v1: (If we want a v1 API)
GET /solr/admin/collections?action=REPLACENODE&sourceNode=source-node&targetNode=target-node&targetNodes=target-node1,target-node2
...
Its also good for the Solr Operator to know the HPA, so that it can disable it during rolling restarts and other maintenance operations.
Proposed Changes
This feature will require changes to both Solr and the Solr Operator. Since the Solr Operator supports a range of Solr versions, this will not be available for Solr Operator users until they upgrade to a version of Solr that implements this SIP.
Solr Changes
The two main APIs that the Solr Operator would need to call to Solr to implement this functionality are:
...
In order to implement this logic, we would need new interfaces and methods in the placement package, as described above. Since we have 4 different built-in PlacementPlugins, we would need to implement this feature for those built in plugins.
Solr Operator Changes
The Solr Operator would need four changes:
...
Compatibility, Deprecation, and Migration Plan
- This feature will require changes to both Solr and the Solr Operator. Since the Solr Operator supports a range of Solr versions, this will not be available for Solr Operator users until they upgrade to a version of Solr that implements this SIP.
- Existing users of the Solr Operator will see these new features used only when they enable the "autoscaleReplicas" option.
- This option requires new Solr versions, so it cannot be enabled by default until that Solr version is the minimum supported version supported by the Operator.
- The Replace Node v2 command will have an API change, but v2 is still experimental, so there should be no concern there.
...