Objectify、Datanucleus、Twigなどの GAE の既存の永続化フレームワークは、データストアの「結果整合性」の性質をどのように処理しますか?
レイヤー内のデータストアを使用していますDatastoreService
(現在、そのような永続化フレームワークは使用していません)。
単体テスト中に、オブジェクトの正しい数を取得する場合と取得しない場合があります。これは予想されます。
これは私の JUnit ヘルパー構成です。
private final LocalServiceTestHelper helper =
new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig()
.setDefaultHighRepJobPolicyUnappliedJobPercentage(50));
ここで、put/get メソッドを再試行 (再試行回数 4) を伴う do-while ループに配置したとしても、エンティティの put/get に失敗します。
現時点で、これらの指定されたフレームワークについて、3 つのオブジェクトを配置すると 3 つのオブジェクトが取得されることを保証できましたか? もしそうなら、それはどのように実装されましたか?
私が考えることができる唯一のことは、Memcache を使用することです。つまり、私のメソッドは最初にそこからエンティティを取得しようとします。失敗した場合は、データストアをチェックするのはそのときだけです。これは健全なアプローチですか、それともより良いアプローチまたは正しいアプローチがありますか?