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)

Reply via email to