[Box Backup] exception BackupStore InvalidBackupStoreFilename (4/3)

Chris Wilson boxbackup@fluffy.co.uk
Mon, 5 May 2008 17:26:44 +0100 (BST)


Hi James,

On Mon, 5 May 2008, Chris Wilson wrote:

> Out of curiosity, roughly how many "object is unattached" messages did 
> you get in the check run (without fix), and how long is it taking to 
> produce each one when fixing? (this should give us an estimate of how 
> long the fix will take at the current rate).

Sorry, I missed that part in your previous message where you answered one 
of these. If every single object in that range is missing a parent then 
it's about 120,000 objects, of whicit's finished fixing about 5,000 so 
far, in just over a day. That tells me that it's taking about 16 seconds 
each, and it's about 5% finished, so it will take 20-30 days to finish :-(

I think the main problem is this code in BackupStoreCheck2.cpp:

	// The easiest way to do this is to verify it again. Not such a 
	// bad penalty, because this really shouldn't be done very often.
                                                        
	std::auto_ptr<RaidFileRead> file(RaidFileRead::Open(mDiscSetNumber, 
		filename));
	BackupStoreFile::VerifyEncodedFileFormat(*file, &diffFromObjectID);

Unfortunately this is done for every unattached file, in your case 
120,000 of them. That's not compatible with my definition of "not very 
often".

I think it means reading the entire contents of the file in each case. I 
don't know how many files you have in total, or what the encrypted 
filesystem is that you're running on, but I guess it's conceiveable that 
it could take days to read 20 GB of data, especially if seeks are 
involved.

What sort of performance do you get, e.g. how long does it take to read a 
1GB file from this filesystem? Is it CPU or I/O bound? If it's CPU, then 
you might find it much faster to copy the data off the encrypted partition 
before running check fix on it.

Also, since Box Backup's backups are already encrypted by the client, why
put it on an encrypted filesystem?

Cheers, Chris.
-- 
_____ __     _
\  __/ / ,__(_)_  | Chris Wilson <0000 at qwirx.com> - Cambs UK |
/ (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Ruby/Perl/SQL Developer |
\ _/_/_/_//_/___/ | We are GNU : free your mind & your software |