>From the SDESS experience I would recommend that we write
a checksum file into each directory, which contains the name
of each file and its checksum. Then we have a way to verify
if anything happened to any of the contents. These entries
should be generated immediately after the file was written.

--Alex

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Russell E. Owen
Sent: Tuesday, May 30, 2006 5:45 PM
To: [email protected]
Subject: [LSST-data] Re: catalog ingest service [Data Challenge]

In article 
<[EMAIL PROTECTED]>,
 Ray Plante <[EMAIL PROTECTED]> wrote:

> On Fri, 26 May 2006, Russell E. Owen wrote:
> > The plan is for the Catalog Ingest Service (CIS) to have a higher level 
> > component that will itself decide such things as:
> > - how many worker processes are best to handle the slices
> > - which slices are handled by which process
> > - perhaps is smart enough to realize that a process is stalled and 
> > restart it on a different node (not likely for DC1)
> 
> Would it be simpler to just replicate the ingest service on different 
> nodes, each one monitoring a different input directory?  The configuration

> of the converter pipeline stage would just indicate which directory to 
> write its output to.  Since we only need 2 (rather than 200) ingest 
> nodes, half of the converters would write to one directory, and the other 
> half to the other directory.  

Having talked to Ray on the phone, we agreed to have each slice write 
data files to a separate subdirectory, one whose name is trivially 
derived from the name of the slice. In other words, we'll stick to 
Jacek's original plan in this regards.

That is easier for the catalog ingest service (CIS) because it knows 
that all files in a given directory are from a given slice. If data from 
multiple slices is written into one directory then the CIS would have to 
parse each data file name to figure out which slice it came from.

Also, to summarize other conversations with Ray and Jacek:
- The CIS is naturally divided up into two levels.
* At the lower level, a set of 2 or so CIS workers will run, each as a 
separate process on a separate node, each ingesting data from a 
specified set of slices into *one* database server.
* At the higher level, somebody needs to launch these CIS workers. 
Exactly who is still in question:

The CIS workers are smart enough that it appears to make sense for the 
pipeline manager to directly run them. Each CIS worker needs no more 
than a policy listing which slices to listen for and info for connecting 
to the appropriate database. The pipeline manager can detect when each 
CIS worker finishes (or fails, depending on its exit code).

But I can write a higher level CIS manager if that is desirable. Its job 
would be to apportion the slices and databases among the CIS workers. 
Nearly trivial (the only unknown at all is learning how best to launch 
the CIS workers on the appropriate nodes).

My impression from the phone con was that the pipeline manager was a 
natural choice to launch the CIS workers, but that it wasn't a done deal 
and we'd talk more about it next week. Meanwhile I will concentrate on 
finishing the CIS worker code.

-- Russell

_______________________________________________
LSST-data mailing list
[email protected]
http://www.lsstmail.org/mailman/listinfo/lsst-data


_______________________________________________
LSST-data mailing list
[email protected]
http://www.lsstmail.org/mailman/listinfo/lsst-data

Reply via email to