Case Study – MazeFeedback Attains Synchronization with NCache

Telenor Case Study

With NCache, we are able to cache most of our data and give our customers an outstanding experience. Without NCache's OutProc service, we would not be able to cache the same amount of data and our page performance would not be as effective.

Stian Strandli
Systems Architect
Maze Feedback
MazeFeedback-logo
 

Country or Region:
Norway, UK and Australia

Industry:
Business Performance Improvement

Company Profile:
Maze Feedback (www.mymaze.com), headquartered in Oslo, Norway with offices in London and Sydney, Australia helps retail, sales, and service groups to improve their performance and shows its customers measurable results. Its mission is to reduce variation between top performers in a customer group and other workers by moving average performers towards “best practices.” In conducting its business, Maze Feedback has learned that within its customer groups, there is a large variation in performance across a group. That variation covers such areas as customer satisfaction, loyalty, sales, payroll, waste, campaign execution, and other areas.

In conducting its business, Maze Feedback has learned that within its customer groups, there is a large variation in performance across a group. That variation covers such areas as customer satisfaction, loyalty, sales, payroll, waste, campaign execution, and other areas.

Alachisoft Product:
NCache

Customer Needs Met:

  • Out of process caching
  • Distributed and synchronized caching
  • Data replicated for high reliability
  • Dynamically add or remove cache servers at run time
  • Ability to keep data in a separate process

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

MAZE figured that by keeping cache on the web server, they would get good performance and at the same time minimize network traffic.

Download PDF
Stian Strandli

"We host cache on our web servers. And, NCache allows us to add or remove cache servers at runtime without stopping our application. And, NCache cache cluster is self-healing and automatically adjusts to these changes. And, we know that we can always move the cache to a separate tier seamlessly without making any code changes to our application. That's a major benefit NCache provides for us."

Stian Strandli
Systems Architect
Maze Feedback

The Challenge

Some companies use the standard ASP.NET Cache object, an InProc standalone cache with multiple processes running an application on the same Web server. In these situations, each process has its own copy of the cache, hence a duplication of data. It is fast as long as a single server and single process are being used. However as soon as you have multiple processes on the same servers or multiple Web servers, you have multiple copies of the cache not synchronized with each other.

Maze Feedback only has one active web server and a passive failover. That passive failover is enabled if the other server fails or when it is maintained. The ASP.NET framework Maze Feedback uses has the concept of application pools. Each application pool can run in a separate process, but cannot share a cache across applications pools. The data that mymaze.com caches is common across different application pools. But ASP.NET's InProc couldn't handle mymaze.com's requirements. It was not securable to multiple processes, servers, or application pools.

Stian Strandli, Maze Feedback's System Developer, said, "We've separated our application in multiple projects or application pools to get more processes and memory consumption. Plus, if one should hang or crash, it can take down the whole system.

The biggest problem using InProc is that there is not a way to empty the cache between processes. If two different application pools had to fetch some slow data at the same time, they both had to do it, instead of utilizing each other's cache. This became an intolerable situation due to the dramatically escalating web traffic we are experiencing."

 

The NCache Solution

Strandli said, "What we needed was an out of process caching solution, not InProc, but also one that was distributed because we needed to synchronize across the Web farm." NCache provided the right answers. As an out of process cache, NCache doesn't reside within Mymaze's ASP.NET application process. Thus, it provides the ability to keep data in a separate process.

By using NCache, Mymaze now has a common cache for all application pools. This means multiple processes share a common cache either on the same server or even across multiple servers. This major feature allowed Mymaze to:

  • Scale the application and share the cache
  • Cache as much data as possible
  • Not have duplication or date integrity problems

"With NCache, we are able to cache most of our data and give our customers an outstanding experience. Without NCache's out proc service, we would not be able to cache the same amount of data and our page performance would not be as effective", Strandli stated.

Mymaze.com uses NCache by hosting it on the Web servers. Mymaze.com fetches application data from the database in the form of data sets and directly stores them into the cache. Strandli noted, "We figured that by keeping the cache servers on the web server, we would get good performance and at the same time, minimize network traffic."

Initially, Mymaze.com implemented its own code to cache ASP.NET ViewState data, as well as caching it in NCache. However, NCache 3.8 provided Mymaze.com a module that automatically did that, hence that original code didn't need to be maintained any longer. Mymaze.com removed that code and plugged in NCache's own feature of cache in the ViewState.

With NCache, each ASP.NET page can fetch anywhere from four to 2,000 SQL queries/cache fetches, depending on how much information is presented. Thus, NCache provides a major performance boost by eliminating innumerable trips to the database. Also, NCache allows Mymaze.com to use caching in a multi-server, multi-process environment, and it synchronizes the cache across all the servers to eliminate any concerns. Whatever data is cached is immediately shared across all servers, processes, and application tools.

"When we have the need to add another Web server we can easily add another NCache server on that machine and synchronize them. Or we can move the caching to a separate machine and they can both connect to the same cache server. We can add or drop servers at run time without stopping our application. That's a major benefit NCache provides," Strandli said.

Currently, Mymaze.com uses NCache for application data and ViewState caching, but is not using it for storing ASP.NET session state. Instead of using the standard ASP.NET session state object, Mymaze.com implemented its own custom session state object; it has its own database calls to go to and store in the database and fetch it from the database. However, short-term plans call for using NCache to store sessions.

"With NCache, we can easily add another web server and use the same cache server. When we need to expand our web server count, we an easily move our session storage to NCache and maintain full flexibility and 100 percent uptime on our session storage and cache", Strandli said.

 

What to Do Next?

Signup for monthly email newsletter to get latest updates.

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