問題タブ [database-concurrency]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
multithreading - Grails「行が別のトランザクションによって更新または削除されました (または、保存されていない値のマッピングが正しくありませんでした)」
Grails (2.3.7) の並行性の問題に対する明確な解決策はないようです。すべての推奨事項を試しましたが、同時スレッド数をプッシュすると、次のコードは常に失敗します。
「def lockedDogInstance = Dog.lock(dogId)」という行で失敗します。
上記の設計は、所有者と犬の間に多対多の関係がある非常に単純です。
犬のクラス:
所有者クラス:
参考までに - DB は MySQL です。
推奨事項はありますか?
swift - コア データ内のオブジェクトをフェッチしようとしているときにエラーが発生しました "-[__NSArrayI entity] : 認識されないセレクターがインスタンスに送信されました"
Parse からすべてのデータを取得し、このデータを携帯電話の Core Data と同期しようとしています。現在、フェッチ リクエストが正しく実行されないという小さな問題が発生しています。原因は、別のタスクに managedObjectContext を使用しているためだと思いますが、これを修正する方法がよくわかりません。
コード内で問題が発生する場所を明確に示します。私のコードはクラッシュしませんが、ログにエラーを出力するだけなので、非常に奇妙です。(コードのすぐ下のログに結果を表示しました)
これは私のコードです:
ログに表示される内容は次のとおりです。
これで終わりです。同時実行と関係があると思いますが、残念ながら質問に対する答えが見つかりませんでした。私は他のフォーラムに参加しましたが、誰も適切な回答を提供できませんでした.
どうもありがとう
oracle - フィードの同時投稿と読み取り - フィード ヘッドから最新のエントリにトラバースするときにエントリが欠落している
これは、古典的な同時読み取りと書き込みの課題です。
Hibernate を介して Oracle データベースにレコードと Atom Hopper フィードを公開しており、パートナーがそれらを読み取っています。レコード 1 から 5 までを公開すると、5 が先頭 (つまり、最後に公開されたもの) になります。パートナーはエントリ 1 から始まるフィードのページを要求し、エントリ 1 ~ 5 を受け取ります。次回彼らが尋ねるとき、彼らはエントリ 5 よりも新しいエントリを要求します。クライアントは、どのエントリが読まれたかを追跡します。
問題は、彼らが読んでいる間に、たまたまエントリ番号 6 を公開したことです。これは、「作成済み」列の番号 5 よりもわずかに古いタイムスタンプを取得します。読み取り後にコミットされたため、パートナーが nr を取得することはありません。6. その間に公開した 7、8、9 を取得します。すべて nr よりも新しいタイムスタンプです。5.
では、nr のようなエントリの欠落をどのように回避するのでしょうか。6? 最初の手段としてデータベースにタイムスタンプを設定させますが、レコードがタイムスタンプを取得してからコミットされるまでの間に無視できない時間が存在するため、読み取り中に「古い」エントリをコミットする可能性がまだあります。 . 読み取りなどのためにデータベースページをロックすることは可能でしょうか?
クライアントの動作を変更する必要があるかもしれないと考えています。つまり、間にコミットがあった場合に備えて、4 番よりも新しいエントリを要求します。タイムスタンプの代わりにシーケンスを使用すると、nr. 6?
parallel-processing - コンカレント データベース MVCC タイムスタンプ生成方法
MVCC スナップショット分離のためにデータベースのタイムスタンプを生成する必要があります。利用される典型的な方法:
「トランザクション アクションは、次のように SI-TM で実装されます。TM BEGIN: トランザクションの論理スナップショットは、グローバル タイムスタンプ カウンターへのアトミック インクリメントを使用して一意のタイムスタンプを取得することによって生成されます。」
数百のコアを持つシステムでこのアプローチを使用する際の問題は、スケーリングできないことです。競合するメモリ位置には、毎秒 10M アトミック インクリメントのハードウェア制限があります。
何か案は?
networking - Web サーバーでの同時受信要求
ECサイトのフラッシュセールの状況について質問です。在庫が 5 個しかない場合、サーバーに 10000 件のリクエストが同時にヒットした場合、サーバーはどのようにリクエストを処理し、どのようにリクエストを注文するのでしょうか?