However, with the addition of some spare parts from other "old" computers, I have on my hands two 2.6 GHz computers with 2 GB RAM and 40 GB HDD in each. Not so bad for "old" computers. Then it hits me: why don't I try out mongodb's replica sets. Then I start brainstorming all of the possibilities, and I think, why don't I document all of this on the web?
I have been learning Clojure this year. It's a language in which my boss wrote a great wrapper around the Java mongodb driver called karras. Since April I have been putting together a web application in Clojure which uses karras and mongodb. At MongoBoston this year, I watched a lot of great talks on interesting features of mongodb. Also, I'd like to learn more about deploying redundant applications.
Anyway, here's what I want to do. Run two physical machines with Ubuntu server. Within each of these host two virtual machines. With the four total virtual machines, create a mongodb replica set and a fallback to keep my application live if either physical machine goes down. The point of documenting my plans here, is to get (hopefully constructive) feedback which will help me build a fairly robust system on two very cheap machines.
I will set some time for installing ubuntu server on both computers the next time I go in the office. Between now and the time this actually happens I have some questions to anyone who feels knowledgeable on the subject.
- Can I even do what is described above?
- Would it be better to oust the VMs simply using 2 instances of mongod on each physical machine?
- What would you do differently given the hardware mentioned above?
Hey Brandon, It's Alex I just found this post not sure if you have gone any further with this yet but i would strongly suggest using the virtual machines. I believe i mentioned this last time you were at my house but in practical tests running servers on virtual machines they actually run faster though a virtual machine. this is compounded in your case by the fact that the amount of ram your using is excess in comparison to the processors. you will get far more efficient processing this way.
ReplyDelete