HN user

wmoss

-4 karma
Posts0
Comments3
View on HN
No posts found.

The quick answer is that MongoDB mmaps it's entire data set, so if you've got more data than ram (likely) the OS is going to constantly have all excess ram allocated to Mongo. This becomes an issue because Redis (very reasonably) assumes that malloc will return quickly, however, if the OS decides it's going to give Redis a dirty page, that malloc call just became disk bound.

I think the move to async frameworks is primarily precipitated by the fact that a file handle (which is, essentially, what an async framework holds per connection) is substantially lighter weight than a thread. When you're talking about writing a server that can handle thousands of concurrent connections, threads just become computationally infeasible.