[
https://issues.apache.org/jira/browse/IGNITE-22637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Maksim Zhuravkov reassigned IGNITE-22637:
-----------------------------------------
Assignee: Maksim Zhuravkov
> Catalog compaction. Implement remote node part of compaction flow
> -----------------------------------------------------------------
>
> Key: IGNITE-22637
> URL: https://issues.apache.org/jira/browse/IGNITE-22637
> Project: Ignite
> Issue Type: Improvement
> Reporter: Maksim Zhuravkov
> Assignee: Maksim Zhuravkov
> Priority: Major
> Labels: ignite-3
>
> To select a compaction time, each node should provide its MinimalRequiredTime
> to compaction coordinator.
> h4. Prerequisites:
> In {{PartitionListener}} using partitionDataStorage.flush(false) store
> {{minActiveTxBeginTime}} into another transient field (for example
> {{snapshottedMinActiveTxBeginTime}}).
> Need to investigate how to obtain this {{snapshottedMinActiveTxBeginTime}}
> from {{CatalogCompactionRunner}} in production code (may be introduce
> necessary methods). Example of this in test code can be found in
> {{ItCatalogCompactionTest.ensureTimestampStoredInAllReplicas}}
> h4. Compute minimum required time
> 1. Get current value of low watermark.
> 2. Get min of "snapshotted" minActiveTxTime across all partitions (see
> {{PartitionListener.minActiveTxBeginTime}}.
> Take min of 1., 2 and return it in
> {{CatalogCompactionRunner.determineLocalMinimumRequiredTime}}
> h4. Additional notes
> Compaction must start only under the following conditions:
> 1. no active builds of indexes -- check for indexes are done on coordinator
> node
> 2. no active rebalance referring an old versions -- rebalance started with
> the latest version
> Depending on the complexity, the last part may be implemented as a separate
> ticket, but compaction should not be enabled until all parts are implemented.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)