Cookie Consent by Free Privacy Policy Generator Case Study - Top European University - NCache

Case Study - Top European University

 

Top European University

We love NCache. Not only was the migration simple, but its .NET native design truly delivers on our performance goals. It is perfect for our LMS.

Software Engineer
University's Tech Department
 

Country or Region:
Switzerland

Industry:
Education and Research

Company Profile:
Founded in 1898, this Top European University is a prestigious public institution renowned for its academic excellence and expertise in business, economics, law, and international relations. Home to a globally acclaimed Executive MBA program, it is clear that their philosophy of combining the latest teaching methods with cutting-edge research is paying off.

 

Alachisoft Product:
NCache

Customer Needs Met:

  • Performance
  • Scalability
  • High Availability
  • Data Integrity

About Alachisoft:
Alachisoft provides a high-performance in-memory distributed cache called NCache. NCache is an Open Source middleware that runs in a production environment and boosts the performance and scalability of .NET web apps, SOA service apps, and general high-traffic server apps. Since 2005, NCache has proven essential to hundreds of customers worldwide, especially in the US, UK, and Western Europe.

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 this University to ensure easy and straightforward migration, while enhancing performance and scalability for their Learning Management System.

Download PDF

Introduction

The prevalence of digital education solutions has transformed how universities operate worldwide. The resulting Learning Management System's (LMS) enable students, lecturers, and administrators to access resources and manage all relevant educational activities and academic proceedings on a centralized platform. This top European university recognized the need for a faster and more scalable solution to meet increasing traffic demands.

From accessing course material to managing schedules and submitting assignments to evaluations, their LMS is critical for daily academic life. They, therefore, decided to explore caching as a way to improve application performance, which led them to AppFabric. However, AppFabric struggled to keep up with their increasing demands for scalability and load balancing. This prompted the university to look into alternative .NET in-memory distributed caching solutions for this purpose.

 

Application Pain Points

As the University attempted to scale its digital infrastructure to support its growing academic community, several critical pain points emerged in its current setup.

Need for a .NET Native Solution

The university's .NET 8-based application requires a caching solution that seamlessly integrates with its existing systems. While AppFabric is native to .NET, it presents several limitations. For instance, its majority rule (which required a minimum of three existing servers to maintain a cluster, increasing the server cost), etc. Additionally, AppFabric was officially discontinued in April 2017, and by April 2022, all support and bug fixes also ceased. This guarantees that there would be no updates addressing any bugs, issues, or security concerns. Moreover, the lack of support was another concern that further prompted them to look for an alternative.

Data Integrity and Availability

As previously mentioned, AppFabric relied on a majority rule system. Per this rule, at least three servers (Cache Hosts) are required to be active at all times to maintain high availability and data reliability. Thus, if even one server went down, it would violate the majority rule, risking downtime and data integrity issues. Furthermore, AppFabric provided limited tools for automating replication and failover, making it challenging to safeguard against data loss. Its basic replication mechanisms were too inflexible to handle the demands of modern applications.

Scaling and Load Balancing

As previously discussed, scaling the application for the ever-increasing number of students and lecturers proved to be a struggle with AppFabric. Moreover, the university required a reliable caching solution to efficiently handle peak loads during critical times, such as course registrations and result seasons. Additionally, they needed a system that could dynamically scale by adding or removing servers seamlessly, ensuring high availability and uninterrupted operations even with fluctuating workloads. This level of scalability and resilience was crucial to support the growing number of students and lecturers while maintaining optimal application performance.

Feature-Rich Solution

With the expanding scope of their application, the university sought a caching solution with a robust feature set to support their advanced data caching needs. These included logical data categorization that could help them group objects based on some common information like courses or lecturers. Additionally, they also needed distributed cache management features like monitoring, node level management, cluster level management, and more. Furthermore, regions served as logical divisions for managing cached data, in AppFabric. However, their static nature made them cumbersome to use in large-scale applications.

Linux Compatibility for Containerization

As the university migrated to .NET 8 and began to pursue containerized deployment for their application, AppFabric's lack of Linux support became a glaring issue.

In response to these pain points, the University landed on NCache to deliver the scalability, .NET compatibility, and depth of functionality needed to support their LMS.

 

How NCache Fit into Their Solution?

