- Newest
- Most votes
- Most comments
Hi,
Bare SQL Server (even the non-Express edition) is limited to 32'768 simultaneous parallel connections: see https://www.googlecloudcommunity.com/gc/Databases/SQL-Server-Increase-the-Concurrent-Connections/m-p/469792
So, yes, a proxy mechanism is required to share connections if you want to reach 1 million: you will need to be able to share approx at 1 server connection for 30 proxy connections. It means a use case with fairly low utilisation of the server connection per client.
You may want to read this article detailing the proxy: https://ermiaqasemi.me/scaling-your-rds-databases-with-rds-proxy-0fc5eb5c6626
Finally, this article about proxy benchmarking can be useful for you: https://aircall.io/blog/tech-team-stories/exploring-relational-database-connections-from-serverless-compute/
RDS Proxy supports SQL Server since approx 2 years: https://aws.amazon.com/about-aws/whats-new/2022/09/amazon-rds-proxy-rds-sql-server/
I guess that you are aware of limitations of Express Edition: https://josipmisko.com/posts/sql-express-limitations
Best,
Didier
Hi @garevaul, alright, that narrows the options down a lot.
Could you elaborate a bit on the need for all the clients to query the database every minute, instead of checking their licences once per day or hour, for example?
The Amazon RDS SQL Server EXPRESS Edition has certain limitations that make it unsuitable for handling a scenario with 1 million concurrent connections. The EXPRESS Edition is designed for small-scale applications and has limitations on CPU, memory, and database size.
Amazon RDS Proxy provides the following benefits:
Connection Pooling: Efficiently manages a pool of database connections and reuses them, reducing the overhead of opening and closing connections.
Improved Availability: Enhances availability by automatically failing over to a standby database instance in case of disruptions.
Security: Provides secure database access with IAM authentication and secrets management.
RDS Proxy is a useful service, but it will not help you with SQL Express edition. You will need more powerful RDS
That doesn't really sound likely to work or be anywhere near cost-efficient with any database platform, let alone the free Express edition of MSSQL that's intentionally limited to persuade people to buy licences for the higher editions.
Would you like to share a bit more about what you're wanting a million concurrent users to do with the database? For example, are they delivering data to the database, such as measurement data points, or are you looking to have a small number of users centrally update data or settings in the database, from where the broad group of users would read it into their local caches?
Hi
Yes you have asked why 1 million Connections are required.
I am thinking before hand for a future scenario of 1 million Users.
Scenario :: The million individuals/users have 7 Applications installed on their computer. These 7 Applications execute One After the other (once in every 1 minute) and then closes/Exits iitself. And each time each Application starts/executes, it accesses the Same Single Database for a duration of about 3 seconds.
Regards garevaul
@garevault, could you explain a bit what the clients would be doing in the database? Would they be uploading new data into the database? Updating existing data? Only reading data?
I don't think there's any way to make what you are intending work with SQL Server or other SQL databases, but the scale you are talking about is certainly possible with other AWS services. It's impossible to give useful suggestions, however, without knowing if the clients are independent from one another or entirely interdependent, among many other factors. That's why I'm asking for more specifics on what you are looking to accomplish.
Hi @leo
Each will execute a Select Statement to check a value in the database. More like a Application license verification.
Regards garevaul
Hi Leo,
Actually now that you have mentioned it, I think it will be sufficient to even check it like twice or thrice in a day.
I was just being overly strict and cautious.
Thanx a lot for your pointer.
Regards garevaul

please accept the answer if it was helpful