人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

GAEからクラウドのデータストアにアクセスしてますが、GAE上にディプロイしてるサーブレットは、2つ平行で同時に走る事もあるのでしょうか?

例えば、
ServletインスタンスA
データストアの値をインクリメントして
データストアに格納

ServletインスタンスB
データストアの値をデクリリメントして
データストアに格納

という処理が並走してしまい、おかしな結果になる事はありえるのでしょうか?


●質問者: alesi_sato
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● oil999
●50ポイント

実装が分からないと何とも言えませんが、単純にshardを増やすだけで並列処理は実行できます。

また、配列処理が行われていなくても、1つのエンティティまたは 1つのエンティティグループが非常に頻繁に更新される場合、データストアの競合は起こります。
回避策については以下をご覧ください。

データストアの競合を回避する(GAE公式)

https://developers.google.com/appengine/articles/scaling/contention?hl=ja


2 ● taroe
●50ポイント

>2つ平行で同時に走る事もあるのでしょうか

ありえます。

>という処理が並走してしまい、おかしな結果になる事はありえるのでしょうか?

対策しないとそうなります。


synchronizedを使用して、非同期に同時に動作しないような仕組みにするとかそういうことを考えるべきでしょう。

http://java.akjava.com/library/guava_libraries/suppliers


3 ● ruirui01231
●50ポイント

スレッドの非同期並行処理の流れ
http://www.hitachi.co.jp/Prod/comp/soft1/manual/cosmi/v0870/APKX/EU080458.HTM


4 ● otusoham
●50ポイント

並行的に受け付けているらしいです。

http://mergedoc.sourceforge.jp/tomcat-servletapi-5-ja/javax/servlet/http/HttpServlet.html

ほかの方が言っているとをり対策をしないとおかしなことになるようです。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