NCache is the ideal solution for the University's digital infrastructure, offering a .NET-native caching platform. By integrating NCache, the university established a centralized, high-performance cache layer that enabled faster data retrieval and minimized database calls, meeting the demands of its growing number of students, lecturers, and administrative users.

The university implemented NCache to ensure data integrity and high availability automatically. This addressed their need for consistent data access even during maintenance. The improvement in seamless scalability and performance provided the foundation for expanding digital resources across their academic ecosystem, supporting the needs of students and faculty alike.

 

Application Architectural Overview and Deployment with NCache

The university's Learning Management System (LMS) is monolithic in nature, consisting of multiple components such as a portal for students, teachers, management, etc. To boost system performance, the university uses a robust caching layer, which is crucial for managing high traffic and ensuring performance at scale. The LMS is hosted in a single data center and uses two caches.

One cache handles approximately 100 GB of data, processing around 55 million requests per month (120 million requests per month during exam seasons). While the other is used for locking purposes during transactions. The university initially used the Replicated Topology for their caching needs but have now transitioned to a Partition-Replica Topology to improve their performance even further. Their current infrastructure consists of 6 servers, 4 virtual and 2 physical. Each of these servers hosts an instance of the application, while NCache is hosted on two of them. NCache's dynamic scalability enabled them to manage peak loads effortlessly while load-balancing requests across multiple servers.

The application is divided into tiers as discussed below:

  • Front-end Tier: Web portal built with Angular.js (17.3.X).
  • Back-end Tier: Web APIs developed on .NET 8.
  • Database Tier: Microsoft SQL Server database for storing student, faculty, and management data.
Figure - Airays Deployment
Application Architecture of the European University

NCache Feature Usage

Transitioning from AppFabric to NCache

The university successfully transitioned from AppFabric to NCache using NCache's direct APIs, ensuring a seamless migration process. Since both NCache and AppFabric are .NET-native technologies and the university's application is also .NET-based, using direct APIs is a seamless process with minimal code changes. The Add, Remove, and Get APIs, required little to no adjustment while AppFabric's Put operations were replaced with NCache's Insert method significantly reducing the time and effort required for the migration.

Optimized Data Management and Retrieval

NCache stores frequently accessed data and speeds up data retrieval. By caching essential data like course materials and schedules, the LMS can respond to user requests quickly, even during peak times like the start or end of semesters. By utilizing NCache's Tags feature, the university logically categorizes cached data based on specific criteria. This makes it easier to manage and retrieve precise information when needed.

Additionally, NCache offers customizable expiration and eviction policies, allowing the university to tailor data lifecycles to usage patterns. They configure an absolute expiration of two hours, ensuring that outdated data is automatically cleared to optimize memory usage. For instance, after the registration process, students are categorized as registered or unregistered. By using Tags, they categorize data logically based on any criteria and then they remove that data that is not needed in the cache. This strategy not only maintains fresh and reliable data in the LMS but also supports smooth academic operations for users.

Locking for Data Consistency

With distributed locking, NCache ensures that data accessed by multiple users remains consistent and accurate. This was essential for the university during registration processes, where a dedicated cache for locking helped manage access to shared resources preventing overbooking and maintaining data accuracy under heavy traffic without conflicts.

Improved .NET Performance and Stability

NCache's .NET native architecture seamlessly integrates with the LMS. As a .NET native platform, NCache was significantly able to reduce any unnecessary processing overhead by reducing external dependencies and clients. It optimized data handling through enhanced memory management and response times. With NCache in place, the university's LMS now successfully supports critical academic functions, including accessing course materials, submitting assignments, and managing schedules, without disruption.

High Availability and Data Integrity

NCache's data replication functionality and self-healing clusters, safeguard the university's data against any server failures. By replicating data across nodes, NCache ensures that its students, faculty, and administrators have uninterrupted access to resources, even during maintenance or server downtime unlike with AppFabric. The Partition-Replica Topology further enhances high availability by distributing data across multiple servers. In this setup, when the university needs to perform maintenance on one server, it can safely do so while the remaining server continues to handle requests.

 

Moving Forward with NCache

The university plans to further upgrade its infrastructure by transitioning to a containerized environment like Docker. This makes Linux support essential. With NCache's robust support for Linux environments, the university can seamlessly adapt its caching layer to align with this enhancement, ensuring scalability and performance in its evolving architecture.

What to Do Next?

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