二重書き込みバッファがあるシステム表領域内の記憶領域InnoDB
のデータ・ファイル内の適切な位置に書き込む前に、バッファプールからフラッシュされたページを書き込みます。唯一の二重書き込みバッファにページをフラッシュすると、書き込み後に行いInnoDB
、その適切な位置に書き込みページを。オペレーティングシステム、ストレージサブシステム、または存在する場合のmysqldプロセスクラッシュはページ書き込みの途中で、InnoDB
クラッシュ回復中二重書き込みバッファからページの優れたコピーを見つけることができます。
データは常に二回書かれているが、二重書き込みバッファは、Oオーバーヘッドか二度、多くのI / O操作などの多くのI /として二度必要としません。データは、単一で、大きなシーケンシャルチャンクとして二重書き込みバッファに書き込まれるfsync()
オペレーティング・システムへのコール。
二重書き込みバッファは、ほとんどの場合、デフォルトで有効になっています。二重書き込みバッファ、セット無効にするにはinnodb_doublewrite
0にします。
システム表領域ファイル(ibdataファイル)は、原子の書き込みをサポートするフュージョン・アイオーデバイス上に配置されている場合は、二重書き込みバッファリングは自動的に無効になり、アトミック書き込みはすべてのデータファイルのために使用されているFusionは-IO。二重書き込みバッファ設定はグローバルなので、二重書き込みバッファリングは、非フュージョン・アイオーハードウェア上に存在するデータファイルの無効になっています。この機能は、フュージョン・アイオーハードウェアでサポートされており、唯一のLinux上のフュージョン・アイオーNVMFSのために有効になっています。この機能を最大限に活用するために、innodb_flush_method
の設定がO_DIRECT
推奨されます。