IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 12, 2004, 7:28:11 PM (22 years ago)
Author:
Paul Price
Message:

Hacking the Pixel Server section to simplify it and explain it more.
Changed the names and acronymns and removed one component which didn't
seem to be necessary. Attempted to flesh out the basic operations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/design/design.tex

    r421 r422  
    1 %%% $Id: design.tex,v 1.3 2004-04-13 04:05:15 price Exp $
     1%%% $Id: design.tex,v 1.4 2004-04-13 05:28:11 price Exp $
    22%\documentclass[panstarrs,psreport]{panstarrs}
    33\documentclass[panstarrs]{panstarrs}
     
    325325stages on separate machines and monitors their progress.  An example
    326326of the controller functionality is ``Run the phase 2 processing on
    327 exposure number 1234''.
     327exposure number 1234 using machines 1,3,5,7,9''.
    328328
    329329\subsubsection{Scheduler}
     
    333333images as they are received.  An example of the scheduler
    334334functionality is ``I've just received exposure number 1234; run phase
    335 1--4 controllers on these''.
     3351--4 controllers on exposure 1234''.
    336336
    337337%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    348348The IPP Pixel Server (IPS) is a repository for all image pixel data
    349349required by the IPP.  Images may reside in the IPS for different
    350 periods depending on their use and type.  Images stored by the IPS
     350periods depending on their use and type.  Data stored by the IPS
    351351include the raw images, the calibration images, intermediate
    352352processing stage images as needed, final processed images, difference
    353 images, and image subsections.  The IPS must retain images as long as
    354 they are needed, up to the lifetime of the project.  In order to
    355 achieve the I/O requirements, the IPS may maintain the pixel data
    356 distributed across the processor nodes in an organized fashion, i.e.\
    357 associating specific machines with specific OTAs.  The IPS interacts
    358 with the IPP Metadata Database to allow other systems or subsystems to
    359 identify the available images meeting specified criteria.  IPS
    360 specifications are described in the IPS subsystem specification.
     353images, and image subsections, \tbd{along with the associated
     354metadata}.  The IPS must retain images as long as they are needed, up
     355to the lifetime of the project.  In order to achieve the I/O
     356requirements, the IPS may maintain the pixel data distributed across
     357the processor nodes in an organized fashion, i.e.\ associating
     358specific machines with specific OTAs.  The IPS interacts with the IPP
     359Metadata Database to allow other systems or subsystems to identify the
     360available images meeting specified criteria.  IPS specifications are
     361described in the IPS subsystem specification.
    361362
    362363In addition to storing the pixel data, the IPS is responsible for
     
    369370
    370371\begin{enumerate}
    371 \item IPP Pixel Data Scheduler
    372 \item IPP Pixel Data Locality Optimizer
    373 \item IPP Pixel Data Database
    374 \item IPP Pixel Data Retrieval Agent
    375 \item IPP Pixel Data Query Library
    376 \item IPP Pixel Data I/O Library
    377 \end{enumerate}
    378 
    379 \subparagraph{IPP Pixel Data Scheduler (IPP-PDS)}
    380 
    381 The IPP Pixel Data Scheduler coordinates the movement of image data
    382 onto {\em local} storage for processing by the IPP System and executes
    383 batch image data management tasks.  By ``local storage'' is meant
    384 storage accessible from a particular local machine (i.e.\ either on a
    385 disk physically connected to the machine, or a disk mounted over the
    386 network).
    387 
    388 The IPP Pixel Data Scheduler has four basic modes of operation:
     372\item IPP Pixel Server Scheduler (IPSS)
     373\item IPP Pixel Server Data Locality Optimizer (IPSDLO)
     374\item IPP Pixel Server Database (IPSD)
     375\item IPP Pixel Server Node Agent (IPSNA)
     376\item IPP Pixel Server I/O Library (IPSIOL)
     377\end{enumerate}
     378
     379\subparagraph{IPP Pixel Server Scheduler (IPSS)}
     380
     381The IPSS coordinates the movement of image data and executes batch
     382image data management tasks.  The IPSS has four basic modes of
     383operation:
    389384
    390385\begin{itemize}
    391 \item Copy external data: The IPP-PDS generates {\em retrieve data}
    392   tasks which are executed on nodes specified by the IPP-DLO.  This
    393   mode will be used frequently to copy data from the Summit Pixel
    394   Server to the IPP nodes for processing.
    395 \item Delete data: The IPP-PDS looks up the location of the data in
    396   the IPP Pixel Data Database and generates {\em delete data} tasks
    397   which are executed on the appropriate nodes.  This mode will be used
    398   on a regular basis to clean old data that is no longer required.
    399 \item Replicate data: The IPP-PDS generates {\em retrieve data} tasks
    400   which are executed on nodes specified either by the ``replicate
    401   data'' command, or by the IPP-DLO.  This mode differs from the
    402   ``copy external data'' mode in that it copies data already within
    403   the IPP-PDS.  This mode will be used to backup and rearrange data.
    404 \item Move data: the IPP-PDS executes a replication followed by a
     386\item Retrieve external data: The IPSS generates {\em retrieve data}
     387  tasks which are executed by the IPSNAs on nodes specified by the
     388  IPSDLO.  This mode will be used frequently to copy data from the
     389  Summit Pixel Server to the IPP nodes for processing.
     390\item Delete data: The IPSS looks up the location of the data in the
     391  IPP Pixel Data Database and generates {\em delete data} tasks which
     392  are executed by the IPSNAs on the appropriate nodes.  This mode will
     393  be used on a regular basis to clean old data that is no longer
     394  required.
     395\item Replicate data: The IPSS generates {\em copy data} tasks which
     396  are executed by the IPSNAs on nodes specified either by the
     397  ``replicate data'' command, or by the IPPDLO.  This mode differs
     398  from the ``copy external data'' mode in that it copies data already
     399  within the IPSS.  This mode will be used to backup and rearrange
     400  data.
     401\item Move data: the IPSS executes a replication followed by a
    405402  deletion.  This mode will be used to reorganise the storage.
    406403\end{itemize}
    407404
    408 It is not intended that the IPP-PDS will be used by the nodes in the
     405It is not intended that the IPSS will be used by the nodes in the
    409406course of processing --- it is only for bulk data management.  ``Copy
    410407external data'' mode will be used frequently to retrieve data from the
     
    415412
    416413
    417 \subparagraph{IPP Pixel Data Locality Optimizer (IPP-PDLO)}
    418 
    419 The IPP Pixel Data Locality Optimizer is a data task filter.  Data
    420 tasks generated by the IPP Pixel Data Scheduler are passed through the
    421 IPP Pixel Data Locality Optimizer which may assign tasks to specific
    422 nodes.  This component is a merely a plug-in and may be bypassed
    423 depending upon the operating mode of the IPP Pixel Data Scheduler.
    424 
    425 \subparagraph{IPP Pixel Data Database (IPP-PDD)}
    426 
    427 The IPP Pixel Data Database contains image data locations \tbd{and the
    428 associated metadata}.
    429 
    430 The IPP-PDD will contain at least:
    431 
     414\subparagraph{IPP Pixel Server Data Locality Optimizer (IPPDLO)}
     415
     416Data tasks generated by the IPSS are passed through the IPSDLO which
     417assigns write tasks to specific nodes.  This allows the location of
     418the data to be optimized so that it resides on the node which will
     419process it.
     420
     421\subparagraph{IPP Pixel Server Database (IPSD)}
     422
     423The IPSD contains image data locations \tbd{and the associated
     424metadata}.  The IPSD will contain at least:
    432425\begin{itemize}
    433426\item The location of image data and its associated metadata that is
    434 available for retrieval from the Summit Pixel Server.
     427  available for retrieval from the Summit Pixel Server.
    435428\item The location of image data and its associated metadata that is
    436 yet to be processed by the IPP System.
     429  yet to be processed by the IPP System.
    437430\item The location of calibration data and its associated metadata for
    438 processing within the IPP System.
     431  processing within the IPP System.
    439432\item The location of reduced image data and its associated metadata as
    440 generated by the IPP System.
     433  generated by the IPP System.
    441434\item The location of difference image data and its associated metadata as
    442 generated by the IPP System.
     435  generated by the IPP System.
    443436\item The location of stacked image data and its associated metadata as
    444 generated by the IPP System.
     437  generated by the IPP System.
    445438\item A history of data management commands and actions.
    446439\end{itemize}
    447440
    448 \subparagraph{IPP Pixel Data Retrieval Agent (IPP-PDRA)}
    449 
    450 The IPP Pixel Data Retrieval Agent acquires image data from a
    451 specified location, possibly the Summit Pixel Server(s), and stores it
    452 at a specified location.  The IPP-PDRA is independent of the
    453 underlying storage medium by using the IPP Pixel Data I/O Library.
    454 
    455 
    456 \subparagraph{IPP Pixel Data I/O Library (IPP-PDIOL)}
    457 
    458 The PDIOL is the workhorse of the Pixel Server system.  It is a
    459 library for retrieving files from and storing files to Uniform
    460 Resource Identifiers (URIs), which can be used on the nodes to access
    461 the pixel data.  It will be able to:
     441\subparagraph{IPP Pixel Server Node Agent (IPSNA)}
     442
     443The IPSNA runs on a node to perform the operations required by the IPSS
     444and IPSIOL.  This includes:
    462445\begin{itemize}
    463 \item Locate new and reduced data for an exposure.
    464 \item Locate the appropriate calibration data for an exposure.
    465 \item Add the storage location and metadata of new data.
     446\item Retrieve data from an external source (e.g.\ the Summit Pixel
     447  Server) to a local disk as requested by the IPSS.
     448\item Copy data from one of the other nodes to a local disk as
     449requested by the IPPS.
     450\item Delete data from a local disk as requested by the IPSS or
     451  through the IPSIOL.
     452\item Respond to requests for data made by nodes through the IPSIOL.
     453\end{itemize}
     454
     455\tbd{The Agent does not wear a suit, nor does it know kung fu.}
     456
     457\subparagraph{IPP Pixel Server I/O Library (IPSIOL)}
     458
     459The IPSIOL is the workhorse of the IPP Pixel Server system.  It is a
     460library for reading and writing pixel data to the IPP Pixel Server.
     461It will generally be used on the nodes, although the IPSS will also
     462make use of it.  The IPSIOL will be able to:
     463\begin{itemize}
     464\item Lookup the location of new and reduced data for an exposure.
     465\item Lookup the location of the appropriate calibration data for an
     466  exposure.
     467\item Open a file at the location returned by a lookup.
     468\item Write new data and metadata to a specified location.
    466469\item Update the storage location and/or metadata of any data.
    467470\item Remove the storage location of data and metadata that has been
     
    470473
    471474
    472 
    473475\paragraph{Pixel Data Flow}
    474476
    475 \subparagraph{Acquisition}
     477Below we sketch out the intended sequence of events for common
     478operations.
     479
     480\subparagraph{Acquisition of data from the Summit Pixel Server}
    476481
    477482\begin{enumerate}
    478483\item The Summit Pixel Server sends a ``new data notification'' to the
    479 IPP Pixel Data Data Scheduler.
    480 \item The IPP Pixel Data Data Scheduler generates a {\em retrieve
    481 data} task which is filtered through the IPP Pixel Data Locality
    482 Optimizer, which possibly assigns the task to a specific node or group
    483 of nodes.
    484 \item The IPP Pixel Data Scheduler farms out the various copy tasks to
    485 the nodes, which spawn IPP Pixel Data Retrieval Agents.
    486 \item The IPP Pixel Data Retrieval Agents downloads the image data
     484IPSS.
     485\item The IPSS generates the {\em retrieve data} tasks which are to be
     486executed on specific nodes (i.e.\ those which will reduce the raw
     487data).
     488\item Each specified node spawn IPSDRAs which downloads the image data
    487489from the Summit Pixel Server to the disk physically mounted on the
    488490node.
    489 \item The node reports the finished task to the IPP Pixel Data Scheduler.
    490 \item The IPP Pixel Data Scheduler updates the IPP Pixel Data Database to
    491 the new storage location.
    492 \item The IPP Pixel Data Scheduler notifies the IPP Scheduler that new data is
    493 available by appending to a notification table in the IPP Pixel Data Database.
    494 \tbd{In addition a notification maybe sent directly to the IPP Scheduler.}
     491\item The node reports the finished task to the IPSS.
     492\item The IPSS updates the IPSD to the new storage location.
     493\item The IPSS notifies the IPP Scheduler that new
     494data is available.
    495495\end{enumerate}
    496496
     
    502502\end{figure}
    503503
    504 \subparagraph{Processing}
    505 
    506 \begin{enumerate}
    507 
    508 \item The IPP Scheduler gives the IPP Controller a Phase 2 image processing task.
    509 
    510 \begin{enumerate}
    511 \item The IPP Controller passes the task to a \tbd{IPP Node Agent}.
    512 \item The \tbd{IPP Node Agent} {\em spawns} a \tbd{IPP Image Processing Agent} and
    513 passes it the task.
    514 \item The \tbd{IPP Image Processing Agent} retrieves the exposure data to be processed
    515 with the IPP Pixel Data I/O library and loads it into local memory.
    516 \item The \tbd{IPP Image Processing Agent} retrieves the calibration data with
    517 the IPP Pixel Data I/O library and loads it into local memory.
    518 \item The \tbd{IPP Image Processing Agent} processes the Phase 2 task.
    519 \item The \tbd{IPP Image Processing Agent} stores the processed data with the
    520 IPP Pixel Data I/O library.
    521 \end{enumerate}
    522 
    523 \item The IPP Scheduler gives the IPP Controller a Stage 4 image processing task.
    524 
    525 \begin{enumerate}
    526 \item The IPP Controller passes the task to a \tbd{IPP Node Agent}.
    527 \item The \tbd{IPP Node Agent} {\em spawns} a \tbd{IPP Image Processing Agent} and
    528 passes it the task.
    529 \item The \tbd{IPP Image Processing Agent} retrieves the reduced image data
    530 with the IPP Pixel Data I/O library and loads it into local memory.
    531 \item The \tbd{IPP Image Processing Agent} retrieves the best stacked image
    532 data with the IPP Pixel Data I/O library and loads it into local memory.
    533 \item The \tbd{IPP Image Processing Agent} retrieves the current working
    534 stacked image data with the IPP Pixel Data I/O library and loads it into
    535 local memory.
    536 \item The \tbd{IPP Image Processing Agent} processes the Phase 4 task.
    537 \item The \tbd{IPP Image Processing Agent} stores the difference image with
    538 the IPP Pixel Data I/O library.
    539 \item The \tbd{IPP Image Processing Agent} stores the new working stacked
    540 image with the IPP Pixel Data I/O library.
    541 \end{enumerate}
     504\subparagraph{Processing Reads}
     505
     506\begin{enumerate}
     507\item A processing stage needs pixel data, e.g.\ the appropriate
     508flat-field for an image being processed.
     509\item The processing stage uses the IPSIOL to look up the location of
     510the appropriate image.
     511\item The processing stage retrieves the required pixel data using the
     512IPSIOL and loads it into local memory.
     513\end{enumerate}
     514
     515\subparagraph{Processing Writes}
     516
     517\begin{enumerate}
     518\item A processing stage has produced pixel data which should be saved, e.g.\ the
     519subtracted image.
     520\item The processing stage uses the IPSIOL to look up the location the
     521image should be written to.
     522\item The processing stage uses the IPSIOL to write the image.
     523\end{enumerate}
     524
     525\subparagraph{Processing Updates}
     526
     527\begin{enumerate}
     528\item A processing stage needs to update pixel data, e.g.\ the
     529static sky image.
     530\item The processing stage uses the IPSIOL to look up the location of
     531the appropriate image.
     532\item The processing stage retrieves the required pixel data using the
     533IPSIOL and loads it into local memory.
     534\item The processing stage modifies the pixel data in local memory.
     535\item The processing stage uses the IPSIOL to write the image to the
     536previous location with an overwrite flag.
    542537\end{enumerate}
    543538
Note: See TracChangeset for help on using the changeset viewer.