Node Specialization

So I've been reading around in regards to specializing node functionality
(master vs data vs client) and haven't found concrete answers. I found one
nabble post where the topic starter had asked something similar to what I'm
wondering, but it wasn't fully answered (or I wasn't able to get enough
info out of the answers). So, what I'm wondering is if:

a) there's any benefit to specializing nodes into the following categories:

  1. Dedicated Master (node.master=true node.data=false)
  2. Dedicated Data (node.master=false, node.data=true, http.enabled=false)
  3. Dedicated Client(node.master=false, node.data=false,
    http.enabled=true)

The post I read mentioned that having a "load balancing node" or a
dedicated client wouldn't help much. Can anyone explain why? I guess I'm
wondering what functionality would such a node actually end up doing versus
what is sent to the data nodes to fulfill (I assume queries are completed
by the data nodes, but are filters done by them too or by the client)?

Also, it was mentioned that having dedicated masters would be helpful for
larger clusters (e.g., 200 data nodes) to minimize split-brain problems.
I'm assuming this still holds true? Would it still be helpful for smaller
clusters (~10 nodes) to have dedicated masters?

b) Recommended memory requirements for dedicated nodes. I can assume
dedicated data nodes will need a lot of both CPU and RAM (akin to regular,
default ES nodes). But what about a dedicated master? Would using the
default JVM settings be okay? Assuming having a dedicated client is even
useful, would it use a lot of CPU and RAM given a high number of requests?

Thanks!

--
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.