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