<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3395" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=571534716-30092008><FONT face=Arial 
color=#0000ff size=2>Hi Edwin,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=571534716-30092008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=571534716-30092008><FONT face=Arial 
color=#0000ff size=2>Thanks and good idea - I am actually investigating that 
route right this moment!</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=571534716-30092008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=571534716-30092008><FONT face=Arial 
color=#0000ff size=2>I think I could definitely do it, the problem being that 
after an initial bootstrap of the Mnesia tables I will be in a situation where I 
will be receiving live/real-time updates to the data. These unfortunately will 
need to be reflected in mnesia so that the queries performed against it are 
fully up-to-date whilst still enabling real-time response rates to the queries 
themselves.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=571534716-30092008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=571534716-30092008><FONT face=Arial 
color=#0000ff size=2>A bit of a mouthful I know!</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=571534716-30092008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=571534716-30092008><FONT face=Arial 
color=#0000ff size=2>Many Thanks,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=571534716-30092008><FONT face=Arial 
color=#0000ff size=2>Dan</FONT></SPAN></DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> emofine@gmail.com 
[mailto:emofine@gmail.com] <B>On Behalf Of </B>Edwin Fine<BR><B>Sent:</B> 30 
September 2008 17:48<BR><B>To:</B> RUBINO, Dana, GBM<BR><B>Cc:</B> 
taavi@uninet.ee; erlang-questions@erlang.org<BR><B>Subject:</B> Re: 
[erlang-questions] Extremely poor Mnesia performance<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV dir=ltr>Is it possible to denormalize the data so that you don't have so 
many tables? Mnesia can behave as a hierarchical database because you can store 
arbitrarily complex terms, including what amounts to trees (lists of tuples of 
lists of.....). If your queries are likely to remain the same over time and you 
don't need ad-hoc queries, could you consider this approach? The problem with 
any hierarchy, of course, is that if you get it wrong it can be hell on wheels 
to fix.<BR><BR>
<DIV class=gmail_quote>On Tue, Sep 30, 2008 at 12:23 PM, <SPAN dir=ltr><<A 
href="mailto:Dana.RUBINO@rbs.com">Dana.RUBINO@rbs.com</A>></SPAN> wrote:<BR>
<BLOCKQUOTE class=gmail_quote 
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Thanks 
  Taavi,<BR><BR>That wasn't the answer I was looking for! :-D<BR><BR>Oh dear, 
  well that leaves my plan for using Mnesia in tatters.<BR><BR>I actually need 
  an in memory db which at least has the core subset of RDBMS features. So I am 
  essentially just looking for a small in memory DB for real-time 
  access.<BR><BR>Has anyone here had any experience using something like KDB 
  with Erlang?<BR><BR>Perhaps I could switch to using KDB as an 
  alternative?<BR><BR>Many Thanks,<BR>Dan<BR>
  <DIV>
  <DIV></DIV>
  <DIV class=Wj3C7c><BR>-----Original Message-----<BR>From: Taavi Talvik 
  [mailto:<A href="mailto:taavi@uninet.ee">taavi@uninet.ee</A>]<BR>Sent: 30 
  September 2008 17:19<BR>To: RUBINO, Dana, GBM<BR>Cc: <A 
  href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</A><BR>Subject: 
  Re: [erlang-questions] Extremely poor Mnesia performance<BR><BR><BR>On Sep 30, 
  2008, at 5:58 PM, <<A 
  href="mailto:Dana.RUBINO@rbs.com">Dana.RUBINO@rbs.com</A>> 
  wrote:<BR><BR>><BR>> Hey all,<BR>><BR>> I am doing some 
  benchmarking with Mnesia at the moment and am pretty<BR>> disappointed to 
  say the least.<BR>><BR>> I'm hoping I am doing something 
  wrong.<BR>><BR>> Running a 5 table join below: (two of the tables have 
  ~50k rows the<BR>> rest a couple of hundred)<BR><BR>Probably you are not 
  doing anything wrong. From mnesia introduction (<A 
  href="http://www.erlang.org/doc/apps/mnesia/Mnesia_chap1.html#1" 
  target=_blank>http://www.erlang.org/doc/apps/mnesia/<BR>Mnesia_chap1.html#1</A>),<BR>it 
  design goals are:<BR>===<BR>In telecommunications applications there are 
  different needs from the features provided by traditional DBMSs. The 
  applications now implemented in the Erlang language need a mixture of a broad 
  range of features, which generally are not satisfied by traditional 
  DBMSs.<BR>Mnesia is designed with requirements like the following in 
  mind:<BR><BR>       * Fast real-time key/value 
  lookup<BR>       * Complicated non real-time queries 
  mainly for operation and maintenance<BR>       * 
  Distributed data due to distributed applications<BR>      
   * High fault tolerance<BR>       * Dynamic 
  re-configuration<BR>       * Complex 
  objects<BR>===<BR><BR>Mnesia is not designed as replacement for relational 
  database. It is optimised for fast key-value lookup and 
  distribution.<BR><BR>With qlc:info(Qh) you can get more information, how query 
  is actually handled.<BR><BR>best regards,<BR>taavi<BR><BR></DIV></DIV>
  <DIV 
  class=Ih2E3d>***********************************************************************************<BR>The 
  Royal Bank of Scotland plc. Registered in Scotland No 90312. Registered 
  Office: 36 St Andrew Square, Edinburgh EH2 2YB.<BR>Authorised and regulated by 
  the Financial Services Authority<BR><BR>This e-mail message is confidential 
  and for use by the<BR>addressee only. If the message is received by anyone 
  other<BR>than the addressee, please return the message to the sender<BR>by 
  replying to it and then delete the message from your<BR>computer. Internet 
  e-mails are not necessarily secure. The<BR>Royal Bank of Scotland plc does not 
  accept responsibility for<BR>changes made to this message after it was 
  sent.<BR><BR>Whilst all reasonable care has been taken to avoid 
  the<BR>transmission of viruses, it is the responsibility of the recipient 
  to<BR>ensure that the onward transmission, opening or use of this<BR>message 
  and any attachments will not adversely affect its<BR>systems or data. No 
  responsibility is accepted by The<BR>Royal Bank of Scotland plc in this regard 
  and the recipient should carry<BR>out such virus and other checks as it 
  considers appropriate.<BR>Visit our websites at:<BR><A 
  href="http://www.rbs.com" target=_blank>www.rbs.com</A><BR><A 
  href="http://www.rbs.com/gbm" target=_blank>www.rbs.com/gbm</A><BR><A 
  href="http://www.rbsgc.com" 
  target=_blank>www.rbsgc.com</A><BR>***********************************************************************************<BR><BR>_______________________________________________<BR></DIV>
  <DIV>
  <DIV></DIV>
  <DIV class=Wj3C7c>erlang-questions mailing list<BR><A 
  href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</A><BR><A 
  href="http://www.erlang.org/mailman/listinfo/erlang-questions" 
  target=_blank>http://www.erlang.org/mailman/listinfo/erlang-questions</A><BR><BR></DIV></DIV></BLOCKQUOTE></DIV><BR></DIV><pre>
***********************************************************************************
The Royal Bank of Scotland plc. Registered in Scotland No 90312. Registered Office: 36 St Andrew Square, Edinburgh EH2 2YB. 
Authorised and regulated by the Financial Services Authority 
 
This e-mail message is confidential and for use by the 
addressee only. If the message is received by anyone other 
than the addressee, please return the message to the sender 
by replying to it and then delete the message from your 
computer. Internet e-mails are not necessarily secure. The 
Royal Bank of Scotland plc does not accept responsibility for 
changes made to this message after it was sent. 

Whilst all reasonable care has been taken to avoid the 
transmission of viruses, it is the responsibility of the recipient to 
ensure that the onward transmission, opening or use of this 
message and any attachments will not adversely affect its 
systems or data. No responsibility is accepted by The 
Royal Bank of Scotland plc in this regard and the recipient should carry 
out such virus and other checks as it considers appropriate. 
Visit our websites at: 
www.rbs.com
www.rbs.com/gbm
www.rbsgc.com
***********************************************************************************
</pre></BODY></HTML>