Blog

The Key Reasons To Upgrade Tungsten And How To Get It Done

Why Upgrade?

Let’s face it, everything ages, including software. Software is able to be fixed and improved over time. In fact, if software is not updated, it will fail to be compatible with the environment around it as other software progresses.

Bug Fixes

Later versions of software will contain needed repairs to known issues. If you continue to run old software with known bugs, your production operation will be at higher risk for a bug-related outage.

Compatibility (with newer OS Releases and DB Features)

As operating systems and MySQL server itself continue to adjust and improve over time, Tungsten itself is modified to handle those changes. If you do not upgrade Tungsten, your ability to keep up with OS and MySQL server revisions will be limited.

Performance Improvements

Tungsten software operates in high-volume, low latency environments and so the best possible performance at all layers is needed. Through testing, customer feedback and sheer engineering skill, Tungsten continues to gain in terms of reducing overhead and speeding the client experience. Of course, to get the latest and greatest, one must upgrade ;-}

Supportability/EOL

Last but not least, Supportability is a major key - if you are running out-dated or EOL software, troubleshooting may be impaired, and no patches will be available. For GA software, Continuent is well-known for turning around patches in a very short period of time, especially for critical bugs. That level of responsiveness is not possible with EOL versions.

Come One, Come All
Upgrade Methods Defined

Staging vs. INI

When using the staging deployment method, all nodes are updated together, unless you specify otherwise.

For INI deployments, each node is handled individually.

Rolling vs. All-At-Once

Rolling upgrade, defined: each node is shunned, upgraded, welcomed back and replication allowed to catch up, replicas first, and a switch is performed to handle the primary last.

All-At-Once, defined: cluster is placed into maintenance mode, then all nodes are upgraded at once. There is zero impact on client traffic, and minimal impact on replication, since all Replicators will be restarted at the same time. The Connectors will ignore Manager restarts due to maintenance mode, and will do a graceful hand-off to the new Connector when upgraded. Please note that NO switch is performed - the Primary is upgraded live.

The Best Practice is an All-At-Once upgrade, not a Rolling upgrade, because the risk window where the nodes are at a different version is much bigger. Tungsten is not designed to work with multiple versions at once, so the more rapidly the upgrade is done, the better.

What Happens To Client Traffic Through The Connectors?

In either case, the Connectors will need to be restarted at some point and any remaining client connections severed. The best practice is to drain active sessions from one connector at a time, via the intermediate load balancer, then restart that single connector. Once the Connector is back online, return it to active duty in the load balancer pool and do the next one.

Get It Done!
Steps Needed for an Easy Upgrade

  • ALWAYS read Release Notes
    • Check for new pre-requisites
    • Check for bugs fixed and new features included
    • Check for any known issues
    • Check for version specific upgrade notes
  • Decide if this version is good in your environment
  • Register on our website, if needed
  • Login and download desired software package(s)
  • Extract the tarball on all nodes
  • Set the cluster to maintenance mode
  • Perform the all-at-once upgrade on every node at the same time:
    • cd to the extracted directory
    • Execute: tools/tpm update --replace-release -i
  • When all nodes are complete, set the cluster to Automatic mode

Read the Release Notes

Please visit docs.continuent.com and read the release notes for the version you are installing.

Our release notes contain critical information, and really should be carefully read before performing any upgrade, for these and other reasons:

  • Occasionally, new releases have dependencies which require additional prerequisites be installed, i.e. a Ruby gem or a Perl module
  • Special upgrade instructions
  • Detailed listing of:
    • Known Issues are listed
    • Bug fixes
    • New features

Is This Version Good For Me?

By reading and understanding the release notes, you will be able to decide if this version will work well in your environment.

If you are upgrading from a very old release, ie v2 to v6, then you should also review the release notes for the versions in-between.

Obtain the Software Package

If you are an existing customer, and you have not already done so, please contact our support team to obtain the registration URL. Our team will also activate your account once you have completed the form, and provide software download access based on your license subscription. You will get an email when your new account is activated, and should then login via our Download Portal to obtain the needed software package.

Install the Software Package

An All-At-Once software upgrade is easy!

Staging-method deployments

Since the All-At-Once update is the default for Staging-method deployments, this procedure needs to be done just once on the Staging server. You may optionally restart the Connector nodes one-at-a-time.

  • Determine the staging user, server & directory:
    tpm query staging
    tungsten@admin-demo.continuent.com:/opt/continuent/software/tungsten-clustering-6.1.12-53
  • Login to the host listed above as the user listed above:
    ssh tunsgten@admin-demo.continuent.com
  • Change to the software deployment directory:
    cd  /opt/continuent/software/
  • Extract the tarball:
    tar xvzf tungsten-clustering-7.0.0-353.tar.gz
  • Change to the extracted directory:
    cd tungsten-clustering-7.0.0-353
  • As the tungsten OS user on a single cluster node, place the cluster into Maintenance mode:
    echo “set policy maintenance” | cctrl
  • Run the upgrade:
    tools/tpm update --replace-release -i
  • As the tungsten OS user on a single cluster node, place the cluster into Automatic mode:
    echo “set policy automatic” | cctrl

You are done!

For more information about Staging-based upgrades, please visit our online documentation.

INI-method deployments

For INI-method deployments, this procedure needs to be done on every cluster node and Connector host all at once. You may optionally restart the Connector nodes one-at-a-time.

  • Perform these steps as the tungsten OS user on every node and connector host, except where specified otherwise
  • Determine the staging directory:
    tpm query staging
    tungsten@admin-demo.continuent.com:/opt/continuent/software/tungsten-clustering-6.1.12-53
  • change to the software deployment directory shown above:
    cd  /opt/continuent/software/
  • Extract the tarball:
    tar xvzf tungsten-clustering-7.0.0-353.tar.gz
  • Change to the extracted directory:
    cd tungsten-clustering-7.0.0-353
  • As the tungsten OS user on a single cluster node, place the cluster into Maintenance mode:
    echo “set policy maintenance” | cctrl
  • Run the upgrade on every node at the same time:
    tools/tpm update --replace-release -i
  • When all nodes are done, as the tungsten OS user on a single cluster node, place the cluster into Automatic mode:
    echo “set policy automatic” | cctrl

You are done!

For more information about INI-based upgrades, please visit our online documentation.

Delaying Connector Restarts

For either Staging or INI updates/upgrades, you may wish to restart the Connectors in a controlled manner, not all at once.

To do this is easy. Just append the `--no-connectors` argument to the `tpm update` command like this:

tools/tpm update --replace-release -i --no-connectors

When you are ready to restart the Connectors with the new version, issue the following command:

tpm promote-connector

The Connector on that host only will be stopped and restarted using the updated version.

Many of our customers have multiple connectors fronted by a load balancer for the applications to reach the connectors through. One connector at a time would be drained from the load balancer pool, restarted and then re-added.

Getting Answers

Continuent is here to help!

Every use-case is different, and we understand that! If you have any questions or concerns at any time, please do get in touch with our excellent support engineers so we may recommend the best approach for your environment.

Wrap-Up

Upgrades are a normal, expected part of all software lifecycles, and Tungsten is no exception. Keep your software up-to-date to ensure compatibility, supportability and the lowest risk possible to your operation.

About the Author

Eric M. Stone
COO

Eric is a veteran of fast-paced, large-scale enterprise environments with 35 years of Information Technology experience. With a focus on HA/DR, from building data centers and trading floors to world-wide deployments, Eric has architected, coded, deployed and administered systems for a wide variety of disparate customers, from Fortune 500 financial institutions to SMB’s.

Add new comment