Mnesia and Oracle

Valentin Micic valentin@REDACTED
Thu Aug 10 09:38:14 CEST 2006

I do not think combining mnesia and MySQL is a good choice, no matter what 
justification one may put forward. If nothing else, it complicates 
maintenance, confuses people, and may (potentialy) compromise both 
products... not to mention a data integrity issues intrinsic to such an 
Mnesia's dets tables work reasonably well, even with huge data sets. The 
problem(s) starts when you start deleting records -- free list grows to the 
point that (IMHO) takes quite a long time to write it to disk. This becomes 
more obvious when one uses a lots of fragments. Thus, even if you shut the 
database regularly, it might corrupt few fragments. My guess: mensia 
controller does not give enough time to all dets processes (one per 
fragment) to flush their respective free lists to dist.

A question for Erlang/OTP team: how can one prevent this from happening?

I'm looking more (and more) to Berkeley DB for storage. Anybody, how does it 
compare to dets?


----- Original Message ----- 
From: "Yariv Sadan" <yarivvv@REDACTED>
To: "Inswitch Solutions" <erlang@REDACTED>
Cc: <erlang-questions@REDACTED>
Sent: Tuesday, August 08, 2006 11:51 PM
Subject: Re: Mnesia and Oracle

> Hi Eduardo,
> I haven't had production experience with these databases, but there
> are a couple of things I found by research that are keeping me from
> using Mnesia exclusively in my application:
> - Mnesia disc storage, based on dets, has a couple of drawbacks when
> handling very large (many gigs) datasets: potentially long repair
> times and memory consumption that grows with data fragmentation.
> - QLC, the query engine for Mnesia, doesn't currently optimize joins.
> If your queries involve joining big tables, they can take a long time
> to execute.
> The join optimizations are planned for a future R11 OTP release, but
> there are no plans to change dets AFAIK.
> Depending on your application, these issues may not be a big problem.
> For the application I'm building, I'm planning on using both MySQL and
> Mnesia, where MySQL will be used for storing high-volume data and
> Mnesia for "live" session data.
> Hope this helps!
> Regards,
> Yariv
> On 8/8/06, Inswitch Solutions <erlang@REDACTED> wrote:
>> Hi,
>> I'm already working with Oracle and Mnesia, and I'd  like to hear 
>> experiences of the Erlang community about these  databases.
>> When deciding over Oracle or Mnesia database for an  Erlang, or non 
>> Erlang, based real-time system which factors are in favour  in one over 
>> the other (performance...?) ?.
>> thanks, Eduardo
>> Prepaid Expertise -        Programmable Switches
>> Powered by Ericsson Licensed Technology
>> Eng.        Eduardo Figoli - Development Center - IN Switch Solutions 
>> Inc.
>> Headquarters - Miami-U.S.A. Tel: 1305-3578076 Fax:        1305-7686260
>> Development Center - Montevideo - Uruguay Tel/Fax:        5982-7104457
>> e-mail: eduardo@REDACTED

More information about the erlang-questions mailing list