<story><title>MongoDB and Riak, In Context (and an apology)</title><url>http://seancribbs.com/tech/2011/11/07/mongodb-and-riak-in-context-and-an-apology/</url><text></text></story><parent_chain><item><author>dabeeeenster</author><text>&quot;Shortly before JSConf, I had personally spent some time finding out ways to demonstrate that MongoDB will lose writes in the face of failure, to be used in a competitive comparison. Let’s just say that I was successful in doing so, despite recent improvements that 10gen has made. Unfortunately, I am not at liberty to share the results, nor do I think it would be constructive to this discussion. &quot;&lt;p&gt;Why not? Did the author at least contact 10gen with the test case?</text></item></parent_chain><comment><author>Maro</author><text>Disclaimer: I&apos;m the competition.&lt;p&gt;It&apos;s pretty easy to demonstrate data loss with MongoDB if you&apos;re doing replication, but it&apos;s the &quot;normal&quot; behaviour because MongoDB uses asynchronous replication and W=1 writes by default.&lt;p&gt;Set up a n=3 cluster and a client that writes data continously, like:&lt;p&gt;i = 0; while (true) { write(_id:i, data:i); getlastresult(); /* to make sure the client sends it */ printf(i); i++; }&lt;p&gt;Now kill the master. Another node will become the new master. Issue some more writes to make sure the logs of the new and the old master diverge. Now bring back the old master, which will become a secondary, and it will say something along the lines of &quot;finding common oplog point&quot;, and it will discard the writes that it had that were not copied to the other nodes before it was killed.&lt;p&gt;You can verify all this by looking at the i&apos;s that were acknowledged by the old master and printed by the client. The last couple of them will be gone for good.&lt;p&gt;If this is unacceptable to you, then you can run MongoDB with W=majority mode, but with MongoDB W&amp;#62;=2 modes (so-called consistent replication modes) are very slow.</text></comment>
<story><title>MongoDB and Riak, In Context (and an apology)</title><url>http://seancribbs.com/tech/2011/11/07/mongodb-and-riak-in-context-and-an-apology/</url><text></text></story><parent_chain><item><author>dabeeeenster</author><text>&quot;Shortly before JSConf, I had personally spent some time finding out ways to demonstrate that MongoDB will lose writes in the face of failure, to be used in a competitive comparison. Let’s just say that I was successful in doing so, despite recent improvements that 10gen has made. Unfortunately, I am not at liberty to share the results, nor do I think it would be constructive to this discussion. &quot;&lt;p&gt;Why not? Did the author at least contact 10gen with the test case?</text></item></parent_chain><comment><author>moonboots</author><text>I appreciated the tone and contents of the article until this paragraph. Revealing the details of the flaw would allow MongoDB supporters to continue the discussion. I would like to know if it&apos;s related to a design choice or if it&apos;s a trivial bug.</text></comment>