title: What operation ordering guarantees are there without durability (mongo)?
body: <p>Suppose you have an ACID database. Without an explicit guarantee about operation ordering, you can still infer ordering as a result of durability.</p>
  
  <p>e.g.</p>
  
  <ol>
  <li>I insert <code>x</code> into a database and the statement returns  </li>
  <li>Now I insert <code>y</code>  </li>
  <li>because of a Durability guarantee, I know <code>x</code> was made durable before <code>y</code>.</li>
  </ol>
  
  <p>Thus, in event of a crash, I either have:</p>
  
  <ol>
  <li>none of <code>x</code> or <code>y</code> in the database</li>
  <li>only <code>x</code></li>
  <li>both <code>x</code> and <code>y</code>.</li>
  </ol>
  
  <p>Now assume a database with a relaxed durability guarantee. e.g. MongoDB without safemode or getlasterror. </p>
  
  <p>What guarantee do I have that the first operation is made durable before the second operation is made durable?<br>
  Please point me to the part of documentation that claims this, or the appropriate test.<br>
  In event of failure can my database contain <code>y</code> but not <code>x</code>?</p>
  
  <p>EDIT:<br>
  It seems the default (only?) storage mechanism is memory-mapped files engine. Without journaling enabled (now enabled by default), it seems a server crash can result in an inconsistent and irreparable state. I guess the answer lies within the journaling.</p>