| 1234567891011121314151617181920212223242526272829303132 | [[modules-node]]== Node*elasticsearch* allows to configure a node to either be allowed to storedata locally or not. Storing data locally basically means that shards ofdifferent indices are allowed to be allocated on that node. By default,each node is considered to be a data node, and it can be turned off bysetting `node.data` to `false`.This is a powerful setting allowing to simply create smart loadbalancers that take part in some of different API processing. Lets takean example:We can start a whole cluster of data nodes which do not even start anHTTP transport by setting `http.enabled` to `false`. Such nodes willcommunicate with one another using the<<modules-transport,transport>> module. In frontof the cluster we can start one or more "non data" nodes which willstart with HTTP enabled. All HTTP communication will be performedthrough these "non data" nodes.The benefit of using that is first the ability to create smart loadbalancers. These "non data" nodes are still part of the cluster, andthey redirect operations exactly to the node that holds the relevantdata. The other benefit is the fact that for scatter / gather basedoperations (such as search), these nodes will take part of theprocessing since they will start the scatter process, and perform theactual gather processing.This relieves the data nodes to do the heavy duty of indexing andsearching, without needing to process HTTP requests (parsing), overloadthe network, or perform the gather processing.
 |