Skip to content

KAFKA-16308 [2/N]: Allow unstable feature versions and rename unstable metadata config#16130

Merged
jolshan merged 3 commits intoapache:trunkfrom
jolshan:kafka-16308-2a
May 30, 2024
Merged

KAFKA-16308 [2/N]: Allow unstable feature versions and rename unstable metadata config#16130
jolshan merged 3 commits intoapache:trunkfrom
jolshan:kafka-16308-2a

Conversation

@jolshan
Copy link
Copy Markdown
Member

@jolshan jolshan commented May 29, 2024

As per KIP-1022, we will rename the unstable metadata versions enabled config to support all feature versions.

Features is also updated to return latest production and latest testing versions of each feature.

A feature is production ready when the corresponding metadata version (bootstrapMetadataVersion) is production ready.

Adds tests for the feature usage of the unstableFeatureVersionsEnabled config

Copy link
Copy Markdown
Member

@dajac dajac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jolshan Thanks for the patch. I left one question. I've also noticed that unstable.metadata.versions.enable is still used in a few tests.

// This indicates whether unreleased MetadataVersions should be enabled on this node.
.defineInternal(ServerConfigs.UNSTABLE_METADATA_VERSIONS_ENABLE_CONFIG, BOOLEAN, false, HIGH)
// This indicates whether unreleased MetadataVersions or other feature versions should be enabled on this node.
.defineInternal(ServerConfigs.UNSTABLE_FEATURE_VERSIONS_ENABLE_CONFIG, BOOLEAN, false, HIGH)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to keep it internal?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, it's a fair question. I think the original intent was to keep it internal and only use for testing.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup -- this is the text in the KIP:

Add INTERNAL configuration unstable.feature.versions.enable to allow for non production ready features to be used (for testing)

Copy link
Copy Markdown
Contributor

@junrao junrao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jolshan : Thanks for the PR. Just a couple of comments.

*/
public FeatureVersion fromFeatureLevel(short level) {
public FeatureVersion fromFeatureLevel(short level,
boolean allowUnstableFeatureVersions) {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we add the new param to javadoc?

MetadataVersion.LATEST_PRODUCTION,
Map(TestFeatureVersion.FEATURE_NAME -> featureLevel),
allFeatures,
false,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, TEST_VERSION level 2 is not in production and should show an exception when calling StorageTool.generateFeatureRecord?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if (featureLevel <= Features.TEST_VERSION.defaultValue(MetadataVersion.LATEST_PRODUCTION)) this means we skip version 2

Copy link
Copy Markdown
Contributor

@junrao junrao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jolshan : Thanks for the updated PR. LGTM assuming the tests pass.

@jolshan
Copy link
Copy Markdown
Member Author

jolshan commented May 30, 2024

I filed https://issues.apache.org/jira/browse/KAFKA-16866 for the one failure and that is getting fixed separately.

As for the others, looks like they are frequent flakes. I will go ahead and merge.

@jolshan jolshan merged commit 7c1bb15 into apache:trunk May 30, 2024
chiacyu pushed a commit to chiacyu/kafka that referenced this pull request Jun 1, 2024
…e metadata config (apache#16130)

As per KIP-1022, we will rename the unstable metadata versions enabled config to support all feature versions.

Features is also updated to return latest production and latest testing versions of each feature.

A feature is production ready when the corresponding metadata version (bootstrapMetadataVersion) is production ready.

Adds tests for the feature usage of the unstableFeatureVersionsEnabled config

Reviewers: David Jacot <djacot@confluent.io>, Jun Rao <junrao@gmail.com>
wernerdv pushed a commit to wernerdv/kafka that referenced this pull request Jun 3, 2024
…e metadata config (apache#16130)

As per KIP-1022, we will rename the unstable metadata versions enabled config to support all feature versions.

Features is also updated to return latest production and latest testing versions of each feature.

A feature is production ready when the corresponding metadata version (bootstrapMetadataVersion) is production ready.

Adds tests for the feature usage of the unstableFeatureVersionsEnabled config

Reviewers: David Jacot <djacot@confluent.io>, Jun Rao <junrao@gmail.com>
TaiJuWu pushed a commit to TaiJuWu/kafka that referenced this pull request Jun 8, 2024
…e metadata config (apache#16130)

As per KIP-1022, we will rename the unstable metadata versions enabled config to support all feature versions.

Features is also updated to return latest production and latest testing versions of each feature.

A feature is production ready when the corresponding metadata version (bootstrapMetadataVersion) is production ready.

Adds tests for the feature usage of the unstableFeatureVersionsEnabled config

Reviewers: David Jacot <djacot@confluent.io>, Jun Rao <junrao@gmail.com>
gongxuanzhang pushed a commit to gongxuanzhang/kafka that referenced this pull request Jun 12, 2024
…e metadata config (apache#16130)

As per KIP-1022, we will rename the unstable metadata versions enabled config to support all feature versions.

Features is also updated to return latest production and latest testing versions of each feature.

A feature is production ready when the corresponding metadata version (bootstrapMetadataVersion) is production ready.

Adds tests for the feature usage of the unstableFeatureVersionsEnabled config

Reviewers: David Jacot <djacot@confluent.io>, Jun Rao <junrao@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants