Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DocDB] AutoFlags should provide the capability to enable flags on Install scenarios only, but not upgrade #16892

Closed
1 task done
rthallamko3 opened this issue Apr 17, 2023 · 0 comments
Assignees
Labels
2.18 Backport Required area/docdb YugabyteDB core features kind/enhancement This is an enhancement of an existing feature priority/medium Medium priority issue

Comments

@rthallamko3
Copy link
Contributor

rthallamko3 commented Apr 17, 2023

Jira Link: DB-6229

Description

AutoFlags should provide the capability to enable flags on Install scenarios only, but not upgrade (so as to lower the risk of new big features like PackedRow,AutomaticTabletSplitting from being enabled automatically without explicit Customer knowledge, during an upgrade).

Approach: Add a new enum kNewInstallsOnly to AutoFlagClass.

YB_DEFINE_ENUM(
    AutoFlagClass,
    // Adds/modifies format of data sent over the wire to another process within the universe. No
    // modification to persisted data.
    ((kLocalVolatile, 1))
    // Adds/modifies format of data sent over the wire or persisted and used within the universe.
    ((kLocalPersisted, 2))
    // Adds/modifies format of data which might be used outside the universe.
    // Example of external processes: XCluster and CDCServer.
    ((kExternal, 3)));

Requirements

  • The new enum kNewInstallsOnly would restrict the set of autoflags that will be promoted during upgrade, to exclude the ones tagged as kInstallsOnly.
  • If an AutoFlag is tagged as kNewInstallsOnly, xCluster setup needs to be blocked if the set of auto flags are inconsistent at the source and target.

Warning: Please confirm that this issue does not contain any sensitive information

  • I confirm this issue does not contain any sensitive information.
@rthallamko3 rthallamko3 added area/docdb YugabyteDB core features status/awaiting-triage Issue awaiting triage labels Apr 17, 2023
@yugabyte-ci yugabyte-ci added kind/bug This issue is a bug priority/medium Medium priority issue kind/enhancement This is an enhancement of an existing feature and removed kind/bug This issue is a bug status/awaiting-triage Issue awaiting triage labels Apr 17, 2023
arybochkin added a commit that referenced this issue Apr 20, 2023
…gs on Install scenarios only, but not upgrade

Summary:
This change adds a capability to enable auto flags on Install scenarios only, but not upgrade
(so as to lower the risk of new big features like PackedRow, AutomaticTabletSplitting from being
enabled automatically without explicit Customer knowledge, during an upgrade).

- Added a new value `kNewInstallsOnly` to `AutoFlagClass` enum.
- The new value `kNewInstallsOnly` restrict the set of auto flags that will be promoted during
upgrade, to exclude the ones tagged as `kNewInstallsOnly`.

Test Plan:
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsMiniClusterTest.NewCluster
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsMiniClusterTest.DisableAutoFlagManagement
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsMiniClusterTest.Promote

ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsExternalMiniClusterTest.NewCluster
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsExternalMiniClusterTest.UpgradeCluster

ybd --cxx-test tools_yb-admin-test --gtest_filter AdminCliTest.PromoteAutoFlags

Reviewers: rthallam, hsunder

Reviewed By: hsunder

Subscribers: ybase, bogdan

Differential Revision: https://phabricator.dev.yugabyte.com/D24621
arybochkin added a commit that referenced this issue Apr 21, 2023
…y to enable flags on Install scenarios only, but not upgrade

Summary:
Original commit: bfc8b6e / D24621

This change adds a capability to enable auto flags on Install scenarios only, but not upgrade
(so as to lower the risk of new big features like PackedRow, AutomaticTabletSplitting from being
enabled automatically without explicit Customer knowledge, during an upgrade).

- Added a new value `kNewInstallsOnly` to `AutoFlagClass` enum.
- The new value `kNewInstallsOnly` restrict the set of auto flags that will be promoted during
upgrade, to exclude the ones tagged as `kNewInstallsOnly`.

Test Plan:
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsMiniClusterTest.NewCluster
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsMiniClusterTest.DisableAutoFlagManagement
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsMiniClusterTest.Promote

ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsExternalMiniClusterTest.NewCluster
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsExternalMiniClusterTest.UpgradeCluster

ybd --cxx-test tools_yb-admin-test --gtest_filter AdminCliTest.PromoteAutoFlags

Reviewers: rthallam, hsunder

Reviewed By: rthallam, hsunder

Subscribers: bogdan, ybase

Differential Revision: https://phabricator.dev.yugabyte.com/D24664
omkaark pushed a commit to omkaark/yugabyte-db that referenced this issue Apr 21, 2023
…able flags on Install scenarios only, but not upgrade

Summary:
This change adds a capability to enable auto flags on Install scenarios only, but not upgrade
(so as to lower the risk of new big features like PackedRow, AutomaticTabletSplitting from being
enabled automatically without explicit Customer knowledge, during an upgrade).

- Added a new value `kNewInstallsOnly` to `AutoFlagClass` enum.
- The new value `kNewInstallsOnly` restrict the set of auto flags that will be promoted during
upgrade, to exclude the ones tagged as `kNewInstallsOnly`.

Test Plan:
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsMiniClusterTest.NewCluster
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsMiniClusterTest.DisableAutoFlagManagement
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsMiniClusterTest.Promote

ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsExternalMiniClusterTest.NewCluster
ybd --cxx-test integration-tests_auto_flags-itest --gtest_filter AutoFlagsExternalMiniClusterTest.UpgradeCluster

ybd --cxx-test tools_yb-admin-test --gtest_filter AdminCliTest.PromoteAutoFlags

Reviewers: rthallam, hsunder

Reviewed By: hsunder

Subscribers: ybase, bogdan

Differential Revision: https://phabricator.dev.yugabyte.com/D24621
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.18 Backport Required area/docdb YugabyteDB core features kind/enhancement This is an enhancement of an existing feature priority/medium Medium priority issue
Projects
None yet
Development

No branches or pull requests

3 participants