[
https://issues.apache.org/jira/browse/IGNITE-22849?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Pereslegin resolved IGNITE-22849.
---------------------------------------
Resolution: Won't Do
After discussion, an alternative approach was proposed, adding a
{{flush(trigger=false)}} method to "subscribe" to a future checkpoint.
Will try to implement it in IGNITE-22638
> Provide listener API on PartitionDataStorage/MvPartitionStorage with semantic
> onCheckpointBegin/afterCheckpointEnd.
> -------------------------------------------------------------------------------------------------------------------
>
> Key: IGNITE-22849
> URL: https://issues.apache.org/jira/browse/IGNITE-22849
> Project: Ignite
> Issue Type: Improvement
> Reporter: Pavel Pereslegin
> Priority: Major
> Labels: ignite-3
>
> To safely perform catalog compaction, it is necessary to implement an API to
> listen for start/end events when flushing data to disk. Similar to what
> already exists for `aipersist`, but on
> {{MVPartitionStorage}}/{{PartitionDataStorage}} level.
> For example:
> {code:java}
> MvPartitionStorageFlushListener {
> void onFlushBegin()
> void afterFlushEnd()
> }
> {code}
> The {{onFlushBegin}} call must be guaranteed to occur before the data is
> written to disk and that the data set to be written will not change. That is,
> the semantics are similar to the current behavior of
> {{CheckpointListener#onCheckpointBegin}}, but must be implemented at the
> {{MvPartitionStorage}} level.
> The {{afterFlushEnd}} call should be guaranteed to be made only after the
> checkpoint has completed successfully. That is, if the node is subsequently
> restarted, the logical recovery records made before the checkpoint will not
> be used to restore the node state (most likely, it is enough to subscribe to
> the future from the {{flush()}} method).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)