Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

If I try to run MongoDB on a desktop-grade machine, what performance should I expect? Let's suppose I'll have a regular SATA drive, something like Core 2 Duo and 4 or 8 GB of RAM. Will it be comparable to MySQL which runs on a middle-grade server machine with SCSI RAID, multiple CPUs and other good stuff?

Also, I'd like to know the same about CouchDB.

In fact, I'm going to try it on an even more crippled machine, like my development netbook or notebook. But I'd like to hear if somebody already has the experience. Add your story if you tried anything like it.

EDIT: To clarify the question, what I want is not a development environment or a desktop application. I'm investigating the possibility of running real web apps with quite some load on a cheap desktop hardware.

share|improve this question
    
Take a look at launchpad.net/desktopcouch –  Shane Madden Apr 6 '11 at 19:52
    
@Shane: well, it's a different story, the requirements for a desktop applications are not like those for a web server. –  katrmr Apr 6 '11 at 21:13
add comment

1 Answer

I can't speak for CouchDB, but for MongoDB, the same as for a server-class machine:

  • If your entire database fits in RAM, excellent performance.
  • If you have to hit disk, lousy performance.

Your "excellent" may not be quite as good as a server-class machine with a wider path between the CPU and RAM, and your "lousy" will probably be worse because of disk/controller limitations, but it's all relative.

If you're using this as a dev/staging environment I doubt you'll have any trouble. If you want to use it in production I'd stress-test a little first (and plan on using real server-class hardware anyway for other reasons).

share|improve this answer
    
Yeah, I've already thought of the 'all in the RAM' way, and hope to get my hands on it. Basically, I think you can get two (and probably more) desktop machines for the price of one server, then stuff all the data in RAM and enjoy very good responsiveness compared to a regular server with Apache, MySQL and all the apps on it, which will inevitably be disk-bound. –  katrmr Apr 6 '11 at 21:21
    
Absolutely -- the same performance rules apply if you are able to fit all the tables in RAM in a SQL database. "RAM Fast, Disk Slow" is still an axiom (though often less pronounced now with the advancements in solid-state disks) –  voretaq7 Apr 6 '11 at 21:23
    
That said, I'm still interested in comparing disk-bound MongoDB/CouchDB to disk-bound MySQL. Aren't there any factors beyond the disk i/o? Like, speed of no-sql queries compared to parsing SQL, speed of in-memory indexes, and whatever other tricks MongoDB uses to optimize its collection queries... –  katrmr Apr 6 '11 at 21:25
    
I can't really speak to performance -- I'm not thoroughly-grounded enough in the internals of MySQL/Mongo/Couch/Postgres/etc. -- though I can say that the extra bits inherent in a relational/ACID-compliant database certainly add overhead. Whether that is measurable or substantial is probably workload dependent. If an "object" or "document" database makes more sense for whatever you're designing though I would go with Mongo or Couch and profile it with your workload. It may be hart to actually become disk-bound... –  voretaq7 Apr 6 '11 at 21:31
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.