On Jan 29, 2008, at 13:21, Ciaran wrote:

  There is at least one common hash algorithm I think every client
supports.
I guess this is the FNV hash? For my purposes I hash the key outside of memcached to avoid this particular issue :)

        No, there's a CRC32 based hash that I think everyone supports.

        The hash I'm referring to is the one used to locate a node.

  There are two node location algorithms many clients support -- at
least one they all do (should?)
I'm not even looking at clients that don't support the 'consistent hashing algorithm' ;)

        I've seen three of them discussed for use with memcached.

  Someone put together a matrix of flag usage recently.  It seems
there are commonalities, but mostly by coincidence.  This needs work.

I believe you probably mean http://www.hjp.at/zettel/m/memcached_flags.rxml .

        Yes, that looks right.

I've also compiled my own one looking primarily at the content encoding types (currently sitting in an open-office sheet on my work pc, which I'm hoping won't have locked up overnight!), comparing all the C# + Java clients (stupidly I also tried to work out what libmemcached did before realising how meaningless the question was!) I'm more than happy to splurge out this information if it is of interest to other people :)

Knowing where we are is definitely helpful if you can provide more information. We still have to agree to move towards a specific direction, though.

  Content encoding varies greatly.  Strings are somewhat easy, though
not universal, but there are other common types that could handle a
common encoding.

One that I came up against was Unsigned vs Signed i.e. some platforms don't support types at all that other platforms do <g> I can see why its a decision that has never been cleared up / agreed upon :) You'd think that once a content encoding mechanism had been agreed it would be trivial to add in a 'cross-platform' encoding mode to clients on an adhoc basis, but I suspect my view of things is skewed/simplistic :)

That's true, but there are a few things that are common that can be covered:

        * Strings
        * Dates
        * Lists
        * Dictionaries
        * Fixed-precision numbers
        * Floating-precision numbers
        * Booleans
        * Blobs

Things people decide are common can be standardized. Either way, there will need to be room for things that can't be considered common.


Take care

- Ciaran




--
Dustin Sallings (mobile)

On Jan 29, 2008, at 12:58, Ciaran <[EMAIL PROTECTED]> wrote:

>
> There is some flag space reserved for something like flags that
> aren't supposed to be exposed in the client APIs, but I'm having
> trouble seeing the point. I'm under the impression that not a lot of
> users make heavy use of the flags for anything other than content
> encoding.  That is, at least, where all the confusion is.
>
>  Thats a shame, perhaps I'm an edge case, do most people not share
> across platforms, or if they do just store 'raw' data ?
> - Ciaran



--
- Ciaran

--
Dustin Sallings

Reply via email to