[
https://issues.apache.org/jira/browse/IGNITE-21190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated IGNITE-21190:
---------------------------------------
Description:
Currently, SchemaManager uses global MetaStorage's applied revision to track
which revisions were not accounted for yet. The global applied revision
mechanism will likely be removed; also, if a node is down for some time, the
global applied revision might make a leap, and we'll not be able to see how
many revisions were skipped.
SchemaManager should have its own 'applied revision' or 'applied Catalog
version' stored in the Vault. When doing a startup recovery, it should use it
to process the Catalog versions that might be missed while being offline.
Also, current implementation has a bug: if a node is not a MetaStorage leader,
it might happen that it receives an event about a table schema change before
the previous table schema (saved by SchemaManager) is replicated to this node,
and the current code relies on it already being available locally. This bug has
to be fixed (probably, as a by-product of implementing this feature).
was:
Currently, SchemaManager uses global MetaStorage's applied revision to track
which revisions were not accounted for yet. The global applied revision
mechanism will likely be removed; also, if a node is down for some time, the
global applied revision might make a leap, and we'll not be able to see how
many revisions were skipped.
SchemaManager should have its own 'applied revision' or 'applied Catalog
version' stored in the Vault. When doing a startup recovery, it should use it
to process the Catalog versions that might be missed while being offline.
> SchemaManager should not rely on system-wide applied revision
> -------------------------------------------------------------
>
> Key: IGNITE-21190
> URL: https://issues.apache.org/jira/browse/IGNITE-21190
> Project: Ignite
> Issue Type: Improvement
> Reporter: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Currently, SchemaManager uses global MetaStorage's applied revision to track
> which revisions were not accounted for yet. The global applied revision
> mechanism will likely be removed; also, if a node is down for some time, the
> global applied revision might make a leap, and we'll not be able to see how
> many revisions were skipped.
> SchemaManager should have its own 'applied revision' or 'applied Catalog
> version' stored in the Vault. When doing a startup recovery, it should use it
> to process the Catalog versions that might be missed while being offline.
> Also, current implementation has a bug: if a node is not a MetaStorage
> leader, it might happen that it receives an event about a table schema change
> before the previous table schema (saved by SchemaManager) is replicated to
> this node, and the current code relies on it already being available locally.
> This bug has to be fixed (probably, as a by-product of implementing this
> feature).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)