Solved

Load Balancing Strategies

Posted on 2009-04-14
15
364 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
15 Comments
 
LVL 11

Accepted Solution

by:
anilallewar earned 250 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
 
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
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 38

Assisted Solution

by:Jim P.
Jim P. earned 125 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 250 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 125 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

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Even if you have implemented a Mobile Device Management solution company wide, it is a good idea to make sure you are taking into account all of the major risks to your electronic protected health information (ePHI).
ADCs have gained traction within the last decade, largely due to increased demand for legacy load balancing appliances to handle more advanced application delivery requirements and improve application performance.
Viewers will learn how to use the SELECT statement in SQL to return specific rows and columns, with various degrees of sorting and limits in place.
After creating this article (http://www.experts-exchange.com/articles/23699/Setup-Mikrotik-routers-with-OSPF.html), I decided to make a video (no audio) to show you how to configure the routers and run some trace routes and pings between the 7 sites…

747 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now