[erlang-questions] How to extend mensia lock to support conditionally lock?
devdoer bird
devdoer2@REDACTED
Thu Jul 24 16:19:50 CEST 2008
2008/7/24, Ulf Wiger <ulf@REDACTED>:
>
> If you are to gain any performance compared to a wrapper, or using
> only table locks, you must do brain surgery on mnesia_locker. I
> strongly advise against that. The relationship between record locks
> and table locks is quite intricate.
Yes.I want to gain some performance to lock part of the table.
What's the intricate part of the locking system design?Can you give any docs
about the design of the mensia table-lock and record lock?
BR,
> Ulf W
>
> 2008/7/24, devdoer bird <devdoer2@REDACTED>:
> > The example I give is not good.,but I just need hack the mnesia lock :(.
> >
> > I want to lock part of the table and which part is controled by the
> record's
> > key's value range .Currently mnesia only support record lock and table
> > lock.
> >
> >
> > 2008/7/24, Ulf Wiger <ulf@REDACTED>:
> >>
> >> I don't think you should hack mnesia for that. A simple wrapper
> >> function will do nicely.
> >>
> >> BR,
> >> Ulf W
> >>
> >> 2008/7/23, devdoer bird <devdoer2@REDACTED>:
> >> > HI:
> >> >
> >> > I want to extend mnesia 's lock to add this function
> >> > "mnesia:lock(LockItem,LockType,ConditionFun)" .
> >> >
> >> > This function works in this way: If a table 's record passes the
> >> > ConditionFun test,the the record is locked.
> >> >
> >> > Eg.
> >> > I have a user table with the record: -record(user,{name,age}).
> >> >
> >> > I want to lock the user's whose name begines with 'a' ,I can code
> >> > using
> >> my
> >> > customized " mnesia:lock(LockItem,LockType,ConditionFun)"
> >> >
> >> > like this:
> >> >
> >> > ConditionFun=fun(U)->
> >> > if
> >> > U#user.name=='a' -> true;
> >> > true->false
> >> > end
> >> > end
> >> > mnesia:lock(user,write,ConditionFun).
> >> >
> >> > that is I want to lock part of the table.
> >> >
> >> > Have anyone done this before? How shall I extend the mensia lock? Any
> >> > information will be helpful, I 'm quite unfamiliar with mnesia lock
> >> > system.
> >> >
> >>
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080724/1a1d9f96/attachment.htm>
More information about the erlang-questions
mailing list