User Manual
StableBit Scanner 1.X
An innovative disk surface scanner, disk health monitor and file recovery system.

Surface Scanner

(Build 2635)

Back to Contents

This is an advanced section of the manual and you may want to read this if you're interested in the nuts and bolts of how it all works. For everyone else, see the Quick Start section.

The StableBit surface scanner is at the heart of the StableBit Scanner software. This section is dedicated to explaining the advanced functionality available as part of the surface scanner.

Sector Selection

The StableBit Scanner keeps track of every sector that it has ever scanned on every disk for up to one year. If it doesn't see the same disk for an entire year, then its scan history is discarded.

Since the StableBit Scanner knows if it has checked a particular disk before, it will not check it again until some time in the future. The number of days to wait between re-checking of sectors is 30 days by default, but can be changed in settings. This applies to both manual and automatic scans. If you want to force a full disk check, you must mark the already checked sectors as unchecked. One way to do this is to right click on the disk that you want to check and select Force Re-check.

Once it's time to re-check some sectors on one or more of your disks, StableBit Scanner goes to work while diligently monitoring disk I/O from other processes and disk temperature to make sure that it's not interfering with other system activities and that it's not over-stressing the disk.

Keep in mind that just because a sector is ready to be re-checked doesn't mean that it will be scanned immediately. In order for a scan to start automatically, the scanner must be in automatic mode (see Toolbar), and the current time must be within the scan time window that's configured in Settings.

Even though it seems that keeping track of every sector on every disk would take a lot of disk space, it actually doesn't. Internally, instead of storing individual sectors, the StableBit Scanner uses sector ranges and so the storage of these ranges is minimal.

The StableBit Scanner does not store anything in the Windows registry, it uses a special storage mechanism developed specifically for efficient, quick access and inter-process communication. The Omni-Store is both a persistent and memory resident hierarchical storage system with efficient replication capabilities across inter-process boundaries or even inter-system boundaries.

This architecture lets us easily isolate the user interface from any and all processing that is performed. In fact, all the scanning work is done on a separate background process.

The user interface is never involved in gathering S.M.A.R.T. data, performing any kind of scans or querying disks directly for information.

Unreadable sectors have a separate re-check interval that can be changed in settings. By default it's set to 30 days.

It is important to re-check unreadable sectors because hard drives will re-map an unreadable sector to a known good one automatically, whenever something writes over it.

Keep in mind, that even though we talk about re-checking disks every 30 days, the 30 day interval actually applies to individual sectors on the disk.

For example, if half the disk is scanned on 1/25/2011, and the other half is scanned the next day. The first half will be available for a re-check on 2/24/2011 (exactly 30 days later), and the second half will be available for a re-check the next day (2/25/2011). The time of day was omitted for simplicity, but actually does apply as well.

The last check time for a sector is set to when then current scan cycle started. This is an optimization, so that we don't have to save a last check date for each individual sector.

Overheat Protection and Temperature Equalization

For disks with accessible S.M.A.R.T. data, the StableBit Scanner will monitor their temperature to ensure that it's not overstressing them. If the disk temperature is exceeded while scanning the disk, then another disk on the same controller group that's not exceeding the maximum temperature is selected to be scanned instead. If no other disk is waiting to be scanned on this controller group, then the scan is either suspended until the disk cools off or the scan will continue at a throttled rate.

The maximum allowed disk temperature is set up in Settings.

Whether a scan is suspended or throttled, and how much to throttle, is set up in settings.

Besides the standard overheat protection, the StableBit Scanner features temperature equalization. When scanning multiple disks on a controller, if the disk being scanned becomes significantly hotter than the other disks waiting to be scanned, then the scan is suspended and another cooler disk is picked instead. This happens even if the disk is not exceeding its maximum temperature, and gives the hotter disk a chance to cool down.

Overall, this minimizes temperature fluctuations on all the disks being scanned.

How hot is significantly hotter? It's set up in Settings.

Normally, if temperature equalization is triggered then the current disk scan is suspended and the coolest disk in the controller group that's waiting to be scanned is selected. However, this is not always the case. If the coolest disk is in use, then it will not be selected to be scanned and will keep waiting.

Scan Throttling

Scan throttling is designed to prevent disk scanning from interfering with other applications using the disk or network access. It's behavior is straight forward. If something else starts using the disk while a scan is in progress, then the scanner will check to see if there's another disk in the controller group that's not busy and switch to it instead. If there is no better disk to scan then the scan is suspended until the disk access stops.

In order to prevent constant starts and stops of the scan, the StableBit Scanner will allow some concurrent disk activity while scanning. How much concurrent activity to allow, you can change in Settings.

Scan throttling due to disk activity is not enough to prevent the scanner from interfering with all disk and network access. Consider what happens if you have 4 hard disks connected to the same USB controller. Typical read bandwidth for a hard disk over USB 2.0 is somewhere in the range of 20 to 25 MB/s, while a hard disk's maximum sustained throughput can be 60 to 100 MB/s and even much higher on SSD disks. This will quickly consume the available bandwidth of the USB bus.

So in this scenario, if you were to be scanning 1 of those 4 disks, then disk access to the other 3 disks would severely degrade in performance. This situation would not normally trigger disk throttling as described above because there would be no disk activity on the disk being scanned.

To prevent this scenario, the StableBit Scanner features bus saturation detection and throttling. With this enabled, if the current scan is close to saturating the controller bus, and disk activity starts to take place on one of the other disks, then the current scan is suspended until that disk activity stops. In this case, no other disk will be scanned on the same controller, because doing so would continue to oversaturate the bus and interfere with the other disk access.

In order for bus saturation detection to work, the StableBit Scanner must measure the bus performance on each controller group. This measurement happens automatically in the background when there is no disk activity. It's refreshed every week.

Because of this, bus saturation detection may not be available right after a fresh install.

You can tell if the StableBit Scanner has measured the bus speed for a particular controller group by right clicking on any disk in that group and opening the Technical Details window. If the bus speed was measured, it will be shown in the information sub-panel.

Scanning Multiple Disks at the Same Time

StableBit Scanner supports scanning more than one disk at the same time, as long as the disks are on separate controllers.

If multiple disks need to be scanned in the same controller group, then the best disk is selected and scanned while the others wait their turn. If the scan of the currently scanning disk needs to be suspended for some reason, then the next best disk is chosen to be scanned instead. The reason for the scan switch is noted in the main Disk List's status column and on the Advanced Disk Panel below the sector map.

Some reasons for picking a new disk to scan are disk activity from other processes, disk overheating and temperature equalization.

The best disk is determined based on a number of factors including it's temperature and it's past disk activity. These factors are weighed together and the best candidate is selected.

If Bus saturation throttling is invoked, then the current scan is suspended and no other disk is scanned. This is because scanning another disk on the same controller would continue to oversaturate the bus and negatively affect other processes trying to access any of the disks on that controller.