トランザクションを使用してデータストアに複数のエンティティを書き込んでいます。これらのエンティティも MemCache に保持したいと考えています。MemCache 内のエンティティのコピーが Datastore 内のコピーと実際に等しいことを確認するにはどうすればよいですか?
たとえば、次のことができます。
tx.begin()
datastore.put(entity)
if (memcache.putIfUntoched(key, entity))
tx.commit()
ただし、トランザクションが失敗した場合、エンティティはデータストアではなく MemCache に格納される可能性があります。一方、もしそうなら:
tx.begin()
datastore.put(entity)
tx.commit()
memcache.putIfUntoched(key, entity))
その後、データストア トランザクションは成功する可能性がありますが、MemCache の更新は失敗する可能性があります。どうすれば一貫性を確保できますか?