11 ms·
My own research doesn't back up that this "unsafe write" was done by 10gen for benchmarking reasons, but rather due to an early expected use case (from a footno
by nemild 9y ago
My own research doesn't back up that this "unsafe write" was done by 10gen for benchmarking reasons, but rather due to an early expected use case (from a footnote in part 1 of my series):
Waiting for writes was off by default:
> This "unchecked" type of write is just supposed to be for stuff like analytics or sensor data, when you're getting a zillion a second and don't really care [if] some get lost [or] if the server crashes.
This was rarely the typical use case in most startups - even though the defaults were based on it for a long time.
It’s unclear to me how long this was the top Google result, and it was earlier in Mongo’s life (2009). This may be one of the benchmarks that led to anger at competing NoSQL vendors - and seems to me like a mistake rather than a malevolent effort.
https://www.nemil.com/mongo/1.html#fn2 https://www.nemil.com/mongo/1.html#fn2
_____________________
MongoDB's CTO has also mentioned that if he could go back and change anything it would be this early default, as his earliest customers valued it - but he quickly realized that it caused issues for others.
(Throughout this series, my goal has been to be tough, but fair to both sides)
- concede_pluto 9y agoIf your monitoring can't handle your what system is doing, aggregate locally until it can. Having systematically incorrect stats (because loss is correlated with load) is worse than having none.
- wmf 9y agoThe real question is how many years they left the unsafe default after people pointed out that it was a problem.
- nemild 9y agoIt took a little while (say 1.5ish year from when they realized it was causing issues). According to MongoDB's CTO, this was because they couldn't quickly move their early users from the behavior they were used to.