-1

My web service writes to a mongodb and I notice that under load, the writes are failing a lot. Reading this documentation I see that by default the settings are set to "Acknowledge" and reading this post It seems I need to set it to a higher setting (safe mode - which seems to be deprecated). So my question is , how should I initialize my mongodb such that my web service will "always" write to the db (or throw an error trying) and not fail (assuming it can write :) )

From what I understand I need to set the "write concern" but not clear on how to set it to "Assure success in writing to the db"

The code I am using now to retrieve the Db is :

MongoClient client = new MongoClient(connection_string);
var server = client.GetServer();
Database = _db = server.GetDatabase(dbname);
Community
  • 1
  • 1
Avba
  • 14,822
  • 20
  • 92
  • 192
  • "writes are failing a lot"? How so? – WiredPrairie Jun 23 '13 at 15:26
  • "safe" == "acknowledged" - the terminology was changed and the current default is exactly what SAFE meant before, as Derick says. You need to provide more information as it seems likely that something else is the problem (and therefore a different solution will be needed). – Asya Kamsky Jun 23 '13 at 23:48
  • Acknowledged should throw an error of it wasn't able to write to the DB, Yet looking at logs I see that all request were OK. Should I look at some result, if not successful try again ?? – Avba Jun 24 '13 at 06:52

1 Answers1

0

Your connection string needs to have the option w=1 for this, which is the default in later versions of the driver. This looks like the following in the connection string:

mongodb://localhost/?w=1

But this is the default.

You write that "writes are failing a lot" - how do you see that? By documents not being in the database, or by getting errors? Let me know and I'll update the answer.

Derick
  • 35,169
  • 5
  • 76
  • 99
  • I sent thousands of identical requests and they were all getting 200 response back (No error was thrown). Each request writes to the DB identical data - yet number of successful writes < number of sent requests... – Avba Jun 24 '13 at 06:50
  • MongoDB doesn't send "200" errors. How are you sending things to MongoDB? – Derick Jun 24 '13 at 09:13
  • GetCollection().Save(entity); – Avba Jun 24 '13 at 12:37