<div dir="ltr">Hi,<br><div class="gmail_extra"><div><br style="font-family:'arial black',sans-serif">Thank you so much for your response!</div><div>On one side I tend to use mnesia because it is free and can be used on distributive nodes, on the other hand I am not very much aware of the shortcoming of mnesia. So there is always a question in front of me whether to what extend can mneisa handle things easily. I tried reading some article on internet like <a href="http://learnyousomeerlang.com" target="_blank">learnyousomeerlang.com</a>, looked at erlang documentation but couldn't understand the limitations of mnesia. It will be very nice if you can give me some pointers where I can understand the internals of mnesia properly and use it accordingly.</div>

<div><br></div><div>About my back up node, the process group has some specific name or id. I'll prefix the table names with the unique id. Each process group serves a specific group of people(say). I am using back up node for failover case so that I don't lose data. It is important not to lose data. Are you saying that saving it on the disk on the same node is enough? No need to store on the other node? disk failure is rare and in that case I've data in RAM(mnesia). The capacity of servers like RAM, disk space can be assumed as much as we want.<br>


<font style="color:rgb(102,51,51);font-family:tahoma,sans-serif"><br clear="all"></font><font style="color:rgb(102,51,51);font-family:tahoma,sans-serif">Aman Mangal</font><div><font style="color:rgb(102,51,51);font-family:tahoma,sans-serif">3rd year Undergraduate<br>


Department of Computer Science & Engineering<br>
IIT Bombay<br></font><a href="http://www.cse.iitb.ac.in/~amanmangal" target="_blank">www.cse.iitb.ac.in/~amanmangal</a>
</div></div>
<br><br><div class="gmail_quote">On Tue, Apr 2, 2013 at 9:23 PM, Magnus Henoch <span dir="ltr"><<a href="mailto:magnus@erlang-solutions.com" target="_blank">magnus@erlang-solutions.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div>aman mangal <<a href="mailto:mangalaman93@gmail.com" target="_blank">mangalaman93@gmail.com</a>> writes:<br>
<br>
> Hi everyone,<br>
><br>
> This is my first post on this forum! I am new to erlang, just started using<br>
> it a month ago or so. Since I have come across erlang, I have become such a<br>
> big fan of it that I have started working on a product in erlang for a<br>
> company.<br>
><br>
> Coming to the point, here is my question. I want to make<br>
> a distributive application. There are multiple processes running on a node.<br>
> The processes are divided in logical groups. Each group serves a specific<br>
> purpose. Each group has some data(few tables) shared among the processes<br>
> inside the group but not outside the group. Now my question is that whether<br>
> to use mnesia or not to store the data? If I don't use mnesia, I'll store<br>
> the data as state in a gen server processes running in the group. In that<br>
> case I don't know how will I will keep back up of the data for the case<br>
> when any node goes down.<br>
<br>
</div>It sounds like Mnesia would be a good fit.  You would get persistence<br>
for free by creating your tables with disc_copies.  The only potential<br>
issue I see is table names: each Mnesia table must be named by an atom.<br>
Are your process groups created dynamically?  If so, you'd need to come<br>
up with a scheme to get the correct table names from within the<br>
processes that need to access the tables.  You'll also need to use the<br>
record_name option when creating the tables, as by default Mnesia<br>
requires you to use records with the same name as the table.<br>
<div><br>
> Also my database can grow as large as thousand tables each having hudred<br>
> entries on a node. Is mnesia a good idea to use for such a large (I'm not<br>
> sure whether it is large :P ) database? Is there any free alternative to<br>
> mnesia? Please note that there is no inter node communication in order to<br>
> get data except with the back up node!<br>
<br>
</div>Assuming each entry takes no more than a kilobyte, you're looking at<br>
roughly 100 megabytes of data in total.  When using the disc_copies<br>
table storage type, Mnesia will store the entire database in memory as<br>
well as on disk, but I presume that you have enough RAM that 100<br>
megabytes isn't a big problem.<br>
<br>
Could you elaborate on your backup node setup?  If you want your data to<br>
be distributed to protect against disk failure on the main node, then<br>
Mnesia distribution is probably the way to go, but depending on your<br>
requirements you might be able to get away with a simpler solution.<br>
<br>
Hope this helps,<br>
Magnus<br>
</blockquote></div><br></div></div>