[erlang-questions] Mnesia or memcached?

Gleb Peregud gleber.p@REDACTED
Sun Apr 13 00:25:59 CEST 2008


Yariv, take a look at cacherl: http://code.google.com/p/cacherl/

Disclaimer: I'm a project member.

It is an implementation of memcache protocol in erlang (with addition
of optional persistancy for some items). Still in alpha/beta state,
but it is already used by me in a production system without
significant issues.

Probably it can be tuned a little bit to meet your needs. There is an
initial support of "namespaces" - one may improve it by implementing
memory limits for some namespaces (or for whole storage space).

Feel free to send me patches :)

On 4/12/08, Nick Gerakines <nick@REDACTED> wrote:
> Yariv,
>
> If you use ram + disc backing can't you use the size of the disc from
> dets:info(Table, memory)? Having a process periodically look at this value
> and cleanup based on the file size could work. For the cleanup process to
> work your record would have to store the time the time the record was
> inserted as well as the expiration time.
>
> I could see how under large amounts of read/write load when the system is
> constantly at its max this could strain the app.
>
> Food for thought.
>
> # Nick Gerakines
>
> On Fri, Apr 11, 2008 at 9:38 PM, Yariv Sadan <yarivsadan@REDACTED> wrote:
> > Hi,
> >
> >  I need for an Erlang app a caching solution that does essentially what
> >  memcached does:
> >
> >  1. You tell it the max memory it can use or each node.
> >  2. You insert, lookup and remove objects by primary key.
> >  3. When you look up an object its time stamp is updated to the current
> time.
> >  4. When you insert an object and the max memory is exceeded, the
> >  oldest object(s) is (are) removed to make room for the new object.
> >  5. The cache is distributed. Each key/value pair exists on only one
> >  node in a cluster and is accessible by all nodes.
> >
> >  Should I try to use Mnesia for this (I don't need transactions --
> >  dirty operations are fine) or should I go with memcached?  I know
> >  Mnesia can take care of 1, 3 and 5 but I'm not sure about 1 and 4.
> >  I'll appreciate any feedback.
> >
> >  Thanks,
> >  Yariv
> >  _______________________________________________
> >  erlang-questions mailing list
> >  erlang-questions@REDACTED
> >  http://www.erlang.org/mailman/listinfo/erlang-questions
> >
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>

-- 
Sent from Gmail for mobile | mobile.google.com

Gleb Peregud
http://gleber.pl/

Every minute is to be grasped.
Time waits for nobody.
-- Inscription on a Zen Gong



More information about the erlang-questions mailing list