# Node.client(true) vs. node.data(false)

**URL:** https://discuss.elastic.co/t/node-client-true-vs-node-data-false/3107
**Category:** Elasticsearch
**Created:** [July 15, 2010, 7:50am UTC](https://discuss.elastic.co/t/node-client-true-vs-node-data-false/3107 "2010-07-15T07:50:23Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Lukas\_Vlcek1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lukas_vlcek1/32/819_2.png) [@Lukas\_Vlcek1](https://discuss.elastic.co/u/Lukas_Vlcek1)
#### Post date: [July 15, 2010, 7:50am UTC](https://discuss.elastic.co/t/node-client-true-vs-node-data-false/3107/1 "2010-07-15T07:50:23Z")

</div>

Hi,

Short:  
What is the difference between node.clinet(true) and node.data(false)?

Longer:  
Javadoc in NodeBuilder says:

client(boolean)  
Is the node going to be a client node which means it will hold no data  
(node.data is set to false) and other optimizations by  
different modules.

data(boolen)  
Is the node going to be allowed to allocate data (shards) to it or not. This  
setting map to the node.data setting. Note, when setting {@link  
#client(boolean)}, the node will not hold any data by default.

So it seems that clinet(true) does a little more ("other optimizations by  
different modules") then data(false)? What is the subtle difference? I  
assume that if I need a pure client (Java client that will send data for  
indexing and perform searching) then I need to set just clinet(true) and  
that's it. But still, can it be useful to set data(false) and client(false)  
as well in some situations?

Regards,  
Lukas

---

<div class="post-metadata">

### Author: ![kimchy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kimchy/32/44952_2.png) [@kimchy](https://discuss.elastic.co/u/kimchy)
#### Post date: [July 15, 2010, 1:54pm UTC](https://discuss.elastic.co/t/node-client-true-vs-node-data-false/3107/2 "2010-07-15T13:54:28Z")

</div>

Currently, the main additional setting is that a client node will not become  
master as well (there is an option to set it explicitly as well). The idea  
is that setting client to true will cause several other settings to be  
automatically set.

-shay.banon

On Thu, Jul 15, 2010 at 10:50 AM, Lukáš Vlček [lukas.vlcek@gmail.com](mailto:lukas.vlcek@gmail.com) wrote:

> Hi,
> 
> Short:  
> What is the difference between node.clinet(true) and node.data(false)?
> 
> Longer:  
> Javadoc in NodeBuilder says:
> 
> client(boolean)  
> Is the node going to be a client node which means it will hold no data  
> (node.data is set to false) and other optimizations by  
> different modules.
> 
> data(boolen)  
> Is the node going to be allowed to allocate data (shards) to it or not.  
> This setting map to the node.data setting. Note, when setting  
> {@link #client(boolean)}, the node will not hold any data by default.
> 
> So it seems that clinet(true) does a little more ("other optimizations by  
> different modules") then data(false)? What is the subtle difference? I  
> assume that if I need a pure client (Java client that will send data for  
> indexing and perform searching) then I need to set just clinet(true) and  
> that's it. But still, can it be useful to set data(false) and client(false)  
> as well in some situations?
> 
> Regards,  
> Lukas

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 6, 2017, 4:22am UTC](https://discuss.elastic.co/t/node-client-true-vs-node-data-false/3107/3 "2017-07-06T04:22:11Z")

</div>


