[
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]