NCache enables us to achieve the desired level of fault tolerance in our caching mechanism, along with other benefits. In addition to ASP.NET Session State management, we are also able to host classic ASP Session State with NCache using a COM+ wrapper. This allows us to load balance our Classic ASP Applications, which we were unable to do before. Also, using the Locking mechanism NCache provides, we have been able to implement a distributed Concurrency Control without having to utilize our database.
Country or Region:
The graphically friendly www.campminder.com website says it is a web-based summer camp management and communication system with two portals. One is provided to camp administrators, the other to clients of those camps. In effect, camp administrators log on to this online management portal to perform a variety of administration duties, ranging from determining the number of children coming to camp to entering detailed health data for each child.
Stuart Miller, CampMinder's Chief Technology Officer, says summer is the busiest time of the year since children are at camp and parents use the second portal to get and exchange a flurry of emails, pictures, and news from their kids. Website usage is reduced in the fall, winter, and spring months, however, although CampMinder receives substantial website traffic from camp administrators.
CampMinder is a growing organization. It started out with 10 camps in 2001, and today, it is serving 300 plus and growing. This business growth has placed significant challenges on CampMinder's website's database.
Customer Needs Met:
Alachisoft, a California based company, designs, develops, and markets NCache and TierDeveloper for .NET. NCache, a clustered object cache for .NET, allows customers to boost performance of their applications by as much as 10 times simultaneously enhancing application scalability and reliability. And, TierDeveloper, an object to relational (O/R) mapping code generator for .NET, cuts down development time by 50%.
You can download a free 60-day fully working trial of NCache from here.
12005 Ford Road, Suite 520
Dallas, TX 75234
US: +1 (214) 764-6933
UK: +44 207 993-8327
Chief Technology Officer
One of the primary challenges CampMinder faced was maintaining cached data in a synchronized state with their database across multiple servers. Initially, the solution was an in-house cache management system, which was adequate, but didn't address fault tolerance.
Miller said, "Our homegrown cache management solution was designed to run on a single node and was accessed over the network using Remoting. If the machine hosting that service were to go offline, our application had no rollover, so our system would be brought down."
After researching designs of a multi-node distributed cache, Miller came across NCache that not only provided the level of fault tolerance required, but also offered other key benefits. Miller explained, "Implementing NCache required far less resources in terms of time and money than designing our own multi-node distributed cache."
"We are a growing organization. My goal in this first iteration of development was to create an environment where we didn't have a single point of failure. With the earlier solution, if we lost the machine hosting our caching service, the whole system was affected due to the single node architecture," Miller said.
NCache distributed caching on multiple nodes currently provides a mechanism so that "our system is not dependent on a single machine for caching.", according to Miller.
CampMinder has two servers running NCache, both containing synchronized cached data distributed between them. This allows for fast, multi-node access and processing of that data and further relieves pressure on the database.
Thanks to NCache's Partition Replica topology, as shown in Fig. 1, CampMinder has a system which is faster and more robust, as the caching now can withstand a single point of failure. Partition Replica topology is fast, scalable, and provides reliability through replication.
As an added bonus, Liebherr-MCCtec further enhances its high availability through dynamic cache clustering. In effect, this is the ability to add or remove cache servers from the cache cluster at runtime without stopping the cache or the client applications.
Partition in Partition Replica topology means that the cache is broken down into multiple segments. Each segment is stored on a different cache server. If three cache servers are involved, Partition Replica partitions the cache into three partitions. Each partition or each segment of data is backed up as a replica on a different cache server.
In essence, every server keeps one active partition and one replica of another server's active partition.
Further, Partition Replica topology provides scalability through partitioning. Partitioning means the more servers, the more storage and transaction capacity available. And it provides reliability through intelligent replications.
As far as the other benefits that NCache provides CampMinder, "We now use the Session State feature for both ASP.NET as well as Classic ASP via the COM+ interface," Miller noted. "This allows us to take our legacy application, which still has portions written in Classic ASP and load balance the system," he added.
In the CampMinder Classic ASP-driven website, the application keeps the Session State in process. With NCache, the company can now implement a centralized Session State management system distributed between machines. In case they need to take a particular machine down for maintenance, they're able to without killing their Session State and disrupting customer activities.
"Another benefit which we've taken advantage of is the locking feature," Miller said. "We have leveraged this to provide a distributed locking mechanism throughout the system."
NCache's locking mechanism provides the ability to "lock" an item in the cache. Calls to that item can observe the state of the lock, thus providing a means for concurrency management for code blocks or manipulation of shared data. Prior to this, CampMinder had used the database, but the NCache solution is faster and frees up the database resources.
"Currently, because our database runs on only one machine, this is our 'single point of failure'. As we develop our system to leverage the object caching mechanism in NCache, the load on the database will be reduced, enabling us to extend our client load, and provide more efficient use of the database." Miller asserted.