0

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.

2
  • Take a look at launchpad.net/desktopcouch Apr 6, 2011 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, 2011 at 21:13

1 Answer 1

1

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).

4
  • 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, 2011 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, 2011 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, 2011 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, 2011 at 21:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .