以前の App Engine プロジェクトではマスター/スレーブ データベースを使用していましたが、新しいアプリは高レプリケーション データストアとして定義されています (定義後にこの設定を変更できるとは思えません)。
私がこれまで行ってきたことはdetachedCopy
、更新後にオブジェクトを呼び出して、その後の更新が新しく更新されたオブジェクト グラフで確実に機能するようにすることでした。
しかし、High Replication Datastore には、完全には理解できないが懸念される特性、つまり「結果整合性」があります。Google App Engine グループの一部の Python 関係者から聞いた話では、彼らは「モデル」オブジェクトの更新を実行しますが、High Replication Datastore は更新されたオブジェクト グラフをそのように感じるまで返さないため、その後の更新はすべてこのオブジェクトへの接続は、基礎となるデータストアと同期していない可能性があります。
これが正しければ、私がdetachedCopy
Datanucleus JDO で使用してきた方法を台無しにしてしまいます。Master/Slave データベースでは、デタッチされたオブジェクトがデータストアと一致しないという状況に遭遇したことはありません。これは私が今心配する必要があることですか?高レプリケーション データストアで大惨事を回避する方法はありますか? それとも、JDO の回避策がない場合、この問題を回避するために、マスター/スレーブ構成に対してすべてのアプリを実行する必要がありますか?