[Webinar] Streamline your web hosting managementRegister Today

x
?
Solved

Load Balancing Strategies

Posted on 2009-04-14
15
Medium Priority
?
403 Views
Last Modified: 2013-12-20
OK, let's say I just developed a new websites that will generate hits comparable to that of craigslist.com.  How do I manage to keep up with all the incoming hits?

Basically, I just want an idea of what my options are and to be directed to resources where I can further study them.  I would also be interested to know the answer to this question as it relates specifically to a SQL Server database as well.

Thanks!
0
Comment
Question by:brandonvmoore
  • 4
  • 3
  • 3
  • +1
11 Comments
 
LVL 11

Accepted Solution

by:
anilallewar earned 1000 total points
ID: 24135930
You could follow a typical architecture as below

Load balancer(This is the IP that the DNS would map to) --> Web server(e.g. IIS) cluster --> Application server(e.g. WAS) cluster.

All your static content (images/css etc) will be serviced by the web server while the dynamic content(servlets/JSP if using J2EE) will be serviced by the applilcation server. There are plugins available that direct traffic from web server to app server.
0
 
LVL 5

Author Comment

by:brandonvmoore
ID: 24136016
So in this scenario, does the plugin determine which app server is being the least utilized?  And can you point me to any resources that could give me more info about this and/or other implementations?
0
 
LVL 5

Author Comment

by:brandonvmoore
ID: 24174305
Guess there's just not too many people who know much about this around here...
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
LVL 38

Expert Comment

by:Jim P.
ID: 24181600
In truth, there is really no such thing as a load balanced SQL Server. Once an instance opens a SQL DB, that is the only one that will have it open.

There are some front end solutions that cross-replicate and simulate a SQL load balance. You are going to pay for them though.

Your best bet is to tune the database(s) and instances, and then work from there.
0
 
LVL 5

Author Comment

by:brandonvmoore
ID: 24190339
OK, I said I would 'also' like to know anything about load balancing that relates to SQL Server.  I don't know if you reserved any comments because you thought I wanted only to know about that, but if so I would like to hear anything you have to say about load balancing options and where I could further study them.

As it does relate to SQL Server though:  I realize a single connection can't be split between multiple engines, but do you think a site like craigslist is running their millions of users off of a single connection?  I don't know anything about how they handle this, but I would sure think they'd have multiple db servers that stay synchronized.  Unless SQL Server (or whatever db product) has a way to utilize multiple servers on a single connection, I would say they have multiple connections, which would need some kind of loading balancing in order to be effecient, right?
0
 
LVL 38

Assisted Solution

by:Jim P.
Jim P. earned 500 total points
ID: 24190539
>> I realize a single connection can't be split between multiple engines,

There are multiple connections to the SQL Server instance and database(s), but that instance is the only one that can control that set of databases.

>> but do you think a site like craigslist is running their millions of
>> users off of a single connection?

Oracle has a truly clustered DB setup available. I think DB2 has one as well. I believe EE is still running off a single Oracle instance.

Also, I figure craigslist has multiple databases per region/city.
0
 
LVL 11

Expert Comment

by:anilallewar
ID: 24222526
Please check out the Websphere Application server load balancing redbook. It discusses most of the load balancing strategies using WAS.

http://www.redbooks.ibm.com/abstracts/sg246392.html 
0
 
LVL 5

Author Comment

by:brandonvmoore
ID: 24222576
OK, so it looks to me like I might have multiple database servers that are synchronized and have a connection open to each of them.  The load balancing would be implemented by looking at which database is being the least utilized and using the connection I have open to it.

Furthermore, I could have more than one application server so each one would have its own connection to each of my database servers.

Then in front of that would be the web server and it would distribute incoming requests to the least utilized application server.

I really don't know much about what I'm talking about right now, but from what I gather this seems to be how it would be architectured.  Does this sound like the way it would/could be done or can you give me some better direction?
0
 
LVL 11

Assisted Solution

by:anilallewar
anilallewar earned 1000 total points
ID: 24223308
On the database side you can have multiple database servers only if they are going to service different mirror sites. If you are going to have only 1 site it makes sense to have a clustered DB environment with only 1 active database. The 2nd database can be used for fail-over and can be synced periodically with the active server using replication. The database server can handle a large number of requests simultenously and if you use connection pool on the app server side, you can control the number of DB connections to a large extent.

Like I mentioned earlier a typical load balanced application follows a tunnel structure wherein each component at the start of the tunnel would accept more connection than the next level.

Load balancer(This is the IP that the DNS would map to) --> Web server(e.g. IIS) cluster --> Application server(e.g. WAS) cluster. -> Each application server has fixed number of connections to DB managed through connection pool

All your static content (images/css etc) will be serviced by the web server while the dynamic content(servlets/JSP if using J2EE) will be serviced by the applilcation server. There are plugins available that direct traffic from web server to app server.

Suppose that the Load balancer can service 5000 request; it would direct the requests to 2 Web servers that can service 2500 request. Each of the web servers will in turn direct the requests to a cluster of 2 app servers that can manage 1250 requests each. The app server holds a connection pool of 500 DB connections each.

The assumption is that the number of concurrent requests would reduce down the funnel because of the intermediate processing time involved.
0
 
LVL 7

Assisted Solution

by:sysdba
sysdba earned 500 total points
ID: 25546170
for sql server you can use Federated database system one user front end, 5 databases behind
although correctly designed databases can serve thousands of request per second. or you can design one database for one major functionality and design some king of interconnections.
0
 
LVL 38

Expert Comment

by:Jim P.
ID: 25964715
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Windocks is an independent port of Docker's open source to Windows.   This article introduces the use of SQL Server in containers, with integrated support of SQL Server database cloning.
When trying to connect from SSMS v17.x to a SQL Server Integration Services 2016 instance or previous version, you get the error “Connecting to the Integration Services service on the computer failed with the following error: 'The specified service …
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…

591 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question