How RDBMS solve C10K problems, it's also load balance?
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 (&quot;hundreds&quot;). 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 &quot;traditional&quot; 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. &quot;shared nothing&quot; architectures) are one way to do that. But the details on how that is implemented are completely dependent on the concrete DBMS product.