I have a large collection with more that half a million of docs, which I need to updated continuously. To achieve this, my first approach was to use `w=1` to ensure write result, which causes a lot of delay. 

```
collection.update(
    {'_id': _id},
    {'$set': data},
    w=1
)

```

So I decided to use `w=0` in my update method, now the performance got significantly faster. 

Since my past bitter experience with mongodb, I'm not sure if all the update are guaranteed when `w=0`. My question is, is it guaranteed to update using `w=0`?

**Edit**: Also, I would like to know how does it work? Does it create an internal queue and perform update asynchronously one by one? I saw using `mongostat`, that some update is being processed even after the python script quits. Or the update is instant?

**Edit 2**: According to the answer of Sammaye, [link](https://stackoverflow.com/a/26934182/907044), any error can cause silent failure. But what happens if a heavy load of updates are given? Does some updates fail then?