Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why is everyone paying so much attention to MongoDB? It has been criticized a lot for its design and implementation problems, but still for some reason it's so popular.

To name a few,

* word-unaligned memory structures, which leads to incompatibility with virtually any non-x86 CPU architecture

* explicitly little-endian processing in the server, so there is no way to run the original code on any big-endian CPU architecture.

There has been a patchset which was tested on a SPARC CPU, but last time I asked the author, the 10gen team completely ignored this effort.

apart from that, there have been reports of data loss without any failure note



Yeah, how dare people like what you don't like?

> It has been criticized a lot [...] but still for some reason it's so popular

Since you provide no data or sources for "criticized a lot" it's no surprise that you don't provide the same for "so popular". I assume you mean "I've seen some headlines on Hacker News about it".

> incompatibility with virtually any non-x86 CPU architecture [...] no way to run the original code on any big-endian CPU architecture

Huh. Maybe that's only a problem for people on non-x86 CPUs then?

Look I'm really not a fan of Mongo but "It has been criticized a lot [...] but still for some reason it's so popular" describes every technology ever. Get over it.


ok, details on the criticism:

1. Look at their BSON format specification: http://bsonspec.org/#/specification They name it a new "standard", and at the same time they have things like "\x11" -> Timestamp, a special internal MongoDB data for replication. It's like the IP protocol specification would have vendor-specific parts.

2. The BSON format is not word-aligned, which makes it quite inefficient to process in memory. Besides, the current Mongo server accesses it with word-unaligned pointers, which is only possible on x86 architecture.

to me, it just tells that the database engine design was given to the wrong people.


> Since you provide no data or sources for "criticized a lot"

there have been tons of discussions, also on HN, very easy to google


> Maybe that's only a problem for people on non-x86 CPUs then?

actually it's a problem for application developers. I cannot rely on a backend system with limitations like these. So I'll have to go back to the RDBMS backend or look for other nosql alternatives, but definitely mongoDB is off my list


The world runs on x86. You might have some legacy systems running SPARC or POWER, but those systems are unlikely to reside in MongoDB's target market anyway.

Arguing everyone else should ditch code that happens to not work on your pet architecture is a pretty self-centered worldview.


actually the number of ARM processors is growing, and not only in the mobile sector. There have been some efforts to bring ARM architecture into the server market. Also China is building its own MIPS-based supercomputer. Also the SPARC architecture is actually developing, although it's a pity to see it swallowed by Oracle. IBM is still shipping PowerPC servers.

besides, there are huge SPARC-only datacenters still running.


> There have been some efforts to bring ARM architecture into the server market.

None of which have really gone anywhere.

> China is building its own MIPS-based supercomputer.

You think a lot of supercomputers are going to be running Web-targeted NoSQL datastores?

> Also the SPARC architecture is actually developing

So its partisans have insisted for the past decade. The real world doesn't much care. Sun/Oracle was less than 2% total market share for servers in 2010, by the way -- and that includes their x86 sales.

> IBM is still shipping PowerPC servers.

How many? To whom? They had 13% market share in 2010, and they sell a lot more x86 servers than POWER.

> besides, there are huge SPARC-only datacenters still running.

There won't be much longer, and the ones that are mostly run legacy infrastructure.

There's not even a convincing case for 10% of new servers running not-x86. Greenfield systems don't care about not-x86. It's just irrelevant to pretty much everybody. There's no reason for the MongoDB guys to make it any sort of priority.


a thoughtful software designer would build an endian-neutral and memory-aligned architecture in the first place. In case of Mongo, the designers don't seem to really understand how the computer hardware operates on the low level.

for the rest of your points, neither you nor me can tell what would be the most selling server architecture in 3 years. Do you intend to design software with unpredictable lifespan? I don't.


> You think a lot of supercomputers are going to be running Web-targeted NoSQL datastores?

if they succeed in building a powerful architecture which beats Intel in performance per kilowatt, they will start selling commodity servers with it.

besides, come on, it's a database engine. What difference does it make if I have an enterprise or a web application?


Didn't you hear? Mongodb is webscale and runs in the cloud. That's all you really need to know, please ignore any rational arguments and just repeat webscale and cloud endlessly.

Remember that if you run into scalability issues in the cloud all you have to do is spin up 300 instances to get the performance of one 5400 rpm laptop drive. The cloud is webscale your laptop is not. Also please ignore that a laptop with an ssd will need about 3000 instances to get the same performance.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: