We are Japanese Y-Com backed startup. Since we will have "demo day" on 25th of April, the problem we have now is to plan how to scale mongoDBs. We are now using mongoHQ, which is not bad… But maybe we are thinking to change another mongo hosting service to mongo lab as I saw mongo lab have "MongoDB/database expert advice (DBA in the cloud)" with the dedicated plan.
Anyway, before I decide on what to use, could you share your experience on mongo?
Our core is realtime behavior analytics service as SaaS. Our clients implement tags and our system interprets each user behavior to mind in realtime.
The below is our main two types of clients and its traffic. Month by month, we are getting 4 companies of 1. type and 6 companies of 2. type.
1. big E-Commerce companies (5M PV/month)
In this case,
Query: 50~100 times/per second
Insert: 5 times/per second
Updates: 10 times/per second
Data volume…5GB per month. We keep the data for 3months. So, max 15GB.
2. small companies (100k PV/month)
Query: 1~2 times/per second
Insert: 0.1 times/per second
Updates: 0.2 times/per second
Data volume…100MB per month. Keep the data for 3months, so max 300MB.
We never query with mixing more than one companies at the same time. So, essentially, we don't mind which companies are in the same mongoDB.
Our idea how to scale mongoDB is
a. contract with many of shared plans
In this case, we need to ask mongolab/HQ how they put other companies into one server. I am asking mongoHQ/lab.
b. mix dedicated servers and shared servers
If there are pros and cons with dedicated/shared, do you know some?
c. contract one high performance server like dedicated 2+ node replication set mongo.
In this case, it is easy because I don't need to think which companies should go to the same DB. But, I think there is a limit of one server's performance. So, sooner or later, we have to have more than one mongo.
What is the performance capacity of your mongo? What's the server's specification?
I am not so familiar with mongo, so please let me know if I lack some necessary information.