Its been sometime i have been playing with memory settings.
My ultimate aim is simple - Use as much of main memory. At least move the
index alone (without _source) to main memory if enough space is not present.
My experiments goes as follows.
I went tru this page -
I found that there is a memory store , so i tried starting with following
settings in elasticsearch.yml
store.type : memory
Result - With the above setting nothing happened to an existing
index.More worse , nothing happened to new index created after setting the
*I made the default gateway as none with the settings specified in
*Result *- Here main memory was fully used but then on restart , i lost the
enitre data. And its clear that when main memory runs out something bad is
going to happen.
Then i found a silver bullet , it was this setting -
store.fs.memory.enabled : true
Result With this settings and the settings mentioned in Experiment 1, on
creation of new node , main memory is heavily used and i am able to
maintain data between restarts.
*One node is having default settings and am opening a new node. here first
node is a low end machine and cant space any RAM. I was thinking of
applying search query on the new node and inserts on the old node. As
node-2 is highly using main memory , search queries should be executed
quite fast. This was my plan.
So node-1 have default settings and node-2 have settings specified in
Result I started node-2 with the same cluster name as node-1 but instead
of taking the memory settings from its own config file , node-2 picked
store and cache settings from node-1.
Finally coming to the doubt sections
- What does buffer and cache settings signify in the configuration
mentioned in Experiment-1 ?
- What is the difference between small and large cache or buffer
settings ? Is it same as minimum and maximum allotted memory ?
- What exactly happens when i enable this setting -
. *Also this setting being important in not mentioned in
- In a cluster is it possible for a node to have a different memory
settings that the other node. If the machines in the cluster are not alike
, it would be hard to fully use the capacity of high end machines then.
- Is there any other memory settings that i missed out which can help me
better use main memory and improve search query performance ?