Cross-client memcached compatibility

dormando dormando at rydia.net
Mon Feb 11 08:57:44 UTC 2008


Ciaran wrote:
> 
> 
> On Feb 11, 2008 8:50 AM, dormando <dormando at rydia.net
> <mailto:dormando at rydia.net>> wrote:
> 
>     Ciaran wrote:
>     >     > If the user would want to use several serialization formats,
>     she would
>     >     > have to use some prefix to encode the info on the used
>     format.  And it
>     >     > seems it can't be made compatible with prefix-unaware clients.
>     >
>     >     Just to note that I'm not ignoring this. I have no
>     constructive input
>     >     past this point :) Have you tried implementing any of this yet?
>     >
>     >
>     > I've successfully implemented a cross-platform solution between the
>     > Enyim.Memcached C# client and the Java  Spy.Net client after these
>     > discussions.  Using the existing Transcoder framework built into the
>     > Java client and by providing a patch for the C# client, it works
>     > beautifully for me, however it isn't a suitable approach for a wider
>     > cross-platform hit, hopefully if Enyim accepts my patch it will be
>     > trivial to achieve this between C# + Java, then there just needs to be
>     > some convincing of all client developers that it is a worthwhile
>     goal :)
>     >
>     > (Based upon Tomash' assertion that flags should effectively *only* be
>     > used to mark things as compressed (and|or) serializable, if
>     they're not
>     > marked as serialized then the stored cache data is treated as a raw
>     > array of bytes, otherwise the transcoder serialisation routine
>     inspects
>     > the first byte (i.e. the true data flags shifted out of the memcached
>     > flag and into the cached data, which does make sense really) )
>     >
>     > - Ciaran
> 
>     Could you be convinced to start a new wiki page with code examples (or
>     links to them at least) along with an overview of exactly what you're
>     doing? If we want to build standards it needs to be visible in a place
>     where we can start tweaking it and add notes. I don't have working code,
>     so I'm hoping you'll be generous :)
> 
> 
> What, you mean a bit like [1] ? :) I did that a while back, working
> code's fine and of course I'm happy to drop whatever in to help (its in
> my interest to have memcached work in a nice cross-platform way as thats
> how I'm trying to use it!), but I don't want to drop any code examples
> there just as yet because the requisite patches for the C# client I'm
> currently using haven't been accepted yet, and they may go a different
> way (hopefully not *too* different however!)
> 
> Reading the current utf-8-in-perl discussion however it seems that this
> is a directly competing requirement to mine *sigh*, in this approach it
> seems that people are happy to use the flags to encode serialisation
> specific information ?
> 
> [1]http://www.eu.socialtext.net/memcached/index.cgi?cross_platform_serialisation_support

No, I mean code, regardless of the patched state. "This is how I solved
the problem" - not just the list of flags. Include the path to enyim in
the page too. Mark across the top that this is experimental and for
discussion.

and yes, I'm asking this because there're some conflicting discussions
about flag usage.

-Dormando


More information about the memcached mailing list