[
https://issues.apache.org/jira/browse/SOLR-13383?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16813518#comment-16813518
]
Richard commented on SOLR-13383:
--------------------------------
Hi [~antojohn]
Sorry I'm having a bit of difficulty understanding, but I *think* I know what
you're after.
Theory:
You want to have as many replicas as there are nodes? For example, you
originally started with 3 nodes, and your shard had 3 replicas, but, when you
added 2 more nodes, you still had 3 replicas, and not 5, but you want 5?
Solution:
I think the replication factor you're setting when creating the collection
could be the issue.
{panel:title=SolrCloud Autoscaling Automatically Adding Replicas}
Solr provides a way to automatically add replicas for a collection when the
number of active replicas drops below the replication factor specified at the
time of the creation of the collection.
{panel}
This goes back to you adding the {{&autoAddReplicas=true}} to your collection
creation, which should work if you re-enable that _(sorry for the confusion, I
have better understanding of your problem now)_.
But if your replication factor is set to 3, and you have 3 healthy replicas,
and you add 2 more nodes into your cluster. Solr will see this as no actions
needed.
It also looks like that you can not add {{ "preferredOperation":
"ADDREPLICA"}} to your triggers. I've had a look at the source code:
[v7.4
NodeAddedTrigger|https://github.com/apache/lucene-solr/blob/branch_7_4/solr/core/src/java/org/apache/solr/cloud/autoscaling/NodeAddedTrigger.java]
[v7.5
NodeAddedTrigger|https://github.com/apache/lucene-solr/blob/branch_7_5/solr/core/src/java/org/apache/solr/cloud/autoscaling/NodeAddedTrigger.java]
The main difference to pay attention to is the following _(around line 39)_
{code}
- v7.4 , + v7.5
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+ import static org.apache.solr.common.params.AutoScalingParams.PREFERRED_OP;
{code}
So in v7.5 they introduce this variable {{PREFERRED_OP}} which allows you to
implement {{ADDREPLICA}} which you tried to do previously.
Because of this I don't think it's necessarily a bug of v7.4 more just a
feature that is present in v7.5+
> auto-scaling not working in solr7.4 - autoaddreplica
> ----------------------------------------------------
>
> Key: SOLR-13383
> URL: https://issues.apache.org/jira/browse/SOLR-13383
> Project: Solr
> Issue Type: Bug
> Security Level: Public(Default Security Level. Issues are Public)
> Components: config-api
> Affects Versions: 7.4
> Environment: Production
> Reporter: AntonyJohnson
> Priority: Blocker
> Labels: performance
> Fix For: 7.4.1
>
> Attachments: 3collections.PNG
>
>
> We're able to create new server via auto-scaling for our solr cluster 7.4
> version. But the newly created server is not adding in our solr cluster
> automatically. Is there any settings or configurations we need to add in
> order to add the replica automatically in cluster for any collections.
> *commands used:*
> {code:java}
> curl
> "http://localhost:8983/solr/admin/collections?action=CREATE&name=my_collection_3&numShards=1&replicationFactor=3&autoAddReplicas=true"
> {code}
> Currently 3 nodes are in our cluster and i'm trying to add 4th nod but its
> not getting added in solr 7.4 version. The same scenario is working fine in
> solr 7.5 version.
> *scaling policy used:*
> {code:java}
> 1)
> curl http://localhost:8983/solr/admin/autoscaling -H
> 'Content-type:application/json' -d '{
> "set-cluster-policy" : [{
> "replica" : "1",
> "shard" : "#EACH",
> "node" : "#ANY",
> }]
> }'
> 2)###Node Added Trigger
> curl http://localhost:8983/solr/admin/autoscaling -H
> 'Content-type:application/json' -d '{
> "set-trigger": {
> "name" : "node_added_trigger",
> "event" : "nodeAdded",
> "waitFor" : "5s",
> "preferredOperation": "ADDREPLICA",
> "enabled" : true,
> "actions" : [
> {
> "name" : "compute_plan",
> "class": "solr.ComputePlanAction"
> },
> {
> "name" : "execute_plan",
> "class": "solr.ExecutePlanAction"
> }
> ]
> }
> }'
> 3)###Node Lost Trigger
> curl http://localhost:8983/solr/admin/autoscaling -H
> 'Content-type:application/json' -d '{
> "set-trigger": {
> "name" : "node_lost_trigger",
> "event" : "nodeLost",
> "waitFor" : "5s",
> "preferredOperation": "DELETENODE",
> "enabled" : true,
> "actions" : [
> {
> "name" : "compute_plan",
> "class": "solr.ComputePlanAction"
> },
> {
> "name" : "execute_plan",
> "class": "solr.ExecutePlanAction"
> }
> ]
> }
> }'
> {code}
> Note the same policy(2,3) not working in 7.4
> *Errors:*
> {code:java}
> [Mon Apr 08 11:52:00 UTC root@hawkeye-common ~]# curl
> http://localhost:8983/solr/admin/autoscaling -H
> 'Content-type:application/json' -d '{
> > "set-trigger": {
> > "name" : "node_added_trigger",
> > "event" : "nodeAdded",
> > "waitFor" : "5s",
> > "preferredOperation": "ADDREPLICA",
> > "enabled" : true,
> > "actions" : [
> > {
> > "name" : "compute_plan",
> > "class": "solr.ComputePlanAction"
> > },
> > {
> > "name" : "execute_plan",
> > "class": "solr.ExecutePlanAction"
> > }
> > ]
> > }
> > }'
> {
> "responseHeader":{
> "status":400,
> "QTime":5},
> "result":"failure",
> "WARNING":"This response format is experimental. It is likely to change in
> the future.",
> "error":{
> "metadata":[
> "error-class","org.apache.solr.api.ApiBag$ExceptionWithErrObject",
> "root-error-class","org.apache.solr.api.ApiBag$ExceptionWithErrObject"],
> "details":[{
> "set-trigger":{
> "name":"node_added_trigger",
> "event":"nodeAdded",
> "waitFor":"5s",
> "preferredOperation":"ADDREPLICA",
> "enabled":true,
> "actions":[{
> "name":"compute_plan",
> "class":"solr.ComputePlanAction"},
> {
> "name":"execute_plan",
> "class":"solr.ExecutePlanAction"}]},
> "errorMessages":["Error validating trigger config node_added_trigger:
> TriggerValidationException{name=node_added_trigger,
> details='{preferredOperation=unknown property}'}"]}],
> "msg":"Error in command payload",
> "code":400}}
> [Mon Apr 08 11:52:09 UTC root@hawkeye-common ~]#
> [Mon Apr 08 11:52:16 UTC root@hawkeye-common ~]# curl
> http://localhost:8983/solr/admin/autoscaling -H
> 'Content-type:application/json' -d '{
> > "set-trigger": {
> > "name" : "node_lost_trigger",
> > "event" : "nodeLost",
> > "waitFor" : "5s",
> > "preferredOperation": "DELETENODE",
> > "enabled" : true,
> > "actions" : [
> > {
> > "name" : "compute_plan",
> > "class": "solr.ComputePlanAction"
> > },
> > {
> > "name" : "execute_plan",
> > "class": "solr.ExecutePlanAction"
> > }
> > ]
> > }
> > }'
> {
> "responseHeader":{
> "status":400,
> "QTime":1},
> "result":"failure",
> "WARNING":"This response format is experimental. It is likely to change in
> the future.",
> "error":{
> "metadata":[
> "error-class","org.apache.solr.api.ApiBag$ExceptionWithErrObject",
> "root-error-class","org.apache.solr.api.ApiBag$ExceptionWithErrObject"],
> "details":[{
> "set-trigger":{
> "name":"node_lost_trigger",
> "event":"nodeLost",
> "waitFor":"5s",
> "preferredOperation":"DELETENODE",
> "enabled":true,
> "actions":[{
> "name":"compute_plan",
> "class":"solr.ComputePlanAction"},
> {
> "name":"execute_plan",
> "class":"solr.ExecutePlanAction"}]},
> "errorMessages":["Error validating trigger config node_lost_trigger:
> TriggerValidationException{name=node_lost_trigger,
> details='{preferredOperation=unknown property}'}"]}],
> "msg":"Error in command payload",
> "code":400}}
> {code}
> We're able to create new server via auto-scaling for our solr cluster 7.4
> version. But the newly created server is not adding in our solr cluster
> automatically. Is there any settings or configurations we need to add in
> order to add the replica automatically in cluster for any collections.
> commands used: curl
> "http://localhost:8983/solr/admin/collections?action=CREATE&name=my_collection_3&numShards=1&replicationFactor=3&autoAddReplicas=true"
> Currently 3 nodes are in our cluster and i'm trying to add 4th nod but its
> not getting added in solr 7.4 version. The same scenario is working fine in
> solr 7.5 version.
> scaling policy used:
> 1)
> curl http://localhost:8983/solr/admin/autoscaling -H
> 'Content-type:application/json' -d '{
> "set-cluster-policy" : [{
> "replica" : "1",
> "shard" : "#EACH",
> "node" : "#ANY",
> }]
> }'
> 2)###Node Added Trigger
> curl http://localhost:8983/solr/admin/autoscaling -H
> 'Content-type:application/json' -d '{
> "set-trigger": {
> "name" : "node_added_trigger",
> "event" : "nodeAdded",
> "waitFor" : "5s",
> "preferredOperation": "ADDREPLICA",
> "enabled" : true,
> "actions" : [
> {
> "name" : "compute_plan",
> "class": "solr.ComputePlanAction"
> },
> {
> "name" : "execute_plan",
> "class": "solr.ExecutePlanAction"
> }
> ]
> }
> }'
> 3)###Node Lost Trigger
> curl http://localhost:8983/solr/admin/autoscaling -H
> 'Content-type:application/json' -d '{
> "set-trigger": {
> "name" : "node_lost_trigger",
> "event" : "nodeLost",
> "waitFor" : "5s",
> "preferredOperation": "DELETENODE",
> "enabled" : true,
> "actions" : [
> {
> "name" : "compute_plan",
> "class": "solr.ComputePlanAction"
> },
> {
> "name" : "execute_plan",
> "class": "solr.ExecutePlanAction"
> }
> ]
> }
> }'
> Note the same policy(2,3) not working in 7.4
> Errors:
> {code:java}
> [Mon Apr 08 11:52:00 UTC root@hawkeye-common ~]# curl
> http://localhost:8983/solr/admin/autoscaling -H
> 'Content-type:application/json' -d '{
> > "set-trigger": {
> > "name" : "node_added_trigger",
> > "event" : "nodeAdded",
> > "waitFor" : "5s",
> > "preferredOperation": "ADDREPLICA",
> > "enabled" : true,
> > "actions" : [
> > {
> > "name" : "compute_plan",
> > "class": "solr.ComputePlanAction"
> > },
> > {
> > "name" : "execute_plan",
> > "class": "solr.ExecutePlanAction"
> > }
> > ]
> > }
> > }'
> {
> "responseHeader":{
> "status":400,
> "QTime":5},
> "result":"failure",
> "WARNING":"This response format is experimental. It is likely to change in
> the future.",
> "error":{
> "metadata":[
> "error-class","org.apache.solr.api.ApiBag$ExceptionWithErrObject",
> "root-error-class","org.apache.solr.api.ApiBag$ExceptionWithErrObject"],
> "details":[{
> "set-trigger":{
> "name":"node_added_trigger",
> "event":"nodeAdded",
> "waitFor":"5s",
> "preferredOperation":"ADDREPLICA",
> "enabled":true,
> "actions":[{
> "name":"compute_plan",
> "class":"solr.ComputePlanAction"},
> {
> "name":"execute_plan",
> "class":"solr.ExecutePlanAction"}]},
> "errorMessages":["Error validating trigger config node_added_trigger:
> TriggerValidationException{name=node_added_trigger,
> details='{preferredOperation=unknown property}'}"]}],
> "msg":"Error in command payload",
> "code":400}}
> [Mon Apr 08 11:52:09 UTC root@hawkeye-common ~]#
> [Mon Apr 08 11:52:16 UTC root@hawkeye-common ~]# curl
> http://localhost:8983/solr/admin/autoscaling -H
> 'Content-type:application/json' -d '{
> > "set-trigger": {
> > "name" : "node_lost_trigger",
> > "event" : "nodeLost",
> > "waitFor" : "5s",
> > "preferredOperation": "DELETENODE",
> > "enabled" : true,
> > "actions" : [
> > {
> > "name" : "compute_plan",
> > "class": "solr.ComputePlanAction"
> > },
> > {
> > "name" : "execute_plan",
> > "class": "solr.ExecutePlanAction"
> > }
> > ]
> > }
> > }'
> {
> "responseHeader":{
> "status":400,
> "QTime":1},
> "result":"failure",
> "WARNING":"This response format is experimental. It is likely to change in
> the future.",
> "error":{
> "metadata":[
> "error-class","org.apache.solr.api.ApiBag$ExceptionWithErrObject",
> "root-error-class","org.apache.solr.api.ApiBag$ExceptionWithErrObject"],
> "details":[{
> "set-trigger":{
> "name":"node_lost_trigger",
> "event":"nodeLost",
> "waitFor":"5s",
> "preferredOperation":"DELETENODE",
> "enabled":true,
> "actions":[{
> "name":"compute_plan",
> "class":"solr.ComputePlanAction"},
> {
> "name":"execute_plan",
> "class":"solr.ExecutePlanAction"}]},
> "errorMessages":["Error validating trigger config node_lost_trigger:
> TriggerValidationException{name=node_lost_trigger,
> details='{preferredOperation=unknown property}'}"]}],
> "msg":"Error in command payload",
> "code":400}}
> {code}
> if any new sever added into that cluster the data(collection) must be added
> as a replica in that cluster.[AddReplica Automatically added in version 7.5]
> https://i.stack.imgur.com/DgEbL.png
> Kindly help me to resolve this case.
> I need a exact trigger which will perform a AutoAddReplica Action
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]