"No value present" when set cluster policy for autoscaling in solr cloud mode

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

"No value present" when set cluster policy for autoscaling in solr cloud mode

Cao, Li
Hi!

I am trying to add a cluster policy to a freshly built 8.3.0 cluster (no collection added). I got this error when adding such a cluster policy

{ "set-cluster-policy":[{"cores":"<3","nodeset":{"sysprop.rex.node.type":"tlog"}}]}

Basically I want to limit the number of cores for certain machines with a special environmental variable value.

But I got this error response:

{
  "responseHeader":{
    "status":400,
    "QTime":144},
  "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-cluster-policy":[{
            "cores":"<3",
            "nodeset":{"sysprop.rex.node.type":"tlog"}}],
        "errorMessages":["No value present"]}],
    "msg":"Error in command payload",
    "code":400}}

However, this works:

{ "set-cluster-policy":[{"cores":"<3","node":"#ANY"}]}

I read the autoscaling policy documentations and cannot figure out why. Could someone help me on this?

Thanks!

Li
Reply | Threaded
Open this post in threaded view
|

Re: "No value present" when set cluster policy for autoscaling in solr cloud mode

Andrzej Białecki-2
Hi,

For some strange reason global tags (such as “cores”) don’t support the “nodeset” syntax. For “cores” the only supported attribute is “node”, and then you’re only allowed to use #ANY or a single specific node name (with optional “!" NOT operand), or a JSON array containing node names to indicate the IN operand.

The Ref Guide indeed is not very clear on that…


> On 17 Dec 2019, at 21:20, Cao, Li <[hidden email]> wrote:
>
> Hi!
>
> I am trying to add a cluster policy to a freshly built 8.3.0 cluster (no collection added). I got this error when adding such a cluster policy
>
> { "set-cluster-policy":[{"cores":"<3","nodeset":{"sysprop.rex.node.type":"tlog"}}]}
>
> Basically I want to limit the number of cores for certain machines with a special environmental variable value.
>
> But I got this error response:
>
> {
>  "responseHeader":{
>    "status":400,
>    "QTime":144},
>  "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-cluster-policy":[{
>            "cores":"<3",
>            "nodeset":{"sysprop.rex.node.type":"tlog"}}],
>        "errorMessages":["No value present"]}],
>    "msg":"Error in command payload",
>    "code":400}}
>
> However, this works:
>
> { "set-cluster-policy":[{"cores":"<3","node":"#ANY"}]}
>
> I read the autoscaling policy documentations and cannot figure out why. Could someone help me on this?
>
> Thanks!
>
> Li

Reply | Threaded
Open this post in threaded view
|

Re: [EXTERNAL] Re: "No value present" when set cluster policy for autoscaling in solr cloud mode

Cao, Li
Thank you, Andrzej! I am going to try IN operand as a work around.

On 12/19/19, 10:17 AM, "Andrzej Białecki" <[hidden email]> wrote:

    Hi,

    For some strange reason global tags (such as “cores”) don’t support the “nodeset” syntax. For “cores” the only supported attribute is “node”, and then you’re only allowed to use #ANY or a single specific node name (with optional “!" NOT operand), or a JSON array containing node names to indicate the IN operand.

    The Ref Guide indeed is not very clear on that…


    > On 17 Dec 2019, at 21:20, Cao, Li <[hidden email]> wrote:
    >
    > Hi!
    >
    > I am trying to add a cluster policy to a freshly built 8.3.0 cluster (no collection added). I got this error when adding such a cluster policy
    >
    > { "set-cluster-policy":[{"cores":"<3","nodeset":{"sysprop.rex.node.type":"tlog"}}]}
    >
    > Basically I want to limit the number of cores for certain machines with a special environmental variable value.
    >
    > But I got this error response:
    >
    > {
    >  "responseHeader":{
    >    "status":400,
    >    "QTime":144},
    >  "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-cluster-policy":[{
    >            "cores":"<3",
    >            "nodeset":{"sysprop.rex.node.type":"tlog"}}],
    >        "errorMessages":["No value present"]}],
    >    "msg":"Error in command payload",
    >    "code":400}}
    >
    > However, this works:
    >
    > { "set-cluster-policy":[{"cores":"<3","node":"#ANY"}]}
    >
    > I read the autoscaling policy documentations and cannot figure out why. Could someone help me on this?
    >
    > Thanks!
    >
    > Li