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.
