Loading ...
Sorry, an error occurred while loading the content.

2254RE: using memcached as a StateDB.. getting there

Expand Messages
  • Gregory S. Youngblood
    Mar 27, 2009
    • 0 Attachment
      I, for one, am interested, though I haven't been able to do much or get
      involved.

      "Namespace" - I suggest making this an option that is user tunable, but pick
      a good default value that hopefully won't need to be tweaked all the time.

      "Lock/Unlock" - Each individual operation of memcached is atomic.. if two
      processes attempt to write to one location at the same time, they will be
      serialized and one will not corrupt the other. The problem is you don't
      necessarily know which one will actually win. This means you can't guarantee
      state if you don't do locking to ensure the right one wins. Consider an
      incrementing counter. Assuming you do a get to read the value, increment it
      by one, and then do a set to save it; each individual operation is safe
      (get, set), but not the combination (get+set). If two hit at the same time,
      the number would increment by 1 and not by 2 (one for each). I'd worry that
      making lock and unlock a no-op would create new problems, especially as site
      volume increases and chances of simultaneous updates increase.

      "No list of keys" - Usually I know what keys I'm stuffing into memcacheb and
      I don't need to walk through the keys, or if I do I have a place outside of
      memcache that has the keys to lookup. This one could get tricky. How would
      you keep the list of keys in a second entry intact, especially if two
      processes wanted to add a key at the same time?

      Other thoughts/suggestions:

      Having not looked at your code or design this may not be applicable, but
      consider making this generic, something that memcache or another cache
      engine could be plugged into. If you're interested, and my time permits, I'd
      be interested in working on part of this with you.

      Greg

      > -----Original Message-----
      > From: Thanos Chatziathanassiou [mailto:tchatzi@...]
      > Sent: Thursday, March 26, 2009 5:33 AM
      > Cc: 'asp@...'
      > Subject: Re: using memcached as a StateDB.. getting there
      >
      > (ignoring the fact that no-one seems interested)
      >
      > I came accross Cache::Memcached::Tie which pretty much does most of the
      > work, however I'm having some issues - actually design decisions:
      > - I suppose StateDir should equal ``namespace'' in memcached parlance.
      > Do we want to make this transparent to the end user or add a
      > configuration option ?
      > - memcached has no concept of Lock(), UnLock() and some stuff I haven't
      > figured out yet. Add no-ops for these to Cache::Memcached::Tie or is
      > there some more elegant way to bypass them inside Apache::ASP ?
      > - It seems there's no obvious way to enumerate keys in memcached
      > (FIRSTKEY NEXTKEY). Perhaps keep a separate index of keys inside
      > memcached and add methods that use those (?)
      > - memcached needs a few extra configuration options. Most important is
      > obviously ``servers'', but also ``compress_threshold'' and ``debug''
      >
      >
      > ---------------------------------------------------------------------
      > To unsubscribe, e-mail: asp-unsubscribe@...
      > For additional commands, e-mail: asp-help@...
      >
      >
      > No virus found in this incoming message.
      > Checked by AVG - www.avg.com
      > Version: 8.0.238 / Virus Database: 270.11.26/2020 - Release Date:
      > 03/25/09 07:16:00


      ---------------------------------------------------------------------
      To unsubscribe, e-mail: asp-unsubscribe@...
      For additional commands, e-mail: asp-help@...
    • Show all 5 messages in this topic