Thursday, October 05, 2006

1 Billion Queries Served in 10 days

I've been working on a high volume client completing a very customized platform. They needed such things as support for 10K+ concrete products and virtualization to bring that total up to 100K+. The core modifications for this were extensive but not only did it need to accomodate functional requirements but also scale with enterprise level traffic (10,000+ concurrent users). As if that weren't enough they also needed to integrate seamlessly with their distributor servers for regular XML inventory and orders updates.

The solution for the product virtualization entailed that I first remove the stock osC attrbutes system since IMO it is useless for large catalogs. The shear amount of administration for each product setup would have been several thousand man hours and taken weeks if not months. Another requirement was that inventory be tracked per option. For example, let's say that there is a costume called "Test Costume". There are several attributes (or options) such as size, color, etc. As each one is sold out it needed to be removed from customer display. All of these were easily handled with the highly customized options core.

The next task that was approached was the XML integration with the distributor. Basically this is a complete backoffice integration that syncs not only the inventory levels but also the orders. As the order goes through received, picking, and finally shipped it updates the orders status with customer notifications. In addition, it is fault tolerant with queue redundancy.

Now the fun problem to work on...high traffic volume. For this I naturally selected a clustered configuration with multiple web, load balancers, and DB servers. The cluster currently can support 5K concurrent users without breaking a sweat. In the future if the site encounters a traffic spike (AdWords campaign, etc.) scaling is as easy as adding another node and a fast configuration change in the load balancer.

Since the cluster went live 10 days ago it has served almost 1 billion queries and climbing by about 100 million queries daily. All the while it is sustaining sub .1 second page render times.

...so...for all those people that have been asking me what I've been working on there you go. Want to see the site? Here you go: Halloween Costumes