[erlang-questions] sending data down the wire in mysql vs. mnesia

Ulf Wiger ulf@REDACTED
Mon Dec 3 18:22:41 CET 2007


If you look into the mnesia_frag module, you will see how
mnesia does distributed selec (mnesia_frag:do_select()).

In order to sustain this level of trickery, one must know
exactly how mnesia transactions work, but my suggestion
was basically that you make a copy of mnesia_frag and
extend this code.

BR,
Ulf W


2007/12/3, Paul Mineiro <paul-trapexit@REDACTED>:
> The mnesia access API seems to low level to pull this off, since it
> intercepts individual reads and writes.
>
> What I'd like is something like rpc:pmap/3 for mnesia (fragmented tables);
> in this case I can't hand roll it because the transaction context does not
> carry over through an rpc:call (and its not clear how the side effect of
> doing an rpc call interacts with transaction retry mechanism anyway;
> seems like mnesia should be aware of this explicitly for it to work out).
>
> What I can do right now is use the rpc module to call mnesia:activity for
> me on the remote nodes, and the reduce the collection of results.  This is
> ok but 1) I have to figure out where the active replicas are for the
> fragments I care about so location transparency is gone and 2) I can't
> have a single transaction for all the activity.
>
> -- p
>
> On Sun, 2 Dec 2007, Ulf Wiger wrote:
>
> > 2007/12/1, Paul Mineiro <paul-trapexit@REDACTED>:
> > > With a fragmented MySQL table, I can execute a stored procedure
> > > on each MySQL fragment, and the reduce the collection of results in the
> > > client.  The only thing that travels over the wire is the collection of
> > > results, one for each fragment.
> > >
> > > I'm looking for something similar from Mnesia.  Erlang has all the
> > > building blocks to put it together (so I have), but I can see an
> > > opportunity to come up with something standard within Mnesia which is
> > > reasonably general and would return me to a more location-transparent
> > > style of programming.
> >
> > You can modify mnesia_frag and tell mnesia to use your version instead
> > of the default. How to do this is documented in mnesia. The downside is
> > of course that you'd have to duplicate/maintain a whole bunch of other logic
> > as well, just to make this small change, but in the process of doing this,
> > you may arrive at some suggestion on how to make this parameterizable.
> >
> > BR,
> > Ulf W
> >
>
> Optimism is an essential ingredient of innovation. How else can the
> individual favor change over security?
>
>   -- Robert Noyce
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list