0
\$\begingroup\$

I don't need an exact number but I want to know roughly how many MySQL servers do I need to rent if I were to develop an online RPG game that has roughly 100000 users per day (assuming on average 1 hour per user-day)?

To clarify a little bit, I am asking for only the number of MySQL servers and this does not include other API servers. MySQL servers are used to save user data such as name, level, weapons, inventory .etc.

Also since master servers are more expensive than slave servers so I would like to know how many master servers are needed and how many slaves are needed per master. Again, I only need a rough estimation based on experience and feeling, not an exact number.

If anyone has experience about this number and are kind enough to share it I will really appreciate.

\$\endgroup\$
7
  • 2
    \$\begingroup\$ What makes you think you'll need more than one? Tbh this sounds a bit like a fantasy question, if you had a game ready to be released anytime soon you could just measure how hard your DB is being hit. \$\endgroup\$ Commented Sep 29, 2021 at 8:31
  • \$\begingroup\$ The problem is I don't have a game to be released soon and I need to estimate how much money I will need to spend on these machines in order to decide if I have to cut some functionality of the game. Some conference article I found on this topic suggests multiple MySQL servers are needed. However the article did not tell how many it actually used. Link to the article: vdocuments.net/mysql-for-large-scale-social-games.html \$\endgroup\$ Commented Sep 29, 2021 at 8:37
  • \$\begingroup\$ How do you know it will be 100 000 per day and only 1 hour? Could be 100 per day but they play 10 hours or 1 000 000 with 10 minutes. It is almost impossible to guesstimate this, also the reason why so many online games usually have server issues at launch. \$\endgroup\$ Commented Sep 29, 2021 at 9:05
  • 2
    \$\begingroup\$ @cr001 the point is the fact that you even ask this question is in itself a strong hint it's way to early for you to ask this question. Try developing something that works before worrying about what troubles you might have if you're - to be frank - unreasonably successful. All this time worrying about what to do about 100,000 daily users is wasted in the more likely case you'll get a couple dozen, and that's assuming you'll be able to finish your project to begin with. \$\endgroup\$ Commented Sep 30, 2021 at 15:51
  • 1
    \$\begingroup\$ @cr001 think about the least successful game you can think of. That's still way more successful than average given that you even know it exists. Sorry to be harsh but you seem to have super unrealistic expectations given how little experience you apparently have \$\endgroup\$ Commented Sep 30, 2021 at 15:55

1 Answer 1

5
\$\begingroup\$

I'm sorry, but we can not even give you a rough estimate as long as we do not know anything about your game. We do not know how many SQL queries each player generates. It could be anything between one SELECT and one UPDATE per session (one when they log in and one when they log out) or they could be generating multiple queries per second. And we also don't know how complex those queries are. They could be simple ones which only take microseconds to answer, or very complex ones which keep your whole MySQL cluster busy for seconds.

So in order to get at least the order of magnitude correct, you won't get around making a load-test. Tell your development team* to develop your gameserver to a level that it can access a database and send a couple queries which are similar to the usage patterns you would expect from the clients. Then spin up a small SQL server for load-testing. SQL queries will scale with the amount of data in the tables you query. So you also need to generate an appropriate amount of test data. Then simulate a couple thousand players on your server, check the load on the SQL server and extrapolate.

* You do have a team, right? MMORPGs are among the most complex and expensive games to develop and operate. They are not projects you can pull off as a solo developer.

\$\endgroup\$

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.