Interesting, I recently worked on Project4Awesome, a community event on Youtube. Our site used a single MongoDB node on a relatively standard server and handled >100k pageviews in 24 hours with no caching. That being said, I've worked with Mongo before and know many of it's issues, so I knew what to expect.
Though, without meaning to criticize the author too much, increasing various ulimits should be standard on pretty much any database server, I would have thought?
It is hard to tell but it seems like he's talking about serving 1/3 of your daily traffic in a few minutes. When web servers fail, they tend to fall off a cliff.
Indeed, but Mongo is actually quite good at failing predictably. I think the biggest issue is not Mongo, but failing to test the application correctly. Particularly when working with a new technology. Mongo isn't the best fit for everything but nearly all the issues he describes are more down to not having enough time to plan and test before the project, and one would have probably encountered similar issues if using nearly any software at that scale, with no prior knowledge or tuning.
i've checked how many pageviews we've got the very next day, it's >100K as well. that's without caching. i have not observed any problems that day. the real deal here is handling such jump in a very few seconds.
and yes, increasing ulimits should be standard. one does simply forgets every single optimization when you just have to deliver a working app.
Sudden increases are hard for any app. I just find it strange that, when you talk about Redis with such familiarity, you'd choose a new technology with 4 days to launch. An F1 car might be fast, but if I had to race one I'd end up in a wall.
In saying that, I'm quite envious of your job, that sounds pretty cool (until things go wrong).
it is definitely both cool and exciting but depressing and stressing as well. i think every developer should have this experience at some point of their carrier.
Though, without meaning to criticize the author too much, increasing various ulimits should be standard on pretty much any database server, I would have thought?