Case Study – NCache for Crucial High Availability at Moonpig.com

Telenor Case Study

NCache is extremely quick and performance is fantastic. It allows us to avoid worrying about the ASP.Net session side of things. As far as the user experience is concerned, there's no discernable delay in loading sessions from NCache.

Jay Jetley
Systems Architect
Moonpig.com
Moonpig.com-logo
 

Country or Region:
UK, Australia, and United States

Industry:
Online Consumer Greeting Cards

Company Profile:
Moonpig.com, an online greeting card retailer, was founded in 1999, during the dotcom era when young entrepreneurs and investors saw great opportunities selling goods via the Internet. Whilst many dotcom ventures fizzled out, the vision of Moonpig's founder and chairman Nick Jenkins, endured beyond those first hard years and Moonpig has established itself as a major online brand.

The company grew steadily from 2000, first selling to UK consumers. In 2004 it moved into the Australian market, and by 2006 total cards sales reached 670,000 for the year. Helped by TV advertising campaigns in the UK, Moonpig's growth increased rapidly to an astonishing nine million greeting cards in 2010. During that year, it expanded its operations to the US.

Out of a total of 6 million customers, nearly half buy on the site at least once a year. Moonpig's major peaks include Valentine's Day, Mother's Day, Father's Day and Christmas.

Alachisoft Product:
NCache

Customer Needs Met:

  • Reliable session storage
  • Scalability
  • High Availability
  • Ease of Maintenance

About Alachisoft:
Alachisoft, a California based company provides NCache and StorageEdge. NCache is an inmemory distributed data cache that lets you cache application data and ASP.NET Session State to boost your application performance and scalability. StorageEdge speeds up SharePoint by externalizing BLOBs and caching BLOB and list data.

You can download a free 30-Day fully working trial of NCache from here.

Alachisoft
Corporate Headquarters
12005 Ford Road, Suite 520
Dallas, TX 75234

US: +1 (214) 764-6933
UK: +44 207 993-8327

sales@alachisoft.com
support@alachisoft.com

NCache allows moonpig.com to maintain very crucial high-availability for their high traffic website by storing their ASP.NET sessions in a reliable and replicated cache storage.

Download PDF
Jay Jetley

"Originally we started off with a single server using InProc caching. But soon, we realized we needed to scale out to more than one server. Initially we tried what was built-in with .NET – meaning InProc and SQLserver – and found those didn't work.

Jay Jetley
Systems Architect
Moonpig.com

The Challenge

In 2006, it became clear that Moonpig's UK web site was in a rapid growth phase, with numbers of visitors and orders placing considerable load on the web site, which was built on Microsoft's ASP.NET framework. Towards the end of 2006, the Moonpig sites were receiving half a million visits a month. By mid 2010, those numbers grew to 2.5 million visits a month.

Very quickly Moonpig realized that ASP.NET Session State InProc and SqlServer storage options were not effective for maintaining high availability in view of this growth.

Jay Jetley, Systems Architect, said, "Originally we started off with a single server using InProc caching. But soon, we realized we needed to scale out to more than one server. Initially we tried what was built-in with .NET – meaning InProc and SQLserver -- and found those didn't work. We literally tried SQLserver for half an hour. It became quite obvious it wasn't going to work and we just went back to one server. We did this before we actually needed to scale out to two servers. However, we were getting to the point where we needed to be able to use multiple servers, not only for load in peak periods."

In this case, ASP.NET Session State storage wasn't able to scale based on InProc and SQLserver for several reasons. InProc has limitations. It was designed for use in a single server, single process environment and doesn't work in a multi-server or multi-process ASP.NET environment. As a result, sessions are lost. Another InProc issue is its memory limitation. As the number of sessions increases in the ASP.NET process, every session requires memory. Memory size of this worker process grows significantly, and in a 32-bit platform, there is a 1GB memory limit on how large a worker process can become.

SqlServer is a tad better, but not much, since it is not an in-memory data store, rather a disk-based data store. All databases are kept on disk because they grow so large that memory is not sufficient to hold the entire database. Thus, a database stores its data on a disk or persistent storage. Due to disk storage, SqlServer performance is not as fast, resulting in a performance drop.

Moreover, SqlServer does not scale linearly preventing a company like Moonpig from smoothly growing a Web farm. Further, as a storage mechanism, it becomes a bottleneck for both sessions and application data. Consequently, a database server doesn't scale for sessions and applications data.

 

The NCache Solution

The search was on for a solution to this difficult session store issue. Moonpig's technical team discovered NCache when reading a wellrespected Microsoft .NET developer magazine published in the US and within a short period, Moonpig installed NCache to resolve the session store problem.

Jetley reports, "NCache is extremely quick and performance is fantastic. It allows you to avoid worrying about the session side of things. As far as the user experience is concerned, there's no discernable delay in loading sessions from Ncache."

” Not only is the session store problem alleviated, but NCache also provides Moonpig some other major benefits. "NCache allows us to maintain crucial high-availability, while precisely handling session storage and effectively doing online updates," Jetley notes.

"This key feature translates into a couple of benefits", he said."First, it means we can simply use a standard network load balancer algorithm doing a round robin. Therefore, we needn't care about which server a user makes a subsequent request to. Eventually, they all have access to the same session. That's a huge benefit."

"Secondly, NCache lets us take servers in and out of the load balancer at will. We can take servers out, apply Windows and other patches, do installs, do code updates, make sure everything is working offline. Then, when we bring those servers back into the load balancer, we know that if someone hits our server, that session will just be there. That's something you can't do with InProc or SQLserver."

"As far as scalability, there's a distinct advantage. If we start slowing down on sessions, we can just add more NCache servers. We've got six Web servers now, pointing to two NCache servers. Those two NCache servers are coping fine. But when we experience increased traffic and those two NCache servers are no longer coping fine, we can just add another Ncache server and know right away we have true scalability."

 

Plans for the Near Term

Moonpig.com is clearly on a roll with visitor numbers and revenues continuing to grow. Yet, Moonpig's management keeps a sharp watch over its website and the escalating customer traffic it experiences on a 24/7 basis. While the company has relied on Ncache for session store, it is now looking to use more of NCache's caching abilities to streamline its card ordering processes.

 

What to Do Next?

© Copyright Alachisoft 2002 - . All rights reserved. NCache is a registered trademark of Diyatech Corp.