問題タブ [dirtyread]

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.

0 投票する
1 に答える
661 参照

mysql - MySQL InnoDB は Read Uncommitted 分離レベルをどのように実装しますか

Oracle はダーティ リードを許可していないため、Read Uncommitted を JDBC から設定することさえ許可されていません。

PostgreSQL は、Read Uncommitted を選択すると、Read Committed にもフォールバックします。

SQL Server は Read Uncommitted 分離レベルを定義します。これは、同時実行制御モデルがロックに基づいているため (2 つのスナップショット分離レベルに切り替えない限り)、そうでないレポートのロックを回避することでパフォーマンス上の利点が見られる唯一のデータベースである可能性があります。本当に厳密な一貫性が必要です。

InnoDB も MVCC を使用していますが、Oracle や PostgreSQL とは異なり、ダーティ リードが可能です。なぜそうなのですか?ロールバック セグメントから以前のバージョンを再構築する代わりに、最新バージョンに直接移行することでパフォーマンス上の利点はありますか? ロールバック セグメントのクエリ時間の復元は、ダーティ リードを許可する必要があるほど集中的なプロセスですか?

0 投票する
1 に答える
433 参照

mysql - mysql で 2 つの独立したトランザクションを開始する

2 つの独立したトランザクションでダーティ リードの異常を再現したいと考えています。ターミナルを 2 回起動し、両方をデータベースに接続しました。start transaction;両方のコマンドでトランザクションを開始しました。次に、最初のターミナル ウィンドウで 1 つの情報を更新したところ、次のように表示されましたRows matched: 1 Changed: 1 Warnings: 0。このテーブルのすべてのデータを選択すると、変更がありました。しかし、2 番目のターミナル ウィンドウで変更されたデータを表示しようとすると、変更select * from adress;ではなく古いデータが表示されました。

最後に、ダーティ リードの異常を証明し、適切な分離レベルでこれを回避する必要があります。

これは、私の端末ウィンドウの 2 つのスクリーンショットです。

トランザクション 1:

トランザクション 1

取引 2:

トランザクション 2

私は何を間違っていますか?

助けてくれてありがとう、ロビン

0 投票する
1 に答える
2558 参照

linux - CentOS 7.2 での Dirty CoW 緩和 - セマンティック エラー: プローブ ポイントの解決中

ここで説明されているように、システムに一時パッチ(非永続的)を実装する作業を行っています(公式のディストリビューションカーネルを待っている間):

https://bugzilla.redhat.com/show_bug.cgi?id=1384344#c13

システムでこのバグの解決をテストする目的で、書き込みスクリプトでダーティ コピーをテストしましたが、セマンティック エラーが発生しており、このバグがまだシステムでアクティブであることに注意してください。

色付き(それがあなたのものなら):

ここに画像の説明を入力

この記事を読む:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/SystemTap_Beginners_Guide/errors.html

簡単な説明が表示されます。

セマンティック エラー: プローブ ポイントの解決中にプローブ ポイントが一致しませんfoo
イベント/ハンドラー関数 foo は、さまざまな理由で完全に解決できませんでした。このエラーは、スクリプトにイベント kernel.function("blah") が含まれており、blah が存在しない場合に発生します。場合によっては、このエラーは、スクリプトに無効なカーネル ファイル名またはソース行番号が含まれていることを意味する場合もあります。

質問:

  • これは基本的に、syscallカーネル機能が認識されていないことを示していますよね?
  • CentOS 7.x でこの一時的な修正を成功させた人はいますか?

助けてくれてありがとう

PS: これがスクリプトの子供っぽいようでしたら申し訳ありません (私はまだこのホット フィックスを完全には理解していません)。

0 投票する
1 に答える
496 参照

linux - CentOS 7.2 の Dirty CoW パッチ - kernel-debuginfo

サーバーのDirty-COWの一時的な修正に取り組んでいるときに、CentOS 7 のバグと思われるものを発見しました。バグは、kernel-debuginfo パッケージのカーネル バージョンが間違っているようです。カーネルのバージョンは次のとおりです。

上記はカーネル開発バージョンと一致するようです:

ただし、これは次のカーネル バージョンとは一致しません。

正しいパッケージをインストールしようとすると、正しいパッケージが既にインストールされているという誤ったメッセージが表示されます。

これを解決するために、私は最初に試しました:

それは共通パッケージを削除しませんでした。

私が使用したそのパッケージを削除するには:

この後、インストールは正常に機能します。

今私の質問は、これがCentOS 7のバグである以外に、この動作を説明できる人はいますか?

0 投票する
1 に答える
16 参照

database - 別のトランザクションでデータ オブジェクトをコミットした後、あるトランザクションでデータ オブジェクトを読み取る - ダーティ リード?

定義上、ダーティ リードはコミットされていないデータの読み取りです。私の質問は:

同じストーリー内で異なるトランザクションから複数の書き込みが発生している場合 (トランザクション 1、2、3 としましょう)、書き込みの最後にトランザクションの 1 つがコミットされます (トランザクション 1 としましょう)。トランザクション 2 または 3 からの読み取りが続く場合、これはダーティ リードとしてカウントされますか?

例: w1(X);w2(X);w3(X);c1;r2(X).....