[ 
https://issues.apache.org/jira/browse/HDDS-12560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Swaminathan Balachandran updated HDDS-12560:
--------------------------------------------
    Description: 
Currently all garbage collection threads peek into previous snapshots to check 
whether a particular deleted key/deleted Directory/ RenameEntry can be removed 
from the system. All of these operations happen without taking locks because of 
which all of these threads could be working on an inconsistent snapshot data.

This patch implements a general utility class which would be responsible for 
opening last N snapshots from the snapshot chain corresponding to the keys 
bucket where N is going to be defined by the garbage collection thread based on 
whether if it is reclaiming a deletedKey/deletedDirectory/RenameEntry after 
taking a read lock on all of these snapshots. If there are lesser than N 
previous snapshot in the chain, only the existing snapshots would be considered 
and rest of them would be just marked as null. This utility class should fail 
opening the snapshot if any of these snaphshots are not active, since a deleted 
snapshot could be in an inconsistent state.

  was:
Currently all garbage collection threads peek into previous snapshots to check 
whether a particular deleted key/deleted Directory/ RenameEntry can be removed 
from the system. All of these operations happen without taking locks because of 
which all of these threads could be working on an inconsistent snapshot data.

This patch implements a general utility class which would be responsible for 
opening last N snapshots from the snapshot chain corresponding to the keys 
bucket where N is going to be defined by the garbage collection thread based on 
whether if it is reclaiming a deletedKey/deletedDirectory/RenameEntry. This 
utility class should fail opening the snapshot if any of these snaphshots are 
not active, since a deleted snapshot could be in an inconsistent state.


> Reclaimable Filter for Snaphost Garbage Collections
> ---------------------------------------------------
>
>                 Key: HDDS-12560
>                 URL: https://issues.apache.org/jira/browse/HDDS-12560
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Swaminathan Balachandran
>            Assignee: Swaminathan Balachandran
>            Priority: Major
>
> Currently all garbage collection threads peek into previous snapshots to 
> check whether a particular deleted key/deleted Directory/ RenameEntry can be 
> removed from the system. All of these operations happen without taking locks 
> because of which all of these threads could be working on an inconsistent 
> snapshot data.
> This patch implements a general utility class which would be responsible for 
> opening last N snapshots from the snapshot chain corresponding to the keys 
> bucket where N is going to be defined by the garbage collection thread based 
> on whether if it is reclaiming a deletedKey/deletedDirectory/RenameEntry 
> after taking a read lock on all of these snapshots. If there are lesser than 
> N previous snapshot in the chain, only the existing snapshots would be 
> considered and rest of them would be just marked as null. This utility class 
> should fail opening the snapshot if any of these snaphshots are not active, 
> since a deleted snapshot could be in an inconsistent state.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to