Hi Ankit Jain.
You wish for two ES nodes running on one machine to safely use one copy of
the data with no replicas of that data, and to offer high availability.
The most likely failure is machine hardware: disk, power, and network being
the most likely. With 0 replicas, the loss of the machine means you have no
availability.
If you have two instances of ES charing the same non-replicated data, then
you are basically saying that if one instance of ES crashes, then the
second instance of ES that is the same code as the crashed instance and has
the exact same bugs as the crashed instance will somehow not crash.
I can tell you that replicas seem very cheap, and are the only true way to
offer high availability. It's recommended that you set up a cluster of at
least 3 nodes and that you configure at least two nodes to elect a master.
My own experience: On a set of 3 relatively small Solaris machines for
testing this case, I created in initial load (index only) of 25 million
documents into one of the nodes. The index was created with 5 shards and 0
replicas during the bulk load.
I then changed the replicas to 2 (for a total of 3 copies of each node),
and the 5 shards were copied automatically to the other nodes in a matter
of a few minutes.
I then bulk-loaded my set of 3 million updates (mix of index + delete), and
all went smoothly.
A few nights ago, there was a failure of the server room's cooling and one
of the machines overheated and powered off. The cluster now only had 2
nodes, but stayed green and available due to those two nodes. We brought up
that 3rd node, and in a minute or so there were now "three in the green".
No data loss, no service loss, and a very smooth and automatic cluster
recovery.
Brian
On Thursday, May 9, 2013 7:16:43 AM UTC-4, Ankit Jain wrote:
Hi All,
We are using Elasticsearch for indexing and storage.
ES supports to run multiple nodes on one machines, but it creates
different data locations by using the node ids.
For example:
Index location for Node1 :/home/user/es/data/nodes/0/indices
Index location for Node 2 : /home/user/es/data/nodes/1/indices
But, we want to run multiple nodes on one machine and all nodes will have
same data location: /home/user/es/indices instead of separating data
location by node ids.
Why we want to run multiple nodes that will point to same location?
If one node goes down , then other node will take its position.
*
*
*
*
Also, we want to achieve high availability without using replication
(replica = 0).
Please share some idea to achieve the above usecase.
Thank you very much in advance
Regards,
Ankit Jain
--
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.