ablog

不器用で落着きのない技術者のメモ

InnoDB の Double Write の話

"Partial page writes is when page write request submited to OS completes only partially. "
MySQL のストレージエンジン InnoDB は partial page writes を防ぐ為に double write という機能がある。page は Oracle Database でいう block。Partial page writes は Oracle Database で言うブロック破損。ユーザープロセスがI/Oシステムコールを発行して、カーネルモードにスイッチ後、以下のレイヤーで一部しか書けてなかったというケース。Oracle Database でソフトウェア的に partial page writes を検知する仕組みは DB_ULTRA_SAFE パラメータのような機能だけど、書込み時は検知できない。Oracle Database on Oracle Linux + ストレージでユーザー空間、カーネル空間、ストレージまで、フルスタックで書込み時に partial page writes を検知するのが T10 DIF/DIX。

https://oss.sios.com/oracle-ch/t10dif-oraclelinux