現在、競合状態によって複数のスレッドが同じ値をデータストアに書き込むことがあります。Google App Engineデータストアを照会する際の並行性の問題
擬似コードは次のようになります。
public void writeToDatastore(ValueObject obj){
boolean objectExists = checkDatastoreForObject(obj);
if(!objectExists){
doSomeStuff();
writeObjectToDatastore(obj);
}
}
何が書かれている前に時々、二つ以上のスレッドが持続されているオブジェクトの複数のインスタンスにつながる、データストアから読み取ります。
キーワード(または他の同時実行性構造)を追加すると、アプリケーションのインスタンスが1つしか実行されていなければ問題が解決されます。
これらのタイプの並行性の問題は、分散環境でどのように解決できますか?
あなたが値ごとにユニークな性質を持っている場合は、手動でキーIDを割り当てることができます。次に、書き込みは既存の値の先頭を上書きします。 – GAEfan