2014-04-17 11:11 GMT+02:00 Ajay Garg <ajaygargnsit@stripped>:
> On Thu, Apr 17, 2014 at 2:28 PM, Reindl Harald <h.reindl@stripped
> > Am 17.04.2014 10:55, schrieb Ajay Garg:
> > > I do understand the meaning of Unix "sync" function.
> > >
> > > So, you mean to say that "flushing" and "syncing" are same, in the
> > context of MySQL?
> > please get rid of top-posting and reply-all
> > a flush without a sync is "dear operating system, may i ask you to write
> > that to disk if you find the time to do so" while a sync is "write that
> > to disk" without a nice asking
> Thanks Reindl, that clears it up !!
Keep in mind that if you are using HW RAID controller (and a BBU) the
concept of write-back and write-through are important to have in mind too
whilst thinking about how and when your data is written to disk.
If you enable sync_binlog and trx_commit to 1, it might not necessarily be
committing on every transaction to disk, as it might depend on how you've
configured your controller.
If you have write-through configured, the data will be written to disk and
cache at the same time (this has a performance drawback).
If you have write-back configured, the data will be written to cache (and
then to disk, but _not_ at the same time) so you might lose data if there's
a power failure. When you have write-back, at an OS level your data has
been sync'ed to disk even though this is not totally true.
write-back is better for performance, but you have to keep in mind that you
can lose data (which is not common, but you're not 100% safe).
Hope this helps