Tag and include/exclude filters


(seb-2) #1

Hi

I'm trying to use node.tag to force some indexes to be on a specific node.
Let's say, my cluster has 3 nodes with tag1 (master/data), tag2(data),
tag3(data).

I want to create an index that has to be only on tag3 node. I run that
command

curl -X POST http://localhost:9200/test -d '{
"index.number_of_replicas" : 0,
"index.routing.allocation.include.tag": "tag3",
"index.routing.allocation.exclude.tag": "tag1, tag2",
...
}

It works as excepted, the index is on tag3.

But if I change index replica setting like this:

curl -XPUT 'http://localhost:9200/test/_settings' -d '{
"index.number_of_replicas" : 1
}'

I thought, that the cluster status would be yellow, because the replica
won't find any nodes to accept it. But no, the replica is set on tag2.

Does it make sense?
Did I do something wrong?
Or did I find a bug?

Thanks a lot
Seb
http://v3.maptimize.com - http://onemilliontweetmap.com

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(David Pilato) #2

Hey Sébastien,

As a workaround, does the following works?
curl -X POST http://localhost:9200/test -d '{
"index.number_of_replicas" : 1,
"index.routing.allocation.include.tag": "tag3",
"index.routing.allocation.exclude.tag": "tag1, tag2"
}

It appears to me to be an issue though.

--
David Pilato | Technical Advocate | Elasticsearch.com
@dadoonet | @elasticsearchfr | @scrutmydocs

Le 17 sept. 2013 à 11:06, seb sgruhier@gmail.com a écrit :

Hi

I'm trying to use node.tag to force some indexes to be on a specific node.
Let's say, my cluster has 3 nodes with tag1 (master/data), tag2(data), tag3(data).

I want to create an index that has to be only on tag3 node. I run that command

curl -X POST http://localhost:9200/test -d '{
"index.number_of_replicas" : 0,
"index.routing.allocation.include.tag": "tag3",
"index.routing.allocation.exclude.tag": "tag1, tag2",
...
}

It works as excepted, the index is on tag3.

But if I change index replica setting like this:

curl -XPUT 'http://localhost:9200/test/_settings' -d '{
"index.number_of_replicas" : 1
}'

I thought, that the cluster status would be yellow, because the replica won't find any nodes to accept it. But no, the replica is set on tag2.

Does it make sense?
Did I do something wrong?
Or did I find a bug?

Thanks a lot
Seb
http://v3.maptimize.com - http://onemilliontweetmap.com

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(seb-2) #3

I reply to myself :slight_smile:
it works
it's not

"index.routing.allocation.include.tag": "tag3"

but

"settings.index.routing.allocation.include.tag": "tag3"

Next time, I'll do more test before posting to the ML!

On Tuesday, September 17, 2013 11:06:35 AM UTC+2, seb wrote:

Hi

I'm trying to use node.tag to force some indexes to be on a specific node.
Let's say, my cluster has 3 nodes with tag1 (master/data), tag2(data),
tag3(data).

I want to create an index that has to be only on tag3 node. I run that
command

curl -X POST http://localhost:9200/test -d '{
"index.number_of_replicas" : 0,
"index.routing.allocation.include.tag": "tag3",
"index.routing.allocation.exclude.tag": "tag1, tag2",
...
}

It works as excepted, the index is on tag3.

But if I change index replica setting like this:

curl -XPUT 'http://localhost:9200/test/_settings' -d '{
"index.number_of_replicas" : 1
}'

I thought, that the cluster status would be yellow, because the replica
won't find any nodes to accept it. But no, the replica is set on tag2.

Does it make sense?
Did I do something wrong?
Or did I find a bug?

Thanks a lot
Seb
http://v3.maptimize.com - http://onemilliontweetmap.com

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(David Pilato) #4

Ah right!

Thanks for posting it here as some other users can fall into this as well :wink:

--
David Pilato | Technical Advocate | Elasticsearch.com
@dadoonet | @elasticsearchfr | @scrutmydocs

Le 17 sept. 2013 à 11:47, seb sgruhier@gmail.com a écrit :

I reply to myself :slight_smile:
it works
it's not

"index.routing.allocation.include.tag": "tag3"

but

"settings.index.routing.allocation.include.tag": "tag3"

Next time, I'll do more test before posting to the ML!

On Tuesday, September 17, 2013 11:06:35 AM UTC+2, seb wrote:
Hi

I'm trying to use node.tag to force some indexes to be on a specific node.
Let's say, my cluster has 3 nodes with tag1 (master/data), tag2(data), tag3(data).

I want to create an index that has to be only on tag3 node. I run that command

curl -X POST http://localhost:9200/test -d '{
"index.number_of_replicas" : 0,
"index.routing.allocation.include.tag": "tag3",
"index.routing.allocation.exclude.tag": "tag1, tag2",
...
}

It works as excepted, the index is on tag3.

But if I change index replica setting like this:

curl -XPUT 'http://localhost:9200/test/_settings' -d '{
"index.number_of_replicas" : 1
}'

I thought, that the cluster status would be yellow, because the replica won't find any nodes to accept it. But no, the replica is set on tag2.

Does it make sense?
Did I do something wrong?
Or did I find a bug?

Thanks a lot
Seb
http://v3.maptimize.com - http://onemilliontweetmap.com

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(system) #5