dimas-b commented on code in PR #2714:
URL: https://github.com/apache/polaris/pull/2714#discussion_r2395605045
##########
runtime/service/src/main/java/org/apache/polaris/service/config/ProductionReadinessChecks.java:
##########
@@ -302,4 +302,36 @@ public ProductionReadinessCheck
checkInsecureStorageSettings(
? ProductionReadinessCheck.OK
: ProductionReadinessCheck.of(errors.toArray(new Error[0]));
}
+
+ @Produces
+ public ProductionReadinessCheck checkOverlappingSiblingCheckSettings(
+ FeaturesConfiguration featureConfiguration) {
+ var optimizedSiblingCheck = FeatureConfiguration.OPTIMIZED_SIBLING_CHECK;
+ var errors = new ArrayList<Error>();
+ if
(Boolean.parseBoolean(featureConfiguration.defaults().get(optimizedSiblingCheck.key())))
{
+ errors.add(
+ Error.ofSevere(
+ "This setting is not recommended for production environments as
it may lead to incorrect behavior, due to missing data for
location_without_scheme column in case of migrating from older Polaris
versions."
Review Comment:
I think "severe" is too strong for this check in its current form. It will
cause a startup failure and will require a global suppression flag, which will
suppress all other possible severe issues.
I propose to make a JDBC-specific check in
`RelationalJdbcProductionReadinessChecks`.
* On startup (when the check is called)
* For each realm where `OPTIMIZED_SIBLING_CHECK` is enabled:
* Run a `SELECT` for all table-like and view-like entities with
`location_without_scheme` being `NULL` (limit 1)
* If found, produce a severe error.
Since this SELECT is not covered by an index, it may be expensive. Add a
feature flag to disable it (for users who know what's involved). WDYT?
--
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]