IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 40002 for trunk


Ignore:
Timestamp:
Mar 16, 2017, 9:41:23 AM (9 years ago)
Author:
eugene
Message:

moving around the sections : group the operations and automation elements together

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/release.2015/ps1.datasystem/datasystem.tex

    r40001 r40002  
    10261026the rest of the pipeline.
    10271027
    1028 \subsection{Nebulous}
    1029 \label{subsec: nebulous}
    1030 Storing the large volume of data that is generated by the GPC1 camera
    1031 was recognized early in the Pan-STARRS project as a major concern.
    1032 The \ippprog{Nebulous} system was designed to organize this data.  The
    1033 main components of this system is a database storing the locations of
    1034 the files, with a Simple Object Access Protocol interface between the
    1035 database and the other IPP programs.  The actual files are stored on
    1036 NFS mounted partitions on a series of storage nodes in the IPP cluster
    1037 that can be accessed throughout the cluster.  This distribution of
    1038 files is useful to balance the disk I/O, as this parallelizes the
    1039 load.
    1040 
    1041 The original design of \ippprog{Nebulous} was intended to aid in the
    1042 targetted processing of data, by having specific image data (such as
    1043 all the images from one OTA device) located on a single storage node.
    1044 This would allow any jobs involving that data to be assigned to the
    1045 storage node, eliminating network I/O.  Important data could be
    1046 duplicated to additional data nodes, with the alternate locations
    1047 stored in the database.  In practice, however, hardware failures and
    1048 increases in hard drive storage volumes and network bandwidth have
    1049 reduced the degree to which the IPP processing is targeted.
    1050 
    1051 When a program creates a new file in \ippprog{Nebulous}, it supplies
    1052 an URI of the form \code{neb://HOST.VOLUME/PATH/FILENAME}.  The host
    1053 and volume specifiers are optional, and allow a file to be created on
    1054 a specific node.  The path and filename appear similar to a standard
    1055 full file location, and are used internally as the ``external id''.  A
    1056 storage object entry is then created in the database for this id, and
    1057 an instance of the file created on the specified node (or at random
    1058 from available nodes if left empty).  This instance is created in a
    1059 deterministic filename location.  The external id is hashed using the
    1060 SHA-1 function, and the first four hexadecimal digits of this hash are
    1061 separated into two two-digit strings and used as the top and second
    1062 level directory location for the disk file.  The disk file is created
    1063 using the database instance id, and a transformed version of the
    1064 external id, which has colons replacing any forward slash characters,
    1065 to convert the external id path into a filename.  For the example URI
    1066 above, this results in a file located on disk in a location like
    1067 \code{/data/HOST.VOLUME/nebulous/d5/d8/9244993440.PATH:FILENAME}.
    1068 This file naming structure is useful, as it duplicates database
    1069 contents on disk.
    1070 
    1071 The storage volumes that contain the data on disk are defined in the
    1072 \ippprog{Nebulous} database in a number of ways.  First, the locations
    1073 and mount points for the actual NFS storage are listed in the
    1074 \ippdbtable{volume} table.  This table contains columns indicating if
    1075 the volume should be used for reading (\ippdbcolumn{available}) and
    1076 writing (\ippdbcolumn{allocate}), allowing these properties to be
    1077 manually set, which is useful in scheduling downtime for hardware
    1078 issues.  Another column, \ippdbcolumn{xattr}, is used to control the
    1079 behavior of this volume, with specific values used to denote desired
    1080 behavior.  For instance, the value of $1$ is used to indicate that a
    1081 volume should only be used as a backup volume (which accepts only
    1082 replicated copies), and the value of $5$ is used to indicate that the
    1083 volume is permanently unavailable, and should be ignored.
    1084 
    1085 In addition to this permanent table describing the volumes, a
    1086 \ippdbtable{mountedvol} table also exists that only lists those
    1087 volumes that are currently visible and accessible from the
    1088 \ippprog{Nebulous} database server.  This table also lists the total
    1089 and currently available disk space on each volume, allowing the
    1090 \ippprog{Nebulous} load balancing routines to prioritize those volumes
    1091 with large unused disk space before filling the volumes with only
    1092 small amounts remaining.  This table is regenerated every ten to
    1093 twenty minutes, after a scan of each of the volumes listed in the
    1094 \ippdbtable{volume} table.
    1095 
    1096 The final table controlling the operations of the \ippprog{Nebulous}
    1097 volumes is the \ippdbtable{cabinet} table, which organizes the
    1098 individual volumes into ``cabinets,'' a concept loosly based on the
    1099 physical arrangement of the storage servers in the data center.  These
    1100 cabinets are used to prevent the replication of a storage object
    1101 within a group of volumes where all instances of the object could be
    1102 taken off line by a single failure.  As the data center cabinets share
    1103 power supplies among the servers they contain, ensuring physical
    1104 distance between replicated copies is important to guarantee that a
    1105 temporary failure of one of these devices does not significantly
    1106 impact processing.
     1028\section{Post-Processing : Database Ingest \& Calibration}
    11071029
    11081030\subsection{DVO}
     
    14031325analysis \citep[][see]{magnier2017a}.
    14041326
    1405 \subsection{Datastore repositories}
    1406 \label{subsec: datastore}
    1407 
    1408 Transferring data between the IPP and other parts of the Pan-STARRS
    1409 system is generally accomplished via a ``datastore'', an http service
    1410 that exposes data in a common form.  One of the main datastores used
    1411 by the IPP is the one located at the summit.  This datastore exposes,
    1412 a list of the exposures obtained since the start of the PS1
    1413 operations.  Requests to this server may restrict to the latest by
    1414 time.  Each row in the listing includes basic information about the
    1415 exposure: an exposure identifier (e.g., o5432g0123o;
    1416 see~\ref{GPC1.names} for details), the date and time of the exposure,
    1417 the telescope commanded pointing, the filter and exposure time, and
    1418 the observation comment for that exposure.  The row also provides a
    1419 link to a listing of the chips associated with that exposure.  This
    1420 listing includes a link to the individual chip FITS files as well as
    1421 an md5 checksum.  Systems which are allowed access may download chip
    1422 FITS files via http requests to the provided links.
    1423 
    1424 The IPP also uses datastores to provide access to its own data
    1425 products.  The detections identified in the \ippstage{diff} stage
    1426 images are organized by the \ippstage{publish} stage, which writes
    1427 output files containing those detections to a datastore that is
    1428 monitored by the Moving Object Processing System
    1429 \citep[][MOPS]{2013PASP..125..357D}, which analyses the detections to
    1430 identify asteroids.  Separate datastores are also used by the
    1431 \ippstage{distribution} stage to provide access to data products to
    1432 the Pan-STARRS Science Consortium members. 
     1327\subsection{Addstar : DVO Ingest}
     1328\label{subsec: addstar}
     1329\note{CZW: This should be reviewed.}
     1330
     1331Upon completion of the processing of each stage, the results of the
     1332photometry analysis are isolated in a large number of individual
     1333catalogs, with little connection between the separate measurements of
     1334astronomical sources.  Unifying these measurements in a DVO database
     1335is the purpose of the \ippstage{addstar} processing.  The catalogs for
     1336the \ippstage{camera}, \ippstage{staticsky}, \ippstage{skycal},
     1337\ippstage{fullforce}, and \ippstage{diff} are processed in this
     1338fashion, although not every measurement in each catalog are included
     1339in the final DVO that is constructed.
     1340
     1341The construction of this final DVO is performed in a hierarchical
     1342process.  The individual catalogs are added to a \ippmisc{minidvo},
     1343which is simply a DVO database defined over some subset of possible
     1344inputs.  These \ippmisc{minidvos} are then merged into larger
     1345databases to construct the final completely catalog.  \note{describe
     1346  database tables}
     1347
     1348Each catalog that is to be added to DVO has an entry created in the
     1349\ippdbtable{addRun} database table.  This entry notes which
     1350\ippdbcolumn{stage} is the source of the catalog, and links to the
     1351appropriate database table with the \ippdbcolumn{stage\_id} field.  As
     1352some stages, such as the \ippstage{diff} stage, create more than a
     1353single catalog, multiple entries with the \ippdbcolumn{stage\_id} are
     1354created, with the \ippdbcolumn{stage\_extra1} field containing an
     1355index to the individual components.  The catalog specified by the
     1356entry is added to the target \ippmisc{minidvo} by the
     1357\ippprog{addstar} program, \note{describe what's done?}.  When this
     1358completes, an entry containing the statistics of the job is added to
     1359the \ippdbtable{addProcessedExp} table.
     1360
     1361\subsection{Calibration Operations}
     1362\label{subsec: calibration}
     1363
     1364\subsection{IPP to PSPS}
     1365\label{subsec: ipp2psps}
     1366\note{Default to pointing to Flewelling et al 2017?}
     1367
     1368\subsection{PSPS Load \& Merge}
     1369\label{subsec: psps}
     1370\note{Default as well to pointing to Flewelling et al 2017?}
     1371
     1372\section{Operations \& Automation}
    14331373
    14341374\subsection{Pantasks \& Parallel Processing}
     
    15921532\ippdbcolumn{projection\_cell}.
    15931533
     1534\subsection{Nebulous}
     1535\label{subsec: nebulous}
     1536Storing the large volume of data that is generated by the GPC1 camera
     1537was recognized early in the Pan-STARRS project as a major concern.
     1538The \ippprog{Nebulous} system was designed to organize this data.  The
     1539main components of this system is a database storing the locations of
     1540the files, with a Simple Object Access Protocol interface between the
     1541database and the other IPP programs.  The actual files are stored on
     1542NFS mounted partitions on a series of storage nodes in the IPP cluster
     1543that can be accessed throughout the cluster.  This distribution of
     1544files is useful to balance the disk I/O, as this parallelizes the
     1545load.
     1546
     1547The original design of \ippprog{Nebulous} was intended to aid in the
     1548targetted processing of data, by having specific image data (such as
     1549all the images from one OTA device) located on a single storage node.
     1550This would allow any jobs involving that data to be assigned to the
     1551storage node, eliminating network I/O.  Important data could be
     1552duplicated to additional data nodes, with the alternate locations
     1553stored in the database.  In practice, however, hardware failures and
     1554increases in hard drive storage volumes and network bandwidth have
     1555reduced the degree to which the IPP processing is targeted.
     1556
     1557When a program creates a new file in \ippprog{Nebulous}, it supplies
     1558an URI of the form \code{neb://HOST.VOLUME/PATH/FILENAME}.  The host
     1559and volume specifiers are optional, and allow a file to be created on
     1560a specific node.  The path and filename appear similar to a standard
     1561full file location, and are used internally as the ``external id''.  A
     1562storage object entry is then created in the database for this id, and
     1563an instance of the file created on the specified node (or at random
     1564from available nodes if left empty).  This instance is created in a
     1565deterministic filename location.  The external id is hashed using the
     1566SHA-1 function, and the first four hexadecimal digits of this hash are
     1567separated into two two-digit strings and used as the top and second
     1568level directory location for the disk file.  The disk file is created
     1569using the database instance id, and a transformed version of the
     1570external id, which has colons replacing any forward slash characters,
     1571to convert the external id path into a filename.  For the example URI
     1572above, this results in a file located on disk in a location like
     1573\code{/data/HOST.VOLUME/nebulous/d5/d8/9244993440.PATH:FILENAME}.
     1574This file naming structure is useful, as it duplicates database
     1575contents on disk.
     1576
     1577The storage volumes that contain the data on disk are defined in the
     1578\ippprog{Nebulous} database in a number of ways.  First, the locations
     1579and mount points for the actual NFS storage are listed in the
     1580\ippdbtable{volume} table.  This table contains columns indicating if
     1581the volume should be used for reading (\ippdbcolumn{available}) and
     1582writing (\ippdbcolumn{allocate}), allowing these properties to be
     1583manually set, which is useful in scheduling downtime for hardware
     1584issues.  Another column, \ippdbcolumn{xattr}, is used to control the
     1585behavior of this volume, with specific values used to denote desired
     1586behavior.  For instance, the value of $1$ is used to indicate that a
     1587volume should only be used as a backup volume (which accepts only
     1588replicated copies), and the value of $5$ is used to indicate that the
     1589volume is permanently unavailable, and should be ignored.
     1590
     1591In addition to this permanent table describing the volumes, a
     1592\ippdbtable{mountedvol} table also exists that only lists those
     1593volumes that are currently visible and accessible from the
     1594\ippprog{Nebulous} database server.  This table also lists the total
     1595and currently available disk space on each volume, allowing the
     1596\ippprog{Nebulous} load balancing routines to prioritize those volumes
     1597with large unused disk space before filling the volumes with only
     1598small amounts remaining.  This table is regenerated every ten to
     1599twenty minutes, after a scan of each of the volumes listed in the
     1600\ippdbtable{volume} table.
     1601
     1602The final table controlling the operations of the \ippprog{Nebulous}
     1603volumes is the \ippdbtable{cabinet} table, which organizes the
     1604individual volumes into ``cabinets,'' a concept loosly based on the
     1605physical arrangement of the storage servers in the data center.  These
     1606cabinets are used to prevent the replication of a storage object
     1607within a group of volumes where all instances of the object could be
     1608taken off line by a single failure.  As the data center cabinets share
     1609power supplies among the servers they contain, ensuring physical
     1610distance between replicated copies is important to guarantee that a
     1611temporary failure of one of these devices does not significantly
     1612impact processing.
     1613
     1614\subsection{Datastore repositories}
     1615\label{subsec: datastore}
     1616
     1617Transferring data between the IPP and other parts of the Pan-STARRS
     1618system is generally accomplished via a ``datastore'', an http service
     1619that exposes data in a common form.  One of the main datastores used
     1620by the IPP is the one located at the summit.  This datastore exposes,
     1621a list of the exposures obtained since the start of the PS1
     1622operations.  Requests to this server may restrict to the latest by
     1623time.  Each row in the listing includes basic information about the
     1624exposure: an exposure identifier (e.g., o5432g0123o;
     1625see~\ref{GPC1.names} for details), the date and time of the exposure,
     1626the telescope commanded pointing, the filter and exposure time, and
     1627the observation comment for that exposure.  The row also provides a
     1628link to a listing of the chips associated with that exposure.  This
     1629listing includes a link to the individual chip FITS files as well as
     1630an md5 checksum.  Systems which are allowed access may download chip
     1631FITS files via http requests to the provided links.
     1632
     1633The IPP also uses datastores to provide access to its own data
     1634products.  The detections identified in the \ippstage{diff} stage
     1635images are organized by the \ippstage{publish} stage, which writes
     1636output files containing those detections to a datastore that is
     1637monitored by the Moving Object Processing System
     1638\citep[][MOPS]{2013PASP..125..357D}, which analyses the detections to
     1639identify asteroids.  Separate datastores are also used by the
     1640\ippstage{distribution} stage to provide access to data products to
     1641the Pan-STARRS Science Consortium members. 
     1642
    15941643\subsection{ippTools and ippScripts}
    15951644\label{subsec: ipptools}
     
    16931742
    16941743\note{This likely needs cleaning up and more information.}
    1695 
    1696 \subsection{Addstar : DVO Ingest}
    1697 \label{subsec: addstar}
    1698 \note{CZW: This should be reviewed.}
    1699 
    1700 Upon completion of the processing of each stage, the results of the
    1701 photometry analysis are isolated in a large number of individual
    1702 catalogs, with little connection between the separate measurements of
    1703 astronomical sources.  Unifying these measurements in a DVO database
    1704 is the purpose of the \ippstage{addstar} processing.  The catalogs for
    1705 the \ippstage{camera}, \ippstage{staticsky}, \ippstage{skycal},
    1706 \ippstage{fullforce}, and \ippstage{diff} are processed in this
    1707 fashion, although not every measurement in each catalog are included
    1708 in the final DVO that is constructed.
    1709 
    1710 The construction of this final DVO is performed in a hierarchical
    1711 process.  The individual catalogs are added to a \ippmisc{minidvo},
    1712 which is simply a DVO database defined over some subset of possible
    1713 inputs.  These \ippmisc{minidvos} are then merged into larger
    1714 databases to construct the final completely catalog.  \note{describe
    1715   database tables}
    1716 
    1717 Each catalog that is to be added to DVO has an entry created in the
    1718 \ippdbtable{addRun} database table.  This entry notes which
    1719 \ippdbcolumn{stage} is the source of the catalog, and links to the
    1720 appropriate database table with the \ippdbcolumn{stage\_id} field.  As
    1721 some stages, such as the \ippstage{diff} stage, create more than a
    1722 single catalog, multiple entries with the \ippdbcolumn{stage\_id} are
    1723 created, with the \ippdbcolumn{stage\_extra1} field containing an
    1724 index to the individual components.  The catalog specified by the
    1725 entry is added to the target \ippmisc{minidvo} by the
    1726 \ippprog{addstar} program, \note{describe what's done?}.  When this
    1727 completes, an entry containing the statistics of the job is added to
    1728 the \ippdbtable{addProcessedExp} table.
    1729 
    1730 \subsection{Calibration Operations}
    1731 \label{subsec: calibration}
    1732 
    1733 \subsection{IPP to PSPS}
    1734 \label{subsec: ipp2psps}
    1735 \note{Default to pointing to Flewelling et al 2017?}
    1736 
    1737 \subsection{PSPS Load \& Merge}
    1738 \label{subsec: psps}
    1739 \note{Default as well to pointing to Flewelling et al 2017?}
    17401744
    17411745\section{IPP Hardware Systems}
Note: See TracChangeset for help on using the changeset viewer.