Upgrading and Compatibility
As an online storage service, Fluss is typically designed to operate over extended periods, often spanning several years. Like all long-running services, Fluss requires ongoing maintenance, which includes fixing bugs, implementing improvements, and migrating applications to newer versions of the Fluss cluster. In our code design process, we place a strong emphasis on compatibility to ensure that any updates or changes are seamlessly integrated without disrupting the existing functionality or stability of the system.
This document provides detailed instructions on how to upgrade the Fluss server, as well as information on the compatibility between different versions of the Fluss client and the Fluss server.
Upgrading the Fluss Server Version
This section outlines the general process for upgrading Fluss across versions. For server upgrades, we recommend using
the rolling upgrade method. Specifically, upgrade the TabletServers
one-by-one first, and then upgrade the CoordinatorServer
.
- During the server upgrade process, read and write operations in the cluster will not be affected.
- Currently, the Fluss
CoordinatorServer
does not yet support high availability (HA). During theCoordinatorServer
upgrade stage, theCoordinatorServer
will be in an unavailable state, which will affect admin operations such as table creation.
The following is an example of upgrading the Fluss server from 0.6 to 0.8-SNAPSHOT on a Distributed Cluster:
Download And Configure Fluss
- First, download Fluss binary file for 0.8-SNAPSHOT:
tar -xzf fluss-0.8-SNAPSHOT-bin.tgz
cd fluss-0.8-SNAPSHOT/
-
If you want to enable Lakehouse Storage, you need to prepare the required JAR files for the datalake first. For more details, see Add other jars required by datalake.
-
Next, copy the configuration options from 0.6 (
fluss-0.6/conf/server.yaml
) to the new configuration file (fluss-0.8-SNAPSHOT/conf/server.yaml
). Adding any new options introduced in version 0.8-SNAPSHOT as needed to experience the new features.
Upgrade the TabletServers one-by-one
To upgrade the TabletServers
, follow these steps one-by-one for each TabletServer
:
Stop a TabletServer
./fluss-0.6/bin/tablet-server.sh stop
Restart the new TabletServer
./fluss-0.8-SNAPSHOT/bin/tablet-server.sh start
Upgrade the CoordinatorServer
After all TabletServers
have been upgraded, you can proceed to upgrade the CoordinatorServer
by following these steps:
Stop the CoordinatorServer
./fluss-0.6/bin/coordinator-server.sh stop
Restart the new CoordinatorServer
./fluss-0.8-SNAPSHOT/bin/coordinator-server.sh start
Once this process is complete, the server upgrade will be finished.
Compatibility between Fluss Client and Fluss Server
The compatibility between the Fluss client and the Fluss server is described in the following table:
Server 0.6 | Server 0.7 | Limitations | |
---|---|---|---|
Client 0.6 | ✔️ | ✔️ | |
Client 0.7 | ✔️ | ✔️ |