title: How do databases perform atomic I/O?
body: <p>Databases like Oracle, SQL Server etc are very good at data integrity. If I wanted to write a data store that I knew would either store some data or fail (i.e. be ACID) then I would use a database like MySQL underneath it as the <em>actual</em> store because those problems are already solved.</p>
  
  <p>However, as a non comp-sci graduate, I'm left wondering how ACID <em>actually works</em> at a very low level. I know that Oracle for example, writes data to "online redo logs" all the time, then performs a "commit" at some point when the app signals the transaction should be committed.</p>
  
  <p>It's this "commit" stage that I want to zoom right in on and understand. Is it a case of just writing "one more byte" to disk, or flipping a <code>0</code> to a <code>1</code> to say a given row has been stored successfully?</p>