Hey,

Check this out: https://github.com/memcached/memcached/pull/484

You can't quite do this with the way metaget is now, though it's feasible
to add some "value if cas match on mget" flag. I'd have to think it
through first.

For local caches though, unless your object is huge, simply waiting on a
round trip to memcached to see if it's up to date removes most of the
value of having the local cache. With a local cache you have to check it
first, then check if it's fresh, then use it. It's likely the same speed
to just not have the local cache at that point so you can avoid the CPU
burn of the initial hash/test or trade it for CPU/network used in pulling
in the value and having a simple system.

However! If you have a limited size "hot cache" and you can asynchronously
test if they need to update, you could (say once per second or whatever
makes sense for how hot your objects are), kick off an async test which
runs mget with options for no-bump (optionally), no value, and cas (no
flags, size, etc) for a lightweight response of just the cas value.

If the cas doesn't match, re-issue for a full fetch. This works okay for
high frequency items since an update would only leave them out of sync
briefly. Polling kind of sucks but you'd only do this when it would reduce
the number of requests back to origin anyway :)

I'm hoping to get metaget in mainline ASAP. Been hunting around for
feedback :) Should be finishing up the code very soon, with merge once a
bit more confident.

On Tue, 17 Sep 2019, John Reilly wrote:

> Hi all,I was just thinking it would be great to be able to cache the most 
> used items in a local cache on the client side and I think this would be 
> possible if there was a way
> for the client to send a request to get a key, but only if the cas value is 
> not the same as the cas token of the value I already know about locally in 
> the client.  I don't think
> this is possible with either protocol today, but would be happy if told 
> otherwise :)
>
> Also, can anyone think of a reason why this would not work - if it is not 
> supported today, it might be a nice feature to add. 
>
> Thanks,
> John
>
> --
>
> ---
> You received this message because you are subscribed to the Google Groups 
> "memcached" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to memcached+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/memcached/CAJ__CS_0CaWLU-fqTV%2BeYRU6V3Pg6D8Rix%2B7Lbg_YyDs5tjxPg%40mail.gmail.com.
>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"memcached" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to memcached+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/memcached/alpine.DEB.2.21.1909171732430.1888%40dskull.

Reply via email to