1

以前の App Engine プロジェクトではマスター/スレーブ データベースを使用していましたが、新しいアプリは高レプリケーション データストアとして定義されています (定義後にこの設定を変更できるとは思えません)。

私がこれまで行ってきたことはdetachedCopy、更新後にオブジェクトを呼び出して、その後の更新が新しく更新されたオブジェクト グラフで確実に機能するようにすることでした。

しかし、High Replication Datastore には、完全には理解できないが懸念される特性、つまり「結果整合性」があります。Google App Engine グループの一部の Python 関係者から聞いた話では、彼らは「モデル」オブジェクトの更新を実行しますが、High Replication Datastore は更新されたオブジェクト グラフをそのように感じるまで返さないため、その後の更新はすべてこのオブジェクトへの接続は、基礎となるデータストアと同期していない可能性があります。

これが正しければ、私がdetachedCopyDatanucleus JDO で使用してきた方法を台無しにしてしまいます。Master/Slave データベースでは、デタッチされたオブジェクトがデータストアと一致しないという状況に遭遇したことはありません。これは私が今心配する必要があることですか?高レプリケーション データストアで大惨事を回避する方法はありますか? それとも、JDO の回避策がない場合、この問題を回避するために、マスター/スレーブ構成に対してすべてのアプリを実行する必要がありますか?

4

1 に答える 1

0

「JDO」は、detachCopy から切り離された状態にあるオブジェクトを返します。データストアがそれ自体を更新しない場合、それはデータストアのみであり、「JDO」はそれを気にしません (ただし、それらのオブジェクトの更新された形式でデータストアを更新しようとするまではと思います)。

于 2011-09-05T05:14:46.237 に答える