-3

Scalability seems to be a thing now.

I was in a heated argument with one of my developer who insist on using MySQL for a data intensive application we are building. MySql is easy, fits the purpose and etc. And he wants to run it on a single and very "powerful" dedicated server.

My experience is limited but I just have a hunch that it may not work in the long term. And it's also probably lot cheaper to run 10 smaller servers (probably even VPS) than running a single all powerful server...

My question, would be is it feasible to run everything on one all powerful server? It's not like we're running something humungous like facebook. At peak, we will have about 200Million Data rows, 50000 users with about 1000 concurrent connections at a time.

2 Answers 2

2

I'm not going to comment on the choice of MySQL itself (it's much less important than the other characteristics of this problem), but the idea that 50k users, 1k concurrent connections and 200M rows can be handled by a "powerful server" comes down to a massive but boring "It Depends™". Certainly a powerful server should have no problem containing all 200M rows and indexes of a reasonable database in memory at all times, with plenty to spare for relatively complex operations. Whether it will handle your use case is a completely different problem.

The developer (it sounds like there's only one, which strengthens this) has a really good point though about starting small. As the saying goes, "do things that don't scale." This is because starting small and then having to scale up is a good problem to have, while starting big is inevitably going to lead to premature optimization and lots of extra complexity at the most crucial part of the project, the start. Running even two servers is a whole different beast than running one, and requires solving problems which you don't even have to think about when running a single server, such as handling eventual consistency (the most common solution to the CAP theorem).

-1

If you care about your data or about data availability, no, it makes absolutely no sense. As soon as your single server crashes or is somehow destroyed, you're out of luck during the time it would take to buy another server, set it up properly and restore the latest backups.

2
  • I think it is reasonable to make some assumptions here that aren't explicitly stated in the question, mainly that while the idea is for vertical scaling, they'll still have replication to a second server. That's the common way to use MySQL for something like this. Your answer is right for a very literal reading of the question, but I think a bit misleading without context. Commented Aug 16, 2020 at 10:35
  • @MadScientist: you haven't read the question then. The author stated four times and very explicitly that the intention is to run the database on a single server. Not two. One. Commented Aug 16, 2020 at 11:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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