[
https://issues.apache.org/jira/browse/IGNITE-22637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Pereslegin updated IGNITE-22637:
--------------------------------------
Description:
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
h4.
was:
To select a compaction time, each node should provide its MinimalRequiredTime
to compaction coordinator. To compute that time:
1. Get current value of low watermark.
2. Get min of check pointed time across all partitions.
3. Get min of begin_time across all started transaction.
4. Take min of 1., 2., 3.
begin_time transaction time (3) is stored in transient state of the
PartitionListener.
During checkpoint we write that time into the raft log.
When the compaction coordinator chooses min catalog version/catalog time, it
sends a catalog compaction command with this information to each node. Each
node should execute such command to perform compaction.
> 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
> 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
> h4.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)