|
| 1 | +--- |
| 2 | +title: Upgrading and Compatibility |
| 3 | +sidebar_position: 1 |
| 4 | +--- |
| 5 | + |
| 6 | +<!-- |
| 7 | + Licensed to the Apache Software Foundation (ASF) under one |
| 8 | + or more contributor license agreements. See the NOTICE file |
| 9 | + distributed with this work for additional information |
| 10 | + regarding copyright ownership. The ASF licenses this file |
| 11 | + to you under the Apache License, Version 2.0 (the |
| 12 | + "License"); you may not use this file except in compliance |
| 13 | + with the License. You may obtain a copy of the License at |
| 14 | +
|
| 15 | + http://www.apache.org/licenses/LICENSE-2.0 |
| 16 | +
|
| 17 | + Unless required by applicable law or agreed to in writing, software |
| 18 | + distributed under the License is distributed on an "AS IS" BASIS, |
| 19 | + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 20 | + See the License for the specific language governing permissions and |
| 21 | + limitations under the License. |
| 22 | +--> |
| 23 | + |
| 24 | +As an online storage service, Fluss is typically designed to operate over extended periods, often spanning several years. |
| 25 | +Like all long-running services, Fluss requires ongoing maintenance, which includes fixing bugs, implementing improvements, |
| 26 | +and migrating applications to newer versions of the Fluss cluster. In our code design process, we place a strong emphasis |
| 27 | +on compatibility to ensure that any updates or changes are seamlessly integrated without disrupting the existing |
| 28 | +functionality or stability of the system. |
| 29 | + |
| 30 | +This document provides detailed instructions on how to upgrade the Fluss server, as well as information on the |
| 31 | +compatibility between different versions of the Fluss client and the Fluss server. |
| 32 | + |
| 33 | +## Upgrading the Fluss Server Version |
| 34 | + |
| 35 | +This section outlines the general process for upgrading Fluss across versions. For server upgrades, we recommend using |
| 36 | +the rolling upgrade method. Specifically, upgrade the `TabletServers` one-by-one first, and then upgrade the `CoordinatorServer`. |
| 37 | + |
| 38 | +:::note |
| 39 | +1. During the server upgrade process, read and write operations in the cluster will not be affected. |
| 40 | +2. Currently, the Fluss `CoordinatorServer` does not yet support high availability (HA). During the `CoordinatorServer` upgrade stage, the `CoordinatorServer` will be in an unavailable state, which will affect admin operations such as table creation. |
| 41 | +::: |
| 42 | + |
| 43 | +The following is an example of upgrading the Fluss server from 0.6 to $FLUSS_VERSION$ on |
| 44 | +a [Distributed Cluster](docs/install-deploy/deploying-distributed-cluster.md): |
| 45 | + |
| 46 | +### Download And Configure Fluss |
| 47 | + |
| 48 | +1. First, download Fluss binary file for $FLUSS_VERSION$: |
| 49 | + |
| 50 | +```shell |
| 51 | +tar -xzf fluss-$FLUSS_VERSION$-bin.tgz |
| 52 | +cd fluss-$FLUSS_VERSION$/ |
| 53 | +``` |
| 54 | + |
| 55 | +2. If you want to enable [Lakehouse Storage](docs/maintenance/tiered-storage/lakehouse-storage.md), you need to prepare the required JAR files for the datalake first. For more details, |
| 56 | + see [Add other jars required by datalake](docs/maintenance/tiered-storage/lakehouse-storage.md#add-other-jars-required-by-datalake). |
| 57 | + |
| 58 | +3. Next, copy the configuration options from 0.6 (`fluss-0.6/conf/server.yaml`) to the new configuration |
| 59 | +file (`fluss-$FLUSS_VERSION$/conf/server.yaml`). Adding any new options introduced in version $FLUSS_VERSION$ as |
| 60 | +needed to experience the new features. |
| 61 | + |
| 62 | +### Upgrade the TabletServers one-by-one |
| 63 | + |
| 64 | +To upgrade the `TabletServers`, follow these steps one-by-one for each `TabletServer`: |
| 65 | + |
| 66 | +**Stop a TabletServer** |
| 67 | + |
| 68 | +```shell |
| 69 | +./fluss-0.6/bin/tablet-server.sh stop |
| 70 | +``` |
| 71 | + |
| 72 | +**Restart the new TabletServer** |
| 73 | + |
| 74 | +```shell |
| 75 | +./fluss-$FLUSS_VERSION$/bin/tablet-server.sh start |
| 76 | +``` |
| 77 | + |
| 78 | +### Upgrade the CoordinatorServer |
| 79 | + |
| 80 | +After all `TabletServers` have been upgraded, you can proceed to upgrade the `CoordinatorServer` by following these steps: |
| 81 | + |
| 82 | +**Stop the CoordinatorServer** |
| 83 | + |
| 84 | +```shell |
| 85 | +./fluss-0.6/bin/coordinator-server.sh stop |
| 86 | +``` |
| 87 | + |
| 88 | +**Restart the new CoordinatorServer** |
| 89 | + |
| 90 | +```shell |
| 91 | +./fluss-$FLUSS_VERSION$/bin/coordinator-server.sh start |
| 92 | +``` |
| 93 | + |
| 94 | +Once this process is complete, the server upgrade will be finished. |
| 95 | + |
| 96 | +## Compatibility between Fluss Client and Fluss Server |
| 97 | + |
| 98 | +The compatibility between the Fluss client and the Fluss server is described in the following table: |
| 99 | + |
| 100 | + |
| 101 | +| | Server 0.6 | Server 0.7 | Limitations | |
| 102 | +|------------|------------|------------|-------------| |
| 103 | +| Client 0.6 | ✔️ | ✔️ | | |
| 104 | +| Client 0.7 | ✔️ | ✔️ | | |
0 commit comments