Where should "cluster.routing.allocation.same_shard.host" be set?

That makes sense but which node roles (master vs. data) is this setting actually relevant?

Assuming you had:
-10 data nodes (not eligible for the master role)
-3 master nodes (not eligible for the data role)

Would same_shard.host be required on the data nodes? master nodes? both?

I've yet to find the time to dig into the ES source to understand shard allocations in detail.

  1. Do the masters read the state of the cluster and make all shard allocation decisions internally?
    -In this scenario, same_shard.host seems like it would be only relevant on the master where the decisions are being made
    or
  2. Do the masters ask the individual data nodes to make the allocation decisions?
    -In this scenario, the same_shard.host could be relevant on the data nodes or master nodes (depending on implementation)

My assumption would be #1 - but I didn't build ES so I need to ask.

Doing a quick google search for this setting suggests the ES file below is where this setting is consumed. Perhaps a more direct question would be - Does the master or data role use this class/code?

/src/main/java/org/elasticsearch/cluster/routing/allocation/decider/SameShardAllocationDecider.java