Case Study – NCache helps Apex Learning mitigate Session Loss

Telenor Case Study

NCache allows us to be exactly load balanced. Every server has the same number of sessions all the time, which considerably helps scalability.

Rohit Agarwal
Lead Software Engineer
Apex Learning

Country or Region:
United States and Other Countries

Digital Curriculum for Secondary Education

Company Profile:
Apex Learning is the leading provider of digital curriculum for secondary education to the nation’s school districts. The company’s comprehensive, standards-based online courses help schools successfully engage all students in rigorous coursework and prepare them for high school graduation and beyond.

With the Apex Learning digital curriculum, teachers are able to more effectively differentiate instruction and spend more time working one-on-one with students to address individual needs. Multimedia instructional content motivates and engages students, provides multiple representations of concepts, and addresses different learning styles. The ability to move at their own pace allows students to take as much — or as little — time as they need to master the material. The Apex Learning digital curriculum supports success for all students, from those not prepared for gradelevel academic challenges to those capable of advanced coursework.


Alachisoft Product:

Customer Needs Met:

  • Reliability
  • 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.

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

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

Apex Learning scales to 25000 concurrent users with highly available Web App; thanks to NCache.

Download PDF
Rohit Agarwal

"We had 25,000 active users at any given time during school hours. That single StateServer didn’t give us the scalability we needed. We required a way to scale in the future so that we could add more nodes. Therefore, reliability was number one issue and scalability number two."

Rohit Agarwal
Lead Software Engineer
Apex Learning

The Challenge

Apex Learning takes considerable pride in providing a high-quality, complete high school curriculum to districts and schools nationwide through online learning. The company spends much of its time and effort on developing and improving its digital curriculum. Making sure these valuable online educational materials are available to teachers and students when they need them is equally as important.

Tom Stanton, Vice President of Technology, said, "We have students on line pretty much 24/7. I don’t think there’s a point in time when somebody isn’t using these solutions, even at 3 in the morning."

Ensuring reliability, scalability, and maintenance of a highly available webbased solution has some unique challenges. Apex Learning encountered one almost two years ago while using Microsoft’s ASP.NET’s StateServer. In the original architecture the application servers used StateServer to maintain user sessions. Rohit Agarwal, lead software engineer, said, "We were using sticky sessions with our load balancer because every server was running its own local state session server."

With sticky session the user is sent back to the original web server where the session was created, regardless of how much load is on that server. According to Agarwal, "The problem with StateServer is it does not allow the sharing of session data across servers, and we could host only one instance. With StateServer, you couldn’t have distributed caching replication across clusters."

Apex Learning serves schools with considerable numbers of students from the same public IP address. All these students are sent to the web server because the load balancer identifies users based on an IP address. The load balancer determines a user from the particular IP address had his session created on a specific web server and must send him back to that same server.

Stanton noted, "Since session data was sticky to an individual server it was possible to have a situation where one server was at 90 percent capacity while another is only at 10 percent capacity. It’s very difficult to maintain a proper load under these conditions. Initially we addressed the issue by adding more application servers to maintain high availability, but that’s not a long-term solution that will scale with the business."

Tom Stanton

"We have students online pretty much 24/7. I don’t think there’s a point in time when somebody isn’t using these solutions, even at 3 in the morning."

Tom Stanton
Vice President of Technology

High availability was critical to Apex Learning, and not just because the company had contractual obligations to its customers. The learning solutions schools implemented varied widely. Sometimes the learning solution was shared by many students in a single classroom using a projector. Other times the teachers conducted courses in lab settings with multiple systems. Some schools offered individualized instruction online. In all these cases the teachers relied heavily on Apex Learning to be available to ensure student progress and to maintain order. Stanton said, "If we go off the air, and there’s nothing to display, students can’t progress. Uninterrupted instruction time is critical to teachers and the student learning environment. We can’t have a solution that isn’t able to meet these stringent up time requirements."

Along that vein, Agarwal noted, "We had 25,000 active users at any given time during school hours. A single StateServer didn’t give us the scalability we needed. We required a way to scale in the future so that we could add more nodes. Therefore, reliability was number one issue and scalability number two."


NCache Solution

Apex Learning explored several approaches to resolving their reliability, scalability, and high availability issues. However, it soon chose Alachisoft’s NCache distributed caching solution, largely based on favorable reviews by NCache customers.

NCache provided Apex Learning the critical reliability it required since NCache prevents session data from ever being lost, thanks to its replication topology.

Stanton said, "With NCache, we have real load balancing, and now we can take a web server off line and not lose the student sessions state at all. This lets us take an application server offline to apply updates or security patches and then put it back into the rotation and then repeat the process with the other servers. In the past we had to wait for a maintenance window to apply critical patches. Now we can do that work during business hours and teachers and students don’t even know we are doing it."


Total Scalability

Also, NCache moved all the sessions to a common set of caching servers. It replicated the sessions to more than one location, hence immediately removing their need for sticky sessions. Now, they’ve got truly load balance evenly across all eight servers.

Agarwal said, "NCache allows us to be exactly load balanced. Every server has the same number of sessions all the time." Stanton added, "Now that the load is distributed more evenly it has considerably helped the scalability of our system."

NCache proved to be faster and more scalable than the StateServer option Apex Learning relied on. NCache provided the critical feature of scalability or more to the point, "linear scalability." This means that as more servers are added Apex Learning virtually multiplies its capacity. For instance, if it were handling 10,000 transactions per second with one box, adding a second one should provide close to 20,000 transactions per second total. Microsoft’s StateServer does not provide this level of scalability.

Maintenance, closely associated with NCache reliability, was yet another benefit for Apex Learning. After installing NCache and moving all session data to the caching servers, their application servers became stateless, meaning there was no session information being kept on the server. If an application server were to fail unexpectedly it could be taken out of rotation and fixed without disrupting customers. Expanding the application server farm to meet growing business needs becomes easier because the servers are identical and do not require special configurations. Per server maintenance can be kept up to date without having to schedule maintenance.


Powerful Monitoring Tools, Easy–To-Follow Documentation

NCache provided powerful monitoring and administration tools that allow Apex Learning to monitor session activity. It was also easy to install and configure.

Agarwal said, "NCache had better documentation than anybody else. We just followed the PDF document’s instructions step-by-step and we completed the job fairly quickly. NCache provided us the whole package including a session storage module on top of distributed cache."


Apex Learning Moving Forward

Apex Learning continues on a 24/7 basis and "we are across all four time zones. This is where NCache gives us the ability to do rolling releases across our web servers. It’s not something we could have done with the out-of-the-box Microsoft solution," Stanton said.

In 2010, Apex Learning added to its high availability something unique in the education industry: a full Disaster Recovery site, located in Atlanta GA. Should the primary servers in the Seattle location fail for any reason the Disaster Recovery site can take over, ensuring students and their teachers can continue their work. "NCache is in Atlanta as well," Stanton added. "We wouldn’t have it any other way."


What to Do Next?

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