if O_DIRECT is set, InnoDB tries to use TABLESPACE files in O_DIRECT.
And in log_checkpoint(),
if (srv_unix_file_flush_method != SRV_UNIX_NOSYNC) {
fil_flush_file_spaces(FIL_TABLESPACE);
}
so, tablespace files seem to be flushed even if O_DIRECT is fail.
The problem seems only about ALL_O_DIRECT of XtraDB.
So, how about add following code to the fail case of os_file_set_nocache() ?
if O_DIRECT is set, InnoDB tries to use TABLESPACE files in O_DIRECT. file_flush_ method != SRV_UNIX_NOSYNC) { file_spaces( FIL_TABLESPACE) ;
And in log_checkpoint(),
if (srv_unix_
fil_flush_
}
so, tablespace files seem to be flushed even if O_DIRECT is fail.
The problem seems only about ALL_O_DIRECT of XtraDB.
So, how about add following code to the fail case of os_file_ set_nocache( ) ?
============== file_flush_ method == SRV_UNIX_ ALL_O_DIRECT) {
srv_unix_ file_flush_ method = SRV_UNIX_O_DIRECT;
if (srv_unix_
}
==============