I created a Go datastore package https://github.com/qedus/nds. It uses 
memcache to cache datastore access. Its goal is to have *complete* 
consistency between the datastore and memcache, i.e. the cache should 
*never* return stale results.

Therefore I adapted Python's NDB caching strategy and improved it slightly 
where there are certain consistency bugs. As far as I am aware 
https://github.com/qedus/nds maintains *complete* cache consistency if 
datastore acces only uses Get, Put and Delete entity methods outside 
transactions. (This currently is not the case with Python's NDB, although 
it comes very close.)

However, if my Get, Put and Delete methods are run in a transaction there 
is one edge case I can think of (https://github.com/qedus/nds/issues/31) 
that could result in a stale cache.

Can anyone see a strategy to fix this edge case?

Although the likelihood of it happening is miniscule and datastore 
integrity is maintained, I want to be able to say that the package is 
guaranteed to have *complete* cache consistency, not just strong cache 
consistency.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-appengine.
For more options, visit https://groups.google.com/d/optout.

Reply via email to