.NET Load Balancer – Log Shipping

I noticed that there are many companies in Malaysia using log
shipping. Configuring log shipping should be easy for any experienced
database administrators. However, having your applications to
automatically do the failover is rather difficult as you’ll need to
handle the failover programatically by the developers.

So what is log shipping? Log shipping allows you to automatically send
transaction log backups from a primary database on a primary server
instance to one or more secondary databases on separate secondary
server instances. The transaction log backups are applied to each of
the secondary databases individually. An optional third server
instance, known as the monitor server, records the history and status
of backup and restore operations and, optionally, raises alerts if
these operations fail to occur as scheduled.

Some of the problems (I’m referring to only those problems affecting applications) that I noticed on log shipping are:

1. Log shipping occasionally requires an affected database to go offline for log shipping restores.
2. A log shipping configuration does not automatically fail over from
the primary server to the secondary server. If the primary database
becomes unavailable, any of the secondary databases can be brought
online manually.

Based on (1) and (2) you must do one of two things to make your
applications work: either rename the standby server the same name as
the failed production server (and the IP address), or re-point your
applications to the new standby server during actual failover. In some
cases, neither of these options is practical. So I came up with the
idea of building a load balancer. For those who are interested to be
part of this project, please do send me an email at
ervinloh@hotmail.com.

The load balancer is to be developed in C# and runs as a Windows
service. The service is to check the affected database(s) for heath
statistics on a specified interval. I plan to expose the
functionalities of the service through employing technologies such as
WCF. I have yet to decide on the parameters that the load balancer
should check. One of the parameters that I foresee the load balancer
needs to check is ‘Least Privilege’ PerformanceCounter permissions. To
verify the functionalities of the load balancer, an ASP.NET Web
application is to be developed. I have the virtual images ready for
transaction log shipping. I think if the project is successful, we can
modify the load balancer to work on replicated databases.

To be able to participate in this project, you need the following knowledge:

1. C#
2. Visual Studio 2008 (I’ll be using Visual Studio 2008 Professional Edition)
3. LINQ
4. WCF
5. WF (to be used at a later stage to include workflow functionalities into the load balancer- first of its kind in the world.)
6. Windows Service
7. log4net
8. Subversion

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: