[ 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)