Hi, I would like to propose and develop a new Bacula feature, partial file restoration. I am hoping this will be accepted into the official Bacula source code and therefor I'm writing to the Bacula development list to request comments on the planned implementation details and also to take advantage of any previous efforts. However searching through the Bacula archives, the Bacula accepted projects list and the web I have not seen any indication of previous work in this area.
Justification In some workflows only one or more small pieces of a file are needed. This could be the beginning or end of a big archive file to determine its content or parts of video files. Similar features exists in for example Quantum's A-Series autoloaders using an embedded FTP server and extended FTP commands. Implementation The partial file selection will be done during the file marking stage of starting a restoration job. This will introduce a new command "markpartial" to supplement "mark" and "markdir". The file list import will also be extended to support file offsets. Example usage: $ markpartial 0 209715200 bigfile.tar.gz 1 file segment marked. This would indicate we want to restore the first 200MiB of bigfile.tar.gz. The segment to be restored would be added to a linked list which can contain multiple restore segments, so the following example would also be possible: $ markpartial 0 1024 video.mov 1 file segment marked. $ markpartial 2048 4096 video.mov 1 file segment marked. This would result in two parts of video.mov being restored. The format for marking file using the "file=<filelist.txt" syntax would be extended to support file offsets. A way to support this using the examples above could be: <offset>,<length>; \0<filename>\n 0,209715200;\0/path/to/bigfile.tar.gz 0,1024;2048,4096;\0/path/to/video.mov Output format There are at least two options for how the files are restored to disk. * Allow the user to specify a output filename at the time of marking the restoration ranges allowing one filename per segment. * Use a sparse file and restore the requested ranges to the original positions using the original filename. I have not included very detailed implementation details at this stage as I would like some feedback on what the Bacula community would like to see from this feature. Sincerely, Alexander Wigen ------------------------------------------------------------------------------ What happens now with your Lotus Notes apps - do you make another costly upgrade, or settle for being marooned without product support? Time to move off Lotus Notes and onto the cloud with Force.com, apps are easier to build, use, and manage than apps on traditional platforms. Sign up for the Lotus Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d _______________________________________________ Bacula-devel mailing list Bacula-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-devel