問題タブ [copy-on-write]
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.
triggers - 書き込みトリガーでコピー
特別なトリガー テーブルの順序は同じであるinserted
と期待できdeleted
ますか?
そうでない場合、ID 列に影響を与える挿入ステートメントをどのように処理すればよいですか?
本番 (メイン) データベースがあります。本番データベースの最上位層である開発データベースをセットアップしようとしています。開発データベースでは、アプリケーションが変更しないテーブルとビューは、運用データベースと同義です。変更するテーブルのビューを設定しています。これらのビューが更新または挿入されると、データは本番データベース テーブルではなく、セカンダリ テーブルに挿入されます。ビューは、セカンダリ テーブルからすべての行を選択し、次に、セカンダリ テーブルに存在しない運用テーブルの行を選択します (比較は主キー列で行われます)。
私のプロダクション テーブルの 1 つが で、MainDB.App.Data
セカンダリ テーブルがMockDB.MockTables.Data
で、ビューが であるとしますMockDB.App.Data
。モック テーブルを更新または挿入するビューにトリガーがあります。
delphi - レコード配列のコピーオンライト
コピー オン ライト セマンティクスはレコードの動的配列に適用されますか?
レコードの配列を適切に複製するには?
これで十分ですか?:
コピーが完了したら、最初の配列をリセットする必要があります。
こうすればいいの?
c - fork()でコピーオンライトはどのように機能しますか?
fork() でコピー オン ライトがどのように発生するかを知りたいです。
動的 int 配列を持つプロセス A があると仮定します。
配列の要素は、意味のある値に初期化されています。次に、fork() を使用して子プロセス、つまり B を作成します。B は配列を反復し、いくつかの計算を行います。
- B が配列全体をすぐにコピーしないことはわかっていますが、子 B はいつ配列にメモリを割り当てますか? fork() 中?
- 配列全体を一度に割り当てますか、それとも単一の整数のみを割り当てます
a = a+1
か? a = a+1;
これはどのように起こりますか?B は A からデータを読み取り、新しいデータを独自の配列に書き込みますか?
COW がどのように機能するかを調べるために、いくつかのコードを書きました。私の環境:ubuntu 14.04、gcc4.8.2
fork() の後、子プロセスは配列内の数値の半分を変更してから、配列全体を変更します。出力は次のとおりです。
配列全体が割り当てられていないようです。最初の変更フェーズを次のように少し変更すると:
出力は次のようになります。
memory - コピー オン ライト : 父と息子がページを変更した後のステータスは?
プロセスをフォークすると、最初は父と息子が同じメモリ ページを共有します。ただし、そのうちの 1 人がこのページに書き込むと、最初のページがこの変更の影響を受けないように複製されます。これは、おおよそコピーオンライトと呼ばれるものです。
私の質問は次のとおりです。プロセスを fork() してから、子がページを変更するとどうなりますか。ページは一度複製されますが、その後、父親もページを変更します。ページが再度複製されましたか? 父親は、息子だけがすでに複製されていることを「知っています」か?
よろしくお願いいたします。
c++ - C++ - コピーオンライトの基本実装
学校のプロジェクトでコピーオンライトを使用することになっています。私は非常に単純なクラスを試してみましたが、うまくいきませんでした。私はこれを持っています:
couts を取り出すと、すべてが正常に機能するため、奇妙です (valgrind によるリークやエラーはありません)。
どんな助けでも大歓迎です。