Database Hardware and Software to handle million requests per second? I'm curious about the necessary hardware and software requirements to support a strong MMORPG. For example, what kind of requirement (both hardware and software) would I need if I were to build a system that can incorporate million requests at the same time and avoid lags? How can I keep the game from glitching by processing the requests efficiently?

I understand it depends on proper programming and database structure. Assuming there is 1 table that will have 2 rows updated for every request and there are a million requests, what kind of system and database would I need to do that flawlessly without lags? What amount of time would it take to process all those requests?

Just wondering what I should expect if I'm going to develop a MMORPG.

I would really like to get your feedback/response on this.
It really isn't a database platform problem. All the major databases and operating systems will do fine provided sufficient hardware with sufficient bandwidth to memory, disk, and network are provided.

All databases are built for this kind of scenario -- that is, where you need to update lots of rows from different clients all the time. This is what indexes and primary keys are used for, and the database is optimized for updating in this manner. (i.e., UPDATE your_table SET your_column=your_value where your_key=12)

The hardware requirements are going to be your biggest issue, and I suspect you will need to think about quite a lot here, including:


Failover (what happens when your main server fails?)
Clustering (You may simply need to have more than one database server to handle your load)
Processors (2? 4? 8? 16? Multi-core? Does the db provide multi-core support that is well optimized?)
Memory (The faster the better, but your chipset must be able to handle the bandwidth as well)
Disk (Faster I/O the better. eSATA/SATA or Fiber, etc.)
Network (You'll need lots of bandwidth to handle this kind of traffic)
Virtualization (Does it make sense to build this as real hardware? Why not as virtual servers in the cloud? Amazon / Rackspace / etc.?)


Thankfully a good majority of the scaling issues are handled either at the hardware or db level. That is, you can start your database now on a slow server and as traffic increases you can adjust accordingly with minimal changes to your code or your db structure. What will change is your hardware and your db configuration. Most database servers will support failover/clustering with little to no change to your existing code or structures. (But be sure to research possible costs and the efficiency thereof first)