Copilot commented on code in PR #2924:
URL: https://github.com/apache/fluss/pull/2924#discussion_r2986720467


##########
website/docs/maintenance/configuration.md:
##########
@@ -188,9 +188,10 @@ More metrics example could be found in [Observability - 
Metric Reporters](observ
 | metrics.reporter.prometheus-push.grouping-key           | String   | (None)  
   | Specifies the grouping key which is the group and global labels of all 
metrics. The label name and value are separated by '=', and labels are 
separated by ';', e.g., k1=v1;k2=v2.                                            
                                                                           | 
 ## Lakehouse
 
-| Option          | Type | Default | Description                               
                                                                                
                                                                                
                  |
-|-----------------|------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| datalake.format | Enum | (None)  | The datalake format used by of Fluss to 
be as lakehouse storage. Currently, supported formats are Paimon, Iceberg, and 
Lance. In the future, more kinds of data lake format will be supported, such as 
DeltaLake or Hudi.   |
+| Option           | Type    | Default | Description                           
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
            |
+|------------------|---------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| datalake.enabled | Boolean | (None)  | Whether the Fluss cluster is ready to 
create and manage lakehouse tables. If unset, Fluss keeps the legacy behavior 
where configuring `datalake.format` also enables lakehouse tables. If set to 
`false`, Fluss pre-binds the lake format for newly created tables but does not 
allow lakehouse tables yet. If set to `true`, Fluss fully enables lakehouse 
tables. When this option is explicitly configured to true, `datalake.format` 
must also be configured. |
+| datalake.format  | Enum    | (None)  | The datalake format used by of Fluss 
to be as lakehouse storage. Currently, supported formats are Paimon, Iceberg, 
and Lance. In the future, more kinds of data lake format will be supported, 
such as DeltaLake or Hudi.                                                      
                                                                                
                                                                                
                   |

Review Comment:
   Grammar in the `datalake.format` description is incorrect (“used by of Fluss 
to be as lakehouse storage”). Please rephrase (e.g., “used by Fluss as 
lakehouse storage”) to match the wording used in 
`ConfigOptions.DATALAKE_FORMAT`.
   ```suggestion
   | datalake.format  | Enum    | (None)  | The datalake format used by Fluss 
as lakehouse storage. Currently, supported formats are Paimon, Iceberg, and 
Lance. In the future, more kinds of data lake format will be supported, such as 
DeltaLake or Hudi.                                                              
                                                                                
                                                                                
                     |
   ```



##########
website/docs/maintenance/operations/upgrade-notes-0.10.md:
##########
@@ -4,3 +4,41 @@ sidebar_position: 4
 ---
 
 # Upgrade Notes from v0.9 to v0.10
+
+## Cluster Configuration Changes
+
+### New `datalake.enabled` Cluster Configuration
+
+Starting in v0.10, Fluss introduces the cluster-level configuration 
`datalake.enabled` to control whether the cluster is ready to create and manage 
lakehouse tables.
+
+#### Behavior Changes
+
+- If `datalake.enabled` is unset, Fluss preserves the legacy behavior: 
configuring `datalake.format` alone also enables lakehouse tables.
+- If `datalake.enabled = false`, Fluss pre-binds the lake format for newly 
created tables but does not allow lakehouse tables yet.
+- If `datalake.enabled = true`, Fluss fully enables lakehouse tables.
+- If `datalake.enabled` is explicitly configured, `datalake.format` must also 
be configured.

Review Comment:
   The upgrade note says that if `datalake.enabled` is explicitly configured, 
`datalake.format` must also be configured. Elsewhere in the docs (and in the 
current validation logic) the requirement is only when `datalake.enabled` is 
explicitly set to `true`. Please clarify this bullet to match the intended 
behavior (and, if `datalake.enabled=false` can be used without a format, note 
that pre-bind semantics require setting the format).
   ```suggestion
   - If `datalake.enabled` is explicitly set to `true`, `datalake.format` must 
also be configured. When `datalake.enabled = false`, `datalake.format` is 
optional, but required if you want the pre-bind behavior described above.
   ```



##########
fluss-common/src/main/java/org/apache/fluss/config/ConfigOptions.java:
##########
@@ -1993,12 +1993,24 @@ public class ConfigOptions {
     // ------------------------------------------------------------------------
     //  ConfigOptions for lakehouse storage
     // ------------------------------------------------------------------------
+    public static final ConfigOption<Boolean> DATALAKE_ENABLED =
+            key("datalake.enabled")
+                    .booleanType()
+                    .noDefaultValue()
+                    .withDescription(
+                            "Whether the Fluss cluster is ready to create and 
manage lakehouse tables. "
+                                    + "If unset, Fluss keeps the legacy 
behavior where configuring `datalake.format` "
+                                    + "also enables lakehouse tables. If set 
to `false`, Fluss pre-binds the lake format "
+                                    + "for newly created tables but does not 
allow lakehouse tables yet. If set to `true`, "
+                                    + "Fluss fully enables lakehouse tables. 
When this option is explicitly configured, "

Review Comment:
   The `datalake.enabled` description says that when the option is "explicitly 
configured", `datalake.format` must also be configured, but the server-side 
validation/enforcement currently only requires `datalake.format` when 
`datalake.enabled` is explicitly set to `true`. Please align the wording with 
the actual semantics (e.g., specify “explicitly set to true”) to avoid 
misleading operators.
   ```suggestion
                                       + "Fluss fully enables lakehouse tables. 
When this option is explicitly set to `true`, "
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to