On 3/23/2012 12:49 PM, Phil Stracchino wrote: > On 03/23/2012 11:58 AM, Josh Fisher wrote: >> A FIFO queue makes sense, but how will SD know when it has completed >> writing all of the spool files for a particular job? > The same way it knows it's finished writing all the data for a > particular job now, I assume.
I don't think so. Each SD-FD connection is handled in its own thread. At the beginning of append_data(), begin_data_spool() is called to set the system device that will be written to. The thread then reads from the FD connection and writes to that device until all of the data has been sent by the FD. It then closes the FD connection and calls commit_data_spool() to read the spooled data and write it to volumes (or discard_data_spool() if there was an error. OK. That could be modified to repeatedly call begin_spool_data() and commit_data_spool() to split the spool file into N 1 GB files. But note that each job is in its own thread, so when it does the commit_data_spool(), the data is either written to a volume or there is an error. Either way, when commit returns, it knows the status. You are talking about a commit_data_spool() that doesn't write, but instead queues the file to be written by another thread. Consider the case where the data is less than 1 GB and when the commit_data_spool() queues the file to be written by the spool manager thread. Let's say it queues just fine. Then the append_data() will see that as a successful job and terminate, and the job will complete successfully. Meanwhile, say there is a problem with a volume and the actual write, being done by the spool manager thread, fails. Now we have a job that thinks it has succeeded, yet no data was written to tape. I think there has to be some sort of communication, and the thread doing the append_data() has got to wait and find out if the spool manager actually managed to write the data to tape, which is quite a bit different than the current way. ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ Bacula-devel mailing list Bacula-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-devel