保証は先に実装
答えて
sync()
システムコールは、事実上何の助けではありません。ディスクへの書き込み操作をスケジュールすることが約束されていますが、それはすべてについてです。
使用される通常の手法は、正しいオプションを設定するときにディスク・ファイルのためのあなたopen()
ファイルディスクリプタ:O_DSYNC
、O_RSYNC
、O_SYNC
。しかし、fsync()
とfdatasync()
は、ほぼ同じ効果に近づきます。 POSIXで標準化されていないものの、しばしばサポートされているO_DIRECTIO
も見ることができます。
最終的には、DBMSは、一枚のディスクに書き込まれ、同期されたデータが安全であることを約束するO/Sに依存しています。 DBMSが最後に書き込んだものをデバイスが返す限り、たとえキャッシュのために実際のディスクにいなくても(不揮発性キャッシュなどにバックアップされているため)、重要ではありません。もし、あなたが最後に書いたもの(そしてディスク上で安全だと言われていた)が保証されていないNAS(ネットワーク接続ストレージ)を持っていれば、DBMSはそれをしなければならない回復。したがって、DBMSを慎重に格納する場所を選択し、ストレージが分かりやすく動作するようにします。ストレージが仮想ディスクのように十分に機能しない場合、データが失われる可能性があります。
DirectIOは、この質問が尋ねる保証を提供しません。しかし、OSYNCのフラグを立てると、何が期待されているのかが分かります。 – ArekBulski
はい、カーネルの最近のバージョンでfsync
は、プラッタのディスクとディスクハードウェアバッファにフラッシュメモリ(バッファキャッシュ)の両方を行います。マンページでは、古いカーネルは最初のことしかしていないと言います。
説明FSYNC()転送(「フラッシュ」)は、すべての(用すなわち、修飾されたバッファキャッシュページ)ディスクにファイルdescrip- TOR fdで 呼ばれるファイルの にコアデータを改変しますデバイス(または他のパーマネント 記憶装置)を使用して、システムがクラッシュまたは再起動した後でも、変更されたすべての情報を取得することができます( )。 これには、 が存在する場合にディスクキャッシュを介して書き込むか、またはフラッシュすることが含まれます。 が転送されたことをデバイスが報告するまで、 コールはブロックされます。また、ファイルには というメタデータ情報がフラッシュされます(stat(2)を参照)。
古いカーネルでfsync()の実装が使用されており、あまり使用されていない ファイルシステムでは、ディスクキャッシュをフラッシュする方法がわかりません。これら 例のディスクキャッシュでは、安全な動作を保証するためにはhdparm(8)または sdparm(8)を使用して無効にする必要があります。
これは、アプリケーションが要求することができるものを指します。 Fsyncは、ファイルシステムがアプリケーションに提供するインタフェースであり、ファイルシステム自体はその下に別のものを使用します。ファイルシステムは、障壁、あるいはジャーナルをコミットするためのむしろ明示的なフラッシュとFUA要求を使用します。Look at LWN post.
- 1. 幅優先検索実装
- 2. 幅優先アルゴリズムの実装
- 3. データ検証実装
- 4. スプリングフォーム検証実装
- 5. 実装JWT認証
- 6. TCPはインオーダーデータ伝送をどのように実装/保証しますか?
- 7. Unity3Dでの先進的な実装
- 8. Brodal優先度キューの実装
- 9. Phonegap: - Snapchat認証の実装
- 10. ダーツ/フラッター認証の実装
- 11. トークン認証の実装
- 12. カスタム認証(MVC5)の実装
- 13. 先入れ先出しキューを実装するJavaクラス
- 14. フォームによるバックボーン検証の実装
- 15. Java保証コールバックオーダー実行
- 16. どのようにJavaScriptの検証を実装するには?
- 17. Meteorスクリプトは他のものより先に実行されることが保証されました
- 18. ATSに優先キューの実装がありますか?
- 19. エンティティフレームワークコアrc2で型保証されたenumパターンを実装する方法
- 20. オブジェクトの保証されたファイナンス動作を実装する方法
- 21. のC#で型安全なツリーの実装(型保証されたノード)
- 22. ノードにトークンベースの認証はどこで実装しますか?
- 23. socket.ioは認証をどのように実装しますか
- 24. PHPで認証APIを実装する
- 25. Tomcatでカスタム認証を実装する
- 26. Ember-validationレイジー検証の実装方法
- 27. MVCでの検証の実装
- 28. 監査証跡とHIPAAベストプラクティスの実装
- 29. PHPのSoapServer接続認証の実装
- 30. JWT認証とリフレッシュトークンの実装
私はSQLiteサイトの説明を見ていきます。これは、ハードウェア(同期)フラッシュが使用されている時の概要を提供するようにアプローチがどのように使用されたかをカバーします。 –