[
https://issues.apache.org/jira/browse/HDDS-11465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Arafat Khan updated HDDS-11465:
-------------------------------
Description:
With Recon’s new schema versioning framework now integrated, it is essential
to address initial schema constraints for existing tables. Previously, Recon
lacked schema versioning, which meant there were no upgrade actions or
mechanisms to adjust schema tables post-upgrade. This led to inconsistencies,
especially when new enum states (like {{MISSING}} and {{NEGATIVE_SIZE}} in
{{{}UnHealthyContainerStates{}}}) were introduced, as older schema versions
might still persist despite upgrades.
This ticket introduces a foundational upgrade action,
{{{}InitialConstraintUpgradeAction{}}}, associated with the *INITIAL_VERSION*
feature to handle any missed schema updates within the {{UNHEALTHY_CONTAINERS}}
table. This upgrade action retroactively applies constraints and ensures all
existing tables are correctly versioned. Moving forward, any updates or new
metadata table introductions in Recon will be tracked and managed by version
using the {{ReconLayoutFeature}} framework, enabling a seamless and structured
upgrade process for future schema changes
was:
Currently, Recon does not have a schema versioning mechanism in place for
handling database schema evolution. As a result, when new schema changes are
introduced (e.g., adding new enum states like {{{}MISSING{}}},
{{NEGATIVE_SIZE}} in the {{{}UnHealthyContainerStates{}}}) for the
{*}{{UnHealthyContainerTable}}{*}, it becomes challenging to distinguish
between fresh installations and upgrades, leading to issues where old schema
versions may still be used despite an upgrade.
This ticket proposes introducing a *schema versioning system* to manage
database schema changes in a more controlled manner
> Introducing Schema Versioning for Recon to Handle Fresh Installs and Upgrades
> -----------------------------------------------------------------------------
>
> Key: HDDS-11465
> URL: https://issues.apache.org/jira/browse/HDDS-11465
> Project: Apache Ozone
> Issue Type: Improvement
> Components: Ozone Recon
> Affects Versions: 1.4.0
> Reporter: Arafat Khan
> Assignee: Arafat Khan
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.0.0
>
>
> With Recon’s new schema versioning framework now integrated, it is essential
> to address initial schema constraints for existing tables. Previously, Recon
> lacked schema versioning, which meant there were no upgrade actions or
> mechanisms to adjust schema tables post-upgrade. This led to inconsistencies,
> especially when new enum states (like {{MISSING}} and {{NEGATIVE_SIZE}} in
> {{{}UnHealthyContainerStates{}}}) were introduced, as older schema versions
> might still persist despite upgrades.
> This ticket introduces a foundational upgrade action,
> {{{}InitialConstraintUpgradeAction{}}}, associated with the *INITIAL_VERSION*
> feature to handle any missed schema updates within the
> {{UNHEALTHY_CONTAINERS}} table. This upgrade action retroactively applies
> constraints and ensures all existing tables are correctly versioned. Moving
> forward, any updates or new metadata table introductions in Recon will be
> tracked and managed by version using the {{ReconLayoutFeature}} framework,
> enabling a seamless and structured upgrade process for future schema changes
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]