If you're stuck with mongo in legacy infrastructure
and it doesn't make sense to refactor/architect
it away, I suggest tokumx. It's allowed us to kick the can on this problem for at least another year. Almost no lock contention, far more compact on disk (even cheap disk space adds up) and (what seems to be) a
growing set of users.
I'm optimistic that pg9.4 will be our migration path. But regardless, tokumx has given us the breathing room
to defer the decision.
I was considering tokumx because it seems like scaled better than normal mongodb but to be honest I'd love to move of this database entirely. I'm somewhat unfamiliar with postgres but does it have a storage/querying system comparable to mongo?
If you want to store & query JSON [1], Postgres 9.3 is great! Plus you can index functions, meaning you get cool things like fast JSON look up, and doing case insensitive searches. Which is hard in Mongo, you would either have to do a slow regexp look up, or save a lower case version in your application logic.
CREATE INDEX ON members ((lower(my_json_data->>'email')));
As the communities grow, more people learn about mongodb's limitations and feel the need to switch. I like your "ruby" example because what mongodb faces is really similar: Easy to start with, hard to go... well... "web-scale" (by the way is this expresson becoming a word or has it already been?)
I think that is the point. I would tweak the definition a little and say "Legacy is anything that's not fashionable anymore, but working and still being used just because it's working."
I'm optimistic that pg9.4 will be our migration path. But regardless, tokumx has given us the breathing room to defer the decision.