Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

qualifying sectors based on neighbours #3

Open
tomato42 opened this issue May 1, 2018 · 0 comments
Open

qualifying sectors based on neighbours #3

tomato42 opened this issue May 1, 2018 · 0 comments
Labels
enhancement New feature or request
Milestone

Comments

@tomato42
Copy link
Owner

tomato42 commented May 1, 2018

currently the qualification mechanism (for latent or reallocated sectors) uses quantiles, in practice the behaviour of sectors is much more complex – while when the block is in good condition, the reads will mostly follow normal distribution, in case the block has issues, there will be re-reads, and the times of those re-reads will be distributed depending on number of times the disk had to re-read the sector

in short, if the sector is good, there will be one normal distribution for the read times
if the sector is in worse condition, the times will come from multiple normal distributions, each separated from the other by the rotational delay (8.33(3)ms for 7200 rpm disk)

using the neighbouring sectors, we can tell if the sector comes from one of the re-read distributions, or from a regular read; if the read is near the multiple of the rotational delay, it means that it really required a re-read, if it doesn't, it likely means that the delay (or at least part of the delay) came from external sources, so the sector should be re-read

Testing if a sample is from the same distribution as other samples can be done using Kolmogorov–Smirnov test.
Handling of blocks with track changes and the slowing down as the reads get to the end of the drive will require a bit more complex approach though.

@tomato42 tomato42 added the enhancement New feature or request label May 1, 2018
@tomato42 tomato42 added this to the everything milestone Jul 21, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant