For a site with millions of users what architecture should be best in asp.net
-
Hi I am using asp.net 3.5 , Its my first ever experience that I am building a site which could hold millions of records and 1000's of users can sign in togather, This application is some thing like property real estate. Now the problem which I am facing is the following. Since application could have millions of records and millions of users navigating togather with in the application so what should be the development architecture. If I shall use web service as Bussiness Layer then we need to place to hostings one for service and other for main application where we want to deploy single application on IIS to use this as a product in future. Also if I shall keep the webservice then on each user login or each query system will open a new connection with SQL server which would kill SQL server. If I keep a Bussiness Tier in the middle ( like Transaction Server) even then connection to SQL Server will go to millions when million of users will sign in togather. I dont understand what should be the best as I am just working on this issues now a days to define architecture well before starting development. Any Suggestions or any links which could help me would be highly appreciated. You can consider zillow.com as a type of project I am going to work on. Best Regards Rizwan Bashir http://www.alm-soft.com
-
Hi I am using asp.net 3.5 , Its my first ever experience that I am building a site which could hold millions of records and 1000's of users can sign in togather, This application is some thing like property real estate. Now the problem which I am facing is the following. Since application could have millions of records and millions of users navigating togather with in the application so what should be the development architecture. If I shall use web service as Bussiness Layer then we need to place to hostings one for service and other for main application where we want to deploy single application on IIS to use this as a product in future. Also if I shall keep the webservice then on each user login or each query system will open a new connection with SQL server which would kill SQL server. If I keep a Bussiness Tier in the middle ( like Transaction Server) even then connection to SQL Server will go to millions when million of users will sign in togather. I dont understand what should be the best as I am just working on this issues now a days to define architecture well before starting development. Any Suggestions or any links which could help me would be highly appreciated. You can consider zillow.com as a type of project I am going to work on. Best Regards Rizwan Bashir http://www.alm-soft.com
Our company runs a web site with fairly high load. At high tide it goes up to about 400 requests per second. We have two load balanced web servers, and one database server. The web servers doesn't work very hard, though. At top load they reach 4% CPU usage... It's a three tired application, but the business layer is part of the application running on the web servers, so there is no physical separation between the presentation layer and the business layer.
Rizwan Bashir wrote:
on each user login or each query system will open a new connection with SQL server which would kill SQL server.
There is hardly any risk for that. The database connections are pooled in .NET, so most of the time you will recycle an already open connection instead of establishing a completely new connection. If you just try to minimise the time that you use the connection (open late, close early), each page will use a connection only a few milliseconds, so the server can produce a whole lot of pages per second with only a few connections in the pool. However, to reduce database load you can use caching in the web application. We cache search results (lists of item id:s) and items (cars), so some pages are created without the need to call the database at all.
Despite everything, the person most likely to be fooling you next is yourself.
-
Our company runs a web site with fairly high load. At high tide it goes up to about 400 requests per second. We have two load balanced web servers, and one database server. The web servers doesn't work very hard, though. At top load they reach 4% CPU usage... It's a three tired application, but the business layer is part of the application running on the web servers, so there is no physical separation between the presentation layer and the business layer.
Rizwan Bashir wrote:
on each user login or each query system will open a new connection with SQL server which would kill SQL server.
There is hardly any risk for that. The database connections are pooled in .NET, so most of the time you will recycle an already open connection instead of establishing a completely new connection. If you just try to minimise the time that you use the connection (open late, close early), each page will use a connection only a few milliseconds, so the server can produce a whole lot of pages per second with only a few connections in the pool. However, to reduce database load you can use caching in the web application. We cache search results (lists of item id:s) and items (cars), so some pages are created without the need to call the database at all.
Despite everything, the person most likely to be fooling you next is yourself.
Hi Thanks for the reply and it gives me real comfort that I was thinking in right direction. I was also planning for Bussiness Layer which could be deployed separately and with project depending on the requirement. Best Regards Rizwan Bashir