Tech Note: Upgrades

Introduction

When the SSDT installs a new version of the ODDEX application, it is usually performed as a "rolling upgrade".   Rolling upgrades allow the application to be upgraded without shutting down the entire application.   The application is upgraded as users log off the previous version and are automatically connected to the new version on their next login. 

However, occasionally, a small number of users will be inconvenienced by being forcibly logged out. When this happens, the user is forced to log back in unexpectedly.  If you care to know why this happens, please read the remainder of this page.

This document only discusses rolling upgrades. Some upgrades require a full restart. In those cases, a notice is placed in the application and the upgrade occurs after business hours.

Application Servers

The SSDT executes ODDEX on more than one application server simultaneously. This provides load-balancing across the servers. On login, each user is randomly assigned to one of the available servers.  For the length of the user's session, the load-balancer ensures users will remain connected to the server where their session resides.  

At the time of this writing up to three application servers are executing ODDEX at any given time.

Technical staff may consider this description as a "cluster". It is not a true cluster since session and cache information are not shared between the servers. Each server executes an independent instance of the application.

Rolling Upgrade

When the SSDT installs an upgrade, each server is upgraded individually.  The upgrade process is approximately:

  • make a server unavailable to new sessions

  • wait until all users on that server have logged or timed out

  • upgrade the software on the server

  • make the server available for new sessions

  • repeat process for the next server

At all times, at least one server is available for new sessions, giving the appearance that the system has never shut down.  As users log out of the previous version, they will be automatically connected to the new version.

Long Running Sessions

In practice, it often takes four to eight hours to complete a rolling upgrade.  This is because a few users keep an active session for the entire business day.  A single user can prevent the upgrade from proceeding by keeping a single session active. For most upgrades, this is not an issue so the sessions are allowed to expire normally.  However, for an important upgrade or bug fix, the SSDT may decide to speed up the process by forcibly terminating a few users.   Whenever possible, we only terminate sessions that have been inactive for at least 15 minutes but occasionally are forced to terminate more active users. 

Therefore, if you are unexpectedly directed back to the login or expired page, it most likely means that an upgrade is in progress and you were the last user who was blocking the upgrade.