2012-04-07 13 views
1

私のWebサービスでは、このユーザークラス/テーブルのユーザーがWebサービスを使用するときに、「HITS」という列を含むユーザーテーブルがあります。「HITS」の数は1だけ増えますこれは書き込み操作を伴うため、楽観的/悲観的なロックが発生します。データベース内での同時並行性の高い書き込み

問題は、同じユーザーに対して100ヒットが同時に発生する高い並行性のシナリオです。

ウェブサービスが同じユーザーのアカウントから同時に使用されているときに、ユーザー行をロックして「HITS」を更新することによる遅延を回避する戦略を提案する人はいますか?

OR

あなたはまた、変数(複数可)またはそのような何かを合計することによって、「HITS」値を生成するために、私はすべての12時間後に監視することができ、いくつかの変数を更新する方法を提案することができますか?

hibernateとEJBステートレスセッションBeanを使用しています。

+0

データベースがコミットロールバックをサポートしていますか? –

+0

はい、データベースサポートはコミット&ロールバックしています。 – David

+0

それからあなたはそれをアトミックな操作にすることができます。しかし、それらを詰め込み、後で数えるという考えははるかに優れています。 –

答えて

3

ちょうどいくつかのスケジュールで、その後...テーブルall_hitsにヒットするごとに1つずつ

を1つのレコードを挿入 - そのテーブルから選択し、hits_summaryテーブルに挿入して、オリジナルを削除します。

関連する問題