Skip to content

Conversation

@alex-rg
Copy link

@alex-rg alex-rg commented Jun 5, 2023

The check is performed in 3 steps: initial search, verification and dark object's search.

In the fist step a sorted list of objects is read, for every file we get it's size, size of the last object, and also calculate the number of objects that constitute the file.
If <file_size> != <object_size>*(<object_count> -1) + <last_obj_size>, the file is considered to be corrupted.

In the second step list of obtained in the first step files is read and "full" live check is performed for every file. I.e. every file's object is statted and sizes are compared. This is necessary because some files may be only partially transferred during the dump collection.

The final step is collection of orphaned objects. This is done since these objects can not be removed using rados striper.

The check is performed in 3 steps: initial search, verification and
dark object's search.

In the fist step a sorted list of objects is read, for every file
we get it's size, size of the last object, and also calculate the
number of objects that constitute the file.
If <file_size> != <object_size>*(<object_count> -1) + <last_obj_size>,
the file is considered to be corrupted.

In the second step list of obtained in the first step files is read
and "full" live check is performed for every file. I.e. every file's
object is statted and sizes are compared. This is necessary because
some files may be only partially transferred during the dump collection.

The final step is collection of orphaned objects. This is done since
these objects can not be removed using rados striper.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant