Pavel Pereslegin created IGNITE-22849:
-----------------------------------------
Summary: 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
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 {{onCheckpointEnd}} call should be guaranteed to be made only after the
checkpoint has completed successfully. It is probably enough to subscribe to
the completion of the future from the flush() method.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)