Saturday, July 05, 2008

When trying to order pizza today, I get this error on the Pizza Hut web site. The site crashed when making my transaction , and I had to call the bank  to check if the transaction went through.

pizza-hut-error

Is it really that hard to show some care when  running a web site ? I mean, it doesn't take a lot to turn on  Custom Error pages on the web.config and turn off debug mode. Having this sort of error shown on a public web site that is getting a lot of traffic shows lack of care, lack of planning and un-professionalism by whoever built and runs this site. Expecting something to fail and handling the failure gracefully shows that the developer has planned for the unexpected. But not in this instance.  From this it is likely that the site owners didn't use some decent infrastructure to handle fail over, they didn't think of what could go wrong. I was still getting this for about an hour means that they don't have anyway of getting notified to fix it. 99% uptime ? Nah, not for us.

Would I trust my credit card details with them again ? Nope..

Maybe it was because they used business objects written by Van Halen.

Saturday, July 05, 2008 3:09:35 PM (GMT Standard Time, UTC+00:00)  #    Comments [1]  | 
 Saturday, June 07, 2008

 a distributed cache solution for ASP .Net, and its from MS at last. About time there was a solution to the age old problem of session state and scalability. Its in CTP right now, and looking forward to having this in a standard .net distribution.

Saturday, June 07, 2008 2:27:42 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]  | 
 Monday, October 31, 2005

When going through the asp.net forums, one thing I've noticed is that there is a lack of understanding among many devs about ASP .Net caching. The majority of the problems are caused when trying to use the Cache as a reliable in-memory storage medium. The Cache object is not meant to do this.

Cache storage is volatile, It can be garbage collected, it can expire, and it is not expected to be synched in a web farm.

So far I've used the Cache to avoid expensive db hits. I use a refactoring approach to storing data in the Cache.

First I write my usual data access and data binding code with,

   Datatable userDataTable;
   userDataTable = DataUtils.GetUsers();
   //bind and display

 

Now to cache the user date, I refactor the code to this,

DataTable userDataTable;
userData = Cache["USER_DATA"];
if(userData == null){
	userDataTable = DataUtils.GetUsers();
	//code to refresh cache, insert etc...
	Cache.Insert("USER_DATA",userDataTable);

}

//bind and display
 
This simple practice ensures that there is always data, and handles a cache miss gracefully. Any thoughts on this ?
Monday, October 31, 2005 8:58:47 AM (GMT Standard Time, UTC+00:00)  #    Comments [0]  | 
 Wednesday, March 16, 2005

I was looking at how to implement a load balancing/load sharing system for a data centre.  The data centre hosts websites and other servers on a domain name www.mydomain.com (for example). Servers within the data centre are load balanced by Cisco Content Switches. The company wants 3 data centres. The traffic coming to www.mydomain.com should be shared among the data centres providing redundancy and scalability. These 3 data centres are in different physical locations, and will be served by different ISPs (ideally).

 

The solution to this is to implement a DNS based load balancing system. In this solution the primary name server for www.mydomain.com will be replaced with an "intelligent" DNS server.

Instead of replying to DNS request with just one IP address, this smart DNS server will give out the IP addresses based on the load at each of the data centres. The client resolving an IP address for www.mydomain.com will get the IP address of the data centre with the least load.

The DNS server can also stop clients from going to a data centre that is not functioning.

This solution is explained in more detail at http://ntrg.cs.tcd.ie/undergrad/4ba2.01/group8/DNS.html

 

These are some of the solutions available in the market.

 

http://www.sysmaster.com/s_net_dns.htm

 

Cisco GSS Global Server Load-Balancing

 

Wednesday, March 16, 2005 5:46:21 PM (GMT Standard Time, UTC+00:00)  #    Comments [0]  |