Hi guys,

I have one question about the 'delete' command.
Before 1.4.0, the command used to be 
delete <key> [<time>] [noreply]\r\n
there is a <time> parameter which supports lingering delete.
But after 1.4.0 the feature was completely removed. Now there is no <time> 
parameter.

However, I think this parameter is useful. It could avoid the data 
inconsistency that caused by the reorder of 'delete' and 'set' operation. 
Think about this senario.
1. App server A 'get' key k1 from the cache server. Not exist. It's a Cache 
miss
2. App server A query database. Then try to 'set' the k1 to the cache 
server 
3. App server B update the record related to k1 in the database. Then try 
to 'delete' k1 on all cache servers.
4. For some network issue the 'set' operation sent by A is very slow. It 
reaches the cache after the 'delete' operation sent by B.
5. After the 'set' operation. The value of k1 becomes stale data, and may 
never be updated any more.

My question is. If there is no <time> parameter for delete operation. How 
to avoid the above senario? What's the best practice?

Thanks,
Kevin

-- 

--- 
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.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to