2

I know AP server meet C10K problem can use Load Balance to be solved.

But RDBMS server in my experience is very difficult to make load balance, especially for writing db, it should meet the client 10000 problem

Therefore there's a question 'How do RDBMS solve C10K problems?" It's also load balance?

kdm.J
  • 41
  • 3

1 Answers1

4

This is an extremely broad question, but anyway:

Typically this is solved using connection pooling. To serve tens of thousands (or millions) of concurrent users, you typically need way less concurrent connections on the database ("hundreds"). This is especially true for web-applications.

Web-Applications (where you get that number of concurrent users) are typically also more read intensive than write intensive. So load-balancing read requests already takes away a lot of load.

For "traditional" Client/Server applications, you typically don't have that high number of concurrent database sessions, but for those, this is very often dealt with by scaling vertically: increase number of CPUs, increase RAM, increase number of harddisks to allow more concurrent work to be done (high-end servers with 512 CPUs and more and disk arrays with thousands of disks are not unheard of)

Different databases products provide different scale out strategies. Multi-Master setups (e.g. "shared nothing" architectures) are one way to do that. But the details on how that is implemented are completely dependent on the concrete DBMS product.