Jesus 'n Jim

A mainly PC (some Mac) site w/Software, Computer Repair Info, How-To's on Using Computers
Technical Support 1-360-521-2060 (my business line cell)

 

antivirus speed-up idea

how things are done now:

serially.

estimate it takes minimum 18+ days/weeks for 2x2TB of data. windows 7 is not stable enough to stay running for more than 2-3 days without the need for a reboot. XP: 2 weeks.

proposal:

parallelize the drives it scans by creating a separate scan thread for each drive and running them as parallel jobs.

I read windows can deal with hard disk channels in parallel. so take advantage of that and run all the drives or drive selections at once.

a drive channel cannot be accessed in parallel. I know that from testing. unless maybe you are doing NCQ (which I have not tried yet, my understanding is it makes the drive access in sweep patterns), and the OS handles that pretty much, however you can access NCQ directly I think through the win32 API...

threads that finish before others should exit and close themelves, but not before notifying the main thread that they are done, whether through WaitForMultipleObjects() or through other means. since they are threads, they should be monitored by the main thread for drive read/write errors and handle that appropriately.

Performance:

given n drives (n threads) this will speed up things n times provided processor has n threads/cores.

assuming I have 3 drives (3 threads), estimate it would take 18days/3drivethreads=6 days. the running time is actually the running time of the longest drive.