> > And these values apply to all volumes in the pool, right? 
> 
> Yes, which may encourage some users to create different Pools 
> for different Media Types.

Good. This is a productive direction..8-). 

> > Operationally, I think you'll be
> > more concerned with the entire pool case, using the volume 
> occupancy 
> > information to select what volumes are eligible for migration.
> 
> Well, Bacula is a bit brain-damaged, so for the moment, it is 
> not going to be able to use volume occupancy information to 
> select particular Volumes for migration.  What I am talking 
> about for the moment is Job migration (see project #1 for 
> details).  Now, if one arranges things right (Migration Time 
> for example), this might translate into Volume migration.

OK. I can see how volume migration could be composed as a second-order
process on top of job migration. Since you've given us a method to get
to the internal representation of jobs in the Python interface, that
will probably be the vector for experimenting with this. 

> If users want Volume migration, we could possibly come up 
> with such a project, but it is considerably more complex, and 
> not as useful, IMO, as Job migration (at least for a first 
> cut at migration) because Job migration implements 99.9% of 
> the code necessary for Copy, Archive, and Consolidation 
> (Virtual Full backups) at no extra cost.

Fair enough. I was thinking specifically about the case of replacing the
spooling code as the most obvious and immediate use of the volume
migration component -- in that scenario, you want to empty whole volumes
ASAP, so making that process efficient and fast (and quickly available)
seems desirable. Let's see how it goes -- I suppose we could simulate
the desired behavior with a Migration Time of zero for now. 


> For example, I could imagine that the current code would have 
> a Job Level of "Job" and what you want would be Job Level = "Volume".

OK. As I discussed above, I can see volume-level migration as being
decomposed into multiple job level moves. 

> > I think labeling it as a Backup job would be confusing. It's not 
> > really a backup; it's a migration job.
> 
> Yes, except that I am planning to have the Migration job 
> function much like a backup.  When anything is moved or 
> copied, a whole new set of database records need to be 
> written.  I find it cleaner to attach them to the Migration 
> job, which just falls out of the code, rather than trying to 
> go back and delete part of the previous job data and patch 
> the new records in.  
> In fact, it would be *very* difficult to get it right.

It's not the function or method I'm objecting to, it's the name -- maybe
I didn't completely understand. No matter what it does internally, I
think the Migration job should show up in user-visible space as a
different type of job than a backup. Otherwise, I think you'll end up
confusing people and making it harder to document. The fact that it does
exactly the same thing internally as a backup is just for us programmer
types...8-). 

> > > - An Archive feature can also be implement from this -- 
> it is simply 
> > > a Copy with no record being put in the catalog and the 
> output Volume 
> > > types being Archive rather than Backup.  (Note, my concept of 
> > > Archive is that no record of them remains in the catalog 
> -- this may 
> > > be a subjet of discussion ...)
> >
> > I'd say that you absolutely *want* records of where you 
> archive stuff.
> > You could add a COPY DATA command that would behave like 
> the MOVE DATA 
> > command I described above, and give it an option as to whether to 
> > record the copy in the database or not (default being yes). 
> There you 
> > probably want to allow either volume names or specifying individual 
> > job numbers to copy to the new volume.
> 
> The Copy job will record detailed data locations and File 
> level information in the database. The Archive does not 
> record detailed data locations or File level information in 
> the database (except perhaps the Job record).

Ah, so for cases like extracting all a user's data when he/she leaves a
job.  I think I'd call that a Extract rather than using the name
Archive. To me, Archive implies that the data may need to be recalled
some day and needs to stay under close management, for which you would
need detailed records of file locations, and all the other goodies that
go along with that.  An Extract would be exactly that -- pull a copy of
the data as is, no records expected, because the information is leaving
the Bacula environment. 

Mechanically, I think the implementation would be very similar. For an
Extract, I think you're correct in that you would probably only need the
start/stop job records, and maybe a summary of the data pulled for
auditing reasons. 

-- db


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id865&op=click
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to