Currently SegmentDeletionManager has
- a
deleteSegments API that allows users to delete segments from property store and from deep store.
- a
removeSegmentsFromStore API that allows users to only delete from deep store.
This creates confusion regarding failure recovery, when the component service dies in the middle of the execution, they can either result in
- using
deleteSegments, property store could've deleted segment A, but file still exist in deep store
- using
removeSegmentsFromStore, segment A's file could've been deleted from deep store, but property store could still have segment A.
Which one should we go with as failure recovery strategy?
From the point that we have a retention manager that periodically checks deep store for files to delete, I think we should always first delete from property store and next delete from deep store. thoughts?
Currently SegmentDeletionManager has
deleteSegmentsAPI that allows users to delete segments from property store and from deep store.removeSegmentsFromStoreAPI that allows users to only delete from deep store.This creates confusion regarding failure recovery, when the component service dies in the middle of the execution, they can either result in
deleteSegments, property store could've deleted segment A, but file still exist in deep storeremoveSegmentsFromStore, segment A's file could've been deleted from deep store, but property store could still have segment A.Which one should we go with as failure recovery strategy?
From the point that we have a retention manager that periodically checks deep store for files to delete, I think we should always first delete from property store and next delete from deep store. thoughts?