[ 
https://issues.apache.org/jira/browse/IGNITE-21585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrey Mashenkov updated IGNITE-21585:
--------------------------------------
    Description: 
Catalog compaction is not synchronized with transactions on nodes.
There are a bunch of issues:
* We expect Catalog compaction should be called for minimal LWM on all the 
nodes. But LWM is node-local value.
* Recovery RW transaction may require old catalog version to get list of 
indexes, that should be updated.
* incoming snapshot may require outdated version of catalog in some cases.
* LWM wait for RO transaction, but not RW.

So, 
1. Let's just do nothing with catalog history on compaction.
2. Let's node update some key in the metastorage and put it's id. Make node 
will react on it's own updates only. On the key update event, node should 
trigger destroy event for table/index, which are under the LWM.
We can't trigger local events instead, because we need a causality token for VV 
in several components.
2. Fix recovery procedure if needed.



  was:
Catalog compaction is not synchronized with transactions on nodes.
There are a bunch of issues:
* We expect Catalog compaction should be called for minimal LWM on all the 
nodes. But LWM is node-local value.
* Recovery RW transaction may require old catalog version to get list of 
indexes, that should be updated.
* incoming snapshot may require outdated version of catalog in some cases.
* LWM wait for RO transaction, but not RW.

So, 
1. Let's just do nothing with catalog history on compaction.
2. Let's update some key with node id, and node should react on own updates 
only and skip updates from other nodes. On the key update event, node should 
trigger destroy event for table/index, which are under the LWM.
We can't trigger local events on LWM change, because we need a causality token 
for VV in several components.
2. Fix recovery procedure if needed.




> Disable catalog compaction
> --------------------------
>
>                 Key: IGNITE-21585
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21585
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Andrey Mashenkov
>            Priority: Major
>              Labels: ignite-3
>
> Catalog compaction is not synchronized with transactions on nodes.
> There are a bunch of issues:
> * We expect Catalog compaction should be called for minimal LWM on all the 
> nodes. But LWM is node-local value.
> * Recovery RW transaction may require old catalog version to get list of 
> indexes, that should be updated.
> * incoming snapshot may require outdated version of catalog in some cases.
> * LWM wait for RO transaction, but not RW.
> So, 
> 1. Let's just do nothing with catalog history on compaction.
> 2. Let's node update some key in the metastorage and put it's id. Make node 
> will react on it's own updates only. On the key update event, node should 
> trigger destroy event for table/index, which are under the LWM.
> We can't trigger local events instead, because we need a causality token for 
> VV in several components.
> 2. Fix recovery procedure if needed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to