I put together some code to build a list of 'files changed since' using
the Windows USN Change Journal, and did a few comparisons...

My example machine normally takes 8 minutes to back up 32MB on an
incremental, which calculates out at 66.6KB/second (according the bacula
report). To get a rough idea of the ideal speed, a full backup is 80GB
and normally averages around 2-4MB/second (again, according to bacula).

My un-optimised 'change journal' code which simply calculates a list of
files changed runs in a few seconds. In theory, even if I got 10% of the
backup speed of my 'Full' backup, my backup should run in under a minute
and put a heap less load on the server being backed up. I think this is
worth pursuing.

(If you didn't read some previous emails from me on this subject -
Windows supports a Change Journal which contains a journal of all the
stuff that has happened to the filesystem. Accessing this is a bit more
work than I initially thought (building full paths is not
straightforward) but compared to recursing the filesystem and asking
"has this file changed", the Change Journal is much much faster)

So now I'm looking at how I could integrate my code into bacula for some
proper performance comparisons. The 'find_one' routine appears to be the
right place for it, and my current idea is:
. top level call to find_one will build the change list from the
journal, then iterate through it, but only if the "File=" is the root of
the drive (eg C:/ or D:/) (initially at least, this isn't necessarily a
restriction, it's just easier :)
. the first level of recursion just backs up the file as normal, making
sure not to recurse itself any further.
. if, when building the change list, we find that the change list isn't
working for whatever reason (records fell of the end of the journal etc)
then we just fall back to the regular 'check each file against the since
date' code and everything works the same, but slower.

Any comments?

Thanks

James


------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to