Changeset 40004 for trunk/doc/release.2015/ps1.datasystem/datasystem.tex
- Timestamp:
- Mar 16, 2017, 11:17:22 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/release.2015/ps1.datasystem/datasystem.tex
r40003 r40004 88 88 89 89 \section{Introduction} 90 \label{sec: intro}90 \label{sec:intro} 91 91 92 92 This is the second in a series of seven papers describing the … … 156 156 157 157 This paper presents a description of the IPP data handling system. 158 Section \ref{sec: subsystems} describes the major IPP subsystems that158 Section \ref{sec:subsystems} describes the major IPP subsystems that 159 159 underlie the main pipeline, providing a set of common interfaces and 160 160 tools used at multiple stages. The main processing stages of the 161 pipeline are described in Section \ref{sec: stages}, although all161 pipeline are described in Section \ref{sec:stages}, although all 162 162 exposures may not necessarily pass through each of these stages. The 163 163 hardware systems that have done the processing for the PV3 data 164 release are listed in Section \ref{sec: hardware}, with some details164 release are listed in Section \ref{sec:hardware}, with some details 165 165 on the scale of computing needed to reduce this large number of 166 exposures. Finally, Section \ref{sec: discussion} presents a166 exposures. Finally, Section \ref{sec:discussion} presents a 167 167 discussion of some of the lessons learned in the creation of the IPP, 168 168 and its utility in reducing data from other cameras and telescopes. … … 288 288 289 289 \section{IPP Data Processing Stages} 290 \label{sec: stages}290 \label{sec:stages} 291 291 292 292 \subsection{Processing Database} 293 \label{s ubsec:database}293 \label{sec:database} 294 294 295 295 A critical element in the Pan-STARRS IPP infrastructure is the … … 315 315 primary table which defines the conceptual list of processing items 316 316 either to be done, in progress, or completed. An associated secondary 317 table lists the details of elements which have been processed. Table318 \ref{tab: database schema} contains an outline of the database schema, 319 showing the relations between tables organized by processing stage. 320 As an example, one critical stage is the \ippstage{chip} processing 321 stage, discussed below, in which the individual chips from an exposure322 are detrended and sources are detected. Within the gpc1 database, the323 primary table called \ippdbtable{chipRun} in which each exposure has a 324 single entry. Associated with this table is the 325 \ippdbtable{chipProcessedImfile} table, which contains one row for 326 each of the (up to 60) chips associated with the exposure. The 327 primary tables, such as \ippdbtable{chipRun}, are populated once the 328 system has decided that a specific item (e.g., an exposure) should be 329 processed at that stage. Initially, the entry is given a state of 330 ``run'', denoting that the exposure is ready to be processed. The331 low-level table entries, such as the \ippdbtable{chipProcessedImfile} 332 entries, are only populated once the element (e.g., the chip) has been 333 processed by the analysis system. Once all elements for a given 334 s tage, e.g., chips in this case, are completed, then the status of the335 top-level table entry (\ippdbtable{chipRun}) are switched from ``run'' 336 to ``full''.317 table (or set of tables) lists the details of elements which have been 318 processed. Table \ref{tab: database schema} contains an outline of 319 the database schema, showing the relations between tables organized by 320 processing stage. As an example, one critical stage is the 321 \ippstage{chip} processing stage (see \S\ref{sec:chip}) in which the 322 individual chips from an exposure are detrended and sources are 323 detected. Within the gpc1 database, the primary table is called 324 \ippdbtable{chipRun} in which each exposure has a single entry. 325 Associated with this table is the \ippdbtable{chipProcessedImfile} 326 table, which contains one row for each of the chips 327 associated with the exposure (up to 60 for gpc1). The primary tables, such as 328 \ippdbtable{chipRun}, are populated once the system has decided that a 329 specific item (e.g., an exposure) should be processed at that stage. 330 Initially, the entry is given a state of ``run'', denoting that the 331 exposure is ready to be processed. The low-level table entries, such 332 as the \ippdbtable{chipProcessedImfile} entries, are only populated 333 once the element (e.g., the chip) has been processed by the analysis 334 system. Once all elements for a given stage, e.g., chips in this 335 case, are completed, then the status of the top-level table entry 336 (\ippdbtable{chipRun}) are switched from ``run'' to ``full''. 337 337 338 338 If the analysis of an element (e.g., the individual OTA chip) … … 357 357 data, dropping the failed chips from the rest of the analysis. On the 358 358 other hand, a \ippdbcolumn{fault} in one of the elements for a given 359 stage will block any dependent stages from processing that item. In360 this way, if such a temporary failure occurs, the system will not 361 process an exposure through subsequent stages without the component362 that has failed temporarily. Since many of the \ippdbcolumn{fault}s 363 which occur are ephemeral, the processing stages are set up to 364 occasional clear and re-try the faulted entries. Thus, automatic 365 processing is able to keep the data flowing even in the face of 366 occasional network glitches or hardware crashes.359 stage will block any successive stages which depend on that result 360 from processing that item. In this way, if such a temporary failure 361 occurs, the system will not process an exposure through subsequent 362 stages without the component that has failed temporarily. Since many 363 of the \ippdbcolumn{fault}s which occur are ephemeral, the processing 364 stages are set up to occasional clear and re-try the faulted entries. 365 Thus, automatic processing is able to keep the data flowing even in 366 the face of occasional network glitches or hardware crashes. 367 367 368 368 \subsection{Summit copy} 369 \label{s ubsec: summitcopy}369 \label{sec:summitcopy} 370 370 371 371 As exposures are taken by the PS1 telescope \& GPC1 camera system, the … … 403 403 404 404 \subsection{Image Registration} 405 \label{s ubsec:registration}405 \label{sec:registration} 406 406 407 407 Once the chips for an exposure have all been downloaded, the exposure … … 453 453 454 454 \subsection{Chip Processing} 455 \label{s ubsec:chip}455 \label{sec:chip} 456 456 457 457 The science analysis of an exposure begins with the \ippstage{chip} … … 556 556 557 557 \subsection{Camera Calibration} 558 \label{s ubsec:camera}558 \label{sec:camera} 559 559 560 560 After sources have been detected and measured for each of the chips, … … 611 611 612 612 \subsection{Fake Analysis} 613 \label{subsec: fake} 613 \label{sec:fake} 614 \note{drop} 614 615 615 616 The \ippstage{fake} stage was originally designed to do false source … … 628 629 629 630 \subsection{Image Warping} 630 \label{s ubsec:warp}631 \label{sec:warp} 631 632 632 633 The \ippstage{warp} stage moves the data from a given exposure beyond … … 682 683 683 684 \subsection{Stack Combination} 684 \label{s ubsec:stack}685 \label{sec:stack} 685 686 686 687 The skycell images generated by the \ippstage{warp} process are added … … 742 743 743 744 \subsection{Stack Photometry} 744 \label{s ubsec:staticsky}745 \label{sec:staticsky} 745 746 746 747 Although images are generated in the \ippstage{stack} stage of the … … 801 802 802 803 \subsection{Forced Warp Photometry} 803 \label{subsec: fullforce} 804 \label{sec:fullforce} 805 806 \note{too much detail in this section; balance relative to psphot} 804 807 805 808 Traditionally, projects which use multiple exposures to increase the … … 872 875 are excessively masked on a particular image are not used to model the 873 876 PSF). \note{this doesn't seem correct, as each warp is run 874 independently. } The PSF model is fitted to all of the known source877 independently. EAM: not true!} The PSF model is fitted to all of the known source 875 878 positions in the warp images. Aperture magnitudes, Kron magnitudes, 876 879 and moments are also measured at this stage for each warp. Note that … … 881 884 warps. When combined together, these low-significance measurements 882 885 will result in a signficant measurement as the signal-to-noise 883 increases by $\sqrt{N}$.886 increases by the square root of the number of measurements. 884 887 885 888 Upon completion of the forced photometry (for point sources as well as … … 899 902 \subsubsection{Forced Galaxy Models} 900 903 \note{CZW: is this the appropriate place for this section?} 904 \note{too much detail in this section; balance relative to psphot} 901 905 902 906 The convolved galaxy models are also re-measured on the … … 953 957 954 958 \subsection{Difference Images} 955 \label{s ubsec:diff}959 \label{sec:diff} 956 960 Two of the primary science drivers for the Pan-STARRS system are the 957 961 search hazardous asteroids and the search for Type Ia supernovae to … … 1020 1024 1021 1025 \subsection{DVO} 1022 \label{s ubsec:DVO}1026 \label{sec:DVO} 1023 1027 1024 1028 The Pan-STARRS IPP uses an internal database system, distinct from the … … 1027 1031 part of the astrometric and photometric calibration process. This 1028 1032 database system, called the ``Desktop Virtual Observatory'' (DVO) was 1029 developed originally for the LONEOS project , and used as part of the1033 developed originally for the LONEOS project \citep{}, and used as part of the 1030 1034 CFHT Elixir system \citep{2004PASP..116..449M}. The capabilities of 1031 1035 this databasing system have been somewhat expanded for the Pan-STARRS … … 1068 1072 type of database table is stored as a separate file, or a collection 1069 1073 of files for table which are spatially partitioned. The binary FITS 1070 tables may be optionally compressed using the (to date) experimental 1071 FITS binary table compression strategy outlined by \note{REF}. In this 1072 compression scheme, using a strategy similar to that used for FITS 1073 image compression (\note{REF}), the data stored in the binary table is 1074 compressed and stored in the 'HEAP' section of the FITS table. In 1075 brief, each column in the FITS table is compressed as one (or more) 1076 blocks. The standard fields which describe the data column format 1077 (e.g., TFORM1) are replaced with columns which describe the location 1078 and size of the compressed data in the HEAP section; the information 1079 about the uncompressed data is moved to a field with 'Z' prepended 1080 (e.g., ZFORM1) and an additional field is added to define the 1081 compression algorithm (e.g., ZCTYP1). The column names (e.g., TTYPE1) 1082 and units (e.g., TUNIT1) are retained in their original form. The 1083 compression algorithm can treat the entire column as a single block of 1084 data, or it may be broken into a number of chunks, each compressed in 1085 turn (this must be the same for all columns). Additional header 1086 information is added to describe the block sizes and infomation needed 1087 to describe the HEAP data section. The compression algorithms 1088 currently defined consist of the GZIP, RICE, PLIO, and HCOMPRESS 1089 (REFS). For GZIP, the compression algorithm may transpose the byte 1090 order before compression: for floating point data of a similiar 1091 dynamic range, this choice may allow for better compression as each 1092 byte in the 4 or 8 byte floating point value is more likely to be 1093 similar to the same byte in other rows than to the other bytes of the 1094 same row value. This option is called \code{GZIP_2} in the FITS 1074 tables are compressed using the (to date) experimental FITS binary 1075 table compression strategy outlined by \note{REF}. Table compression 1076 is in general an option in DVO; for the PV3 database, the large data 1077 volume (70TB compressed) drove the decision to compress the tables. 1078 1079 The FITS binary table compression scheme uses a strategy similar to 1080 that used for FITS image compression (\note{REF}). The binary tabular 1081 data is compressed and stored in the 'HEAP' section of the FITS table 1082 extension, with pointers to the compressed data stored in the regular 1083 data section. Each column in the FITS table is compressed as one (or 1084 more) blocks. The standard header keywords which describe the data 1085 column format (e.g., TFORM1) are replaced with keywords which describe 1086 the location and size of the compressed data in the HEAP section; the 1087 information about the uncompressed data is moved to a keyword with 'Z' 1088 prepended (e.g., ZFORM1) and an additional field is added to define 1089 the compression algorithm (e.g., ZCTYP1). The column names (e.g., 1090 TTYPE1) and units (e.g., TUNIT1) are retained in their original form. 1091 1092 The compression algorithm can treat the entire column as a single 1093 block of data, or it may be broken into a number of chunks, each 1094 compressed in turn (this must be the same for all columns). 1095 Additional header information is added to describe the block sizes and 1096 infomation needed to describe the HEAP data section. The compression 1097 algorithms currently defined consist of the GZIP, RICE, PLIO, and 1098 HCOMPRESS (REFS). For GZIP, the compression algorithm may transpose 1099 the byte order before compression: for floating point data of a 1100 similiar dynamic range, this choice may allow for better compression 1101 as each byte in the 4 or 8 byte floating point value is more likely to 1102 be similar to the same byte in other rows than to the other bytes of 1103 the same row value. This option is called \code{GZIP_2} in the FITS 1095 1104 standard, as opposed to the standard order, \code{GZIP_1}. The DVO 1096 1105 system can be set to specify the compression options for each column 1097 1106 in the tables. In practice, we have chosen a default in which 1098 floating point numbers use d\code{GZIP_2}, character strings use1099 \code{GZIP_1}, integers use \code{RICE}. 1107 floating point numbers use \code{GZIP_2}, character strings use 1108 \code{GZIP_1}, integers use \code{RICE}. 1100 1109 1101 1110 \subsubsection{Sky Partition} 1102 1111 1103 1112 DVO includes two major classes of database tables: those containing 1104 information directly about astronomical objects in the sky and those1105 containing other supporting information. The object-related tables 1106 arepartitioned on the basis of position in the sky: objects within a1113 information about astronomical objects in the sky and those containing 1114 other supporting information. The object-related tables are 1115 partitioned on the basis of position in the sky: objects within a 1107 1116 region bounded by lines of constant RA,DEC are contained in a specific 1108 1117 file. The boundaries and the associated partition names are stored in … … 1111 1120 (\ippdbcolumn{R\_MIN}, \ippdbcolumn{R\_MAX}, \ippdbcolumn{D\_MIN}, 1112 1121 \ippdbcolumn{D\_MAX}), the name of the sky region, an ID 1113 (\ippdbcolumn{INDEX}, equal to the sequence number of the region in the1114 t able), and index entries to enable navigation within the table. The1115 regions are defined in a hierarchical sense, with a series of levels 1116 each containing a finer mesh of regions covering the sky.1122 (\ippdbcolumn{INDEX}, equal to the sequence number of the region in 1123 the table), and index entries to enable navigation within the table. 1124 The regions are defined in a hierarchical sense, with a series of 1125 levels each containing a finer mesh of regions covering the sky. 1117 1126 1118 1127 In the default used by the PV3 DVO, the partitioning scheme is based 1119 1128 on the one used by the Hubble Space Telescope Guide Star Catalog 1120 files. Level 0 is a single region covering the full sky. Level 1 1121 divides the sky in Declination into bands 7.5\degree\ high. Level 2 1122 subdivides these Declination bands in the RA direction, with spacing 1123 related to the stellar density. Level 3 divides these RA chunks into 1124 4 - 8 smaller partitions. This level exactly matches the HST GSC 1125 layout, and uses the same naming convention to identify the 1126 partitions: \code{n0000/0000}, etc. \note{more on the names?}. Level 1127 4 further divides these regions by a factor of 16. In the 1128 \ippdbtable{SkyTable}, a region at one level has a pointer to its 1129 parent region (the one which contains it) and a sequence pointing to 1130 its children (regions it contains). The \ippdbtable{SkyTable} enables 1131 fast lookups of the on-disk partitions which map to a specific 1132 coordinate on the sky. In general, a single DVO will have the full 1133 sky represented with tables at a single level, though it is possible 1134 for mixed levels to be used, this mode is not well tested. For the 1129 files. \note{add figure} Level 0 is a single region covering the full 1130 sky. Level 1 divides the sky in Declination into bands 1131 7.5\degree\ high. Level 2 subdivides these Declination bands in the 1132 RA direction, with spacing related to the stellar density. Level 3 1133 divides these RA chunks into 4 - 8 smaller partitions. This level 1134 exactly matches the HST GSC layout, and uses the same naming 1135 convention to identify the partitions: \code{n0000/0000}, 1136 etc. \note{more on the names?}. Level 4 further divides these regions 1137 by a factor of 16. In the \ippdbtable{SkyTable}, a region at one 1138 level has a pointer to its parent region (the one which contains it) 1139 and a sequence pointing to its children (regions it contains). The 1140 \ippdbtable{SkyTable} enables fast lookups of the on-disk partitions 1141 which map to a specific coordinate on the sky. In general, a single 1142 DVO will have the full sky represented with tables at a single 1143 level. Although it is possible for mixed levels to be used, this mode 1144 is not well tested and is avoided in the PV3 DVO database. For the 1135 1145 PV3 master database, the partitioning at the \note{should this be 1136 1146 4th?} 5th level results in \approx 150,000 regions to cover the full … … 1138 1148 densest portions of the bulge contain at most \approx 300,000 1139 1149 astronomical objects in the database files, with an associated maximum 1140 of 30 million measurements in these files. With the compression1141 scheme described above, th is makes the largest database files\approx1150 of \approx 30 million measurements in these files. With the compression 1151 scheme described above, the largest database files are \approx 1142 1152 3GB, which can be loaded into memory in 30 seconds on the processing 1143 1153 machines that contain partition data. 1154 1155 \note{is the use of the term 'partition host' consistent in this paper 1156 and the calibration paper?} 1144 1157 1145 1158 The DVO software system allows the tables which are partitioned across … … 1157 1170 query operations will select the database information which matches 1158 1171 the query request (i.e., applying restrictions as defined) and return 1159 t o the master process the results. The results from the various1172 the results to the master process. The results from the various 1160 1173 partition hosts are then merged into a single result by the master 1161 process. This parallelization is critical to querying and 1162 manipulating the enormous database on a reasonable timescale. 1174 process. When the parallel partitioning for a DVO instance is 1175 defined, the tables are randomly assigned to the partition hosts. As 1176 a result, queries which span more than a single parition are likely to 1177 spread the I/O load across a large number of machines. This 1178 parallelization is critical to querying and manipulating the enormous 1179 database on a reasonable timescale. 1163 1180 1164 1181 \subsubsection{Astronomical Objects} … … 1168 1185 \ippdbtable{SecFilt}. These two tables specify the main average 1169 1186 properties of the astronomical object. The \ippdbtable{Average} table includes the 1170 astrometric information ($\alpha, \delta, \mu \alpha, \mu\delta,1187 astrometric information ($\alpha, \delta, \mu_\alpha, \mu_\delta, 1171 1188 \pi$) and associated errors, data quality flags for each object, links 1172 1189 to the other tables, and a number of IDs, with one row for each … … 1198 1215 1199 1216 The individual measurements of the astronomical objects are carried in 1200 the table \ippdbtable{Measure}. This table lists the values measured 1201 by \ippprog{psphot} for each \ippstage{chip}, \ippstage{warp}, or 1202 \ippstage{stack} stage image. This includes the instrumental magnitudes for 1203 the PSF, aperture, and Kron photometry; raw position 1217 the table \ippdbtable{Measure}. For measurements from PS1 in the PV3 1218 / DR1 database, this would be values determined by \ippprog{psphot} 1219 for each \ippstage{chip}, \ippstage{warp}, or \ippstage{stack} stage 1220 image. Measurements for other cameras processed by the IPP may also 1221 be included similarly in a DVO database. Measurements from other 1222 sources, such as SDSS, 2MASS, or WISE, can also be included in this 1223 table (see \S\ref{sec:other.photometry}. 1224 1225 The \ippdbtable{Measure} table includes the instrumental magnitudes 1226 for the PSF, aperture, and Kron photometry; raw position 1204 1227 (\ippdbcolumn{Xccd}, \ippdbcolumn{Yccd}) and second moments 1205 1228 (\ippdbcolumn{Mxx}, \ippdbcolumn{Myy}, \ippdbcolumn{Mxy}), along with … … 1207 1230 (\ippdbcolumn{FWx}, \ippdbcolumn{FWy}, \ippdbcolumn{theta}). Metadata 1208 1231 about the exposure that the measurement was derived from is also 1209 include , such as the exposure time, the date \& time of the1232 included, such as the exposure time, the date \& time of the 1210 1233 observation, airmass, azimuth, and \ippdbcolumn{photcode} information 1211 1234 specifying the filter. The \ippdbtable{Measure} table also carries 1212 the calibration magnitude offs ts ($M_{\rm cal}$ and $M_{\rm flat}$,1235 the calibration magnitude offsets ($M_{\rm cal}$ and $M_{\rm flat}$, 1213 1236 discussed below) and the astrometrically calibrated position. 1214 1237 Astrometric offsets for several systematic corrections discussed below … … 1216 1239 photometry may have non-significant values, the table is somewhat 1217 1240 de-normalized in that it also carries instrumental flux values for the 1218 PSF, aperture, and Kron photometry. 1241 PSF, aperture, and Kron photometry. In this case, we have chosen to 1242 trade storage space for computing time. 1219 1243 1220 1244 In the \ippdbtable{Measure} table, there are three fields which … … 1225 1249 the \ippdbtable{Average} table the measurement belongs. These two 32 1226 1250 bit fields can thus be combined into a single 64 bit ID unique for all 1227 objects in the database. In addition, the field1251 objects in the database. \note{PSPS IDs} In addition, the field 1228 1252 \ippdbtable{Measure}.\ippdbcolumn{averef} specifies the row number in 1229 1253 the \ippdbtable{Average} table of the associated object. The 1230 1254 \ippdbtable{Measure} table may be unsorted, in which case it is slow 1231 1255 to find the measurements associated with a specific object (a full 1232 table scan is required). After the table is sorted , the1256 table scan is required). After the table is sorted and indexed, the 1233 1257 \ippdbcolumn{Measure} rows for a given object are grouped together. 1234 1258 In this case, the fields … … 1290 1314 \subsubsection{Other Tables} 1291 1315 1292 Data from GPC1 (and other cameras processed by the IPP) are loaded 1293 into DVO in units \code{smf} files generated by the \ippstage{camera} 1294 calibration stage (see section \ref{subsec: camera} below). As 1295 described above, these files contain all measurements from a complete 1296 exposure, with measurements from each chip grouped into separate FITS 1297 tables. When these measurements are loaded into the 1298 \ippdbtable{Measure} and similar tables, a subset of the information 1299 from the chip header is used to populated a row in the DVO 1300 \ippdbtable{Image} table. This table contains one row for each chip 1301 known to DVO, with information such as the filter 1302 (\ippdbcolumn{photcode}), the exposure time, the airmass, the 1303 astrometric calibration terms, the photometric zero point, etc. For 1304 GPC1 and other mosaic cameras, an additional row is defined to carry 1305 the projection and camera distortion elements of the astrometry model. 1306 As chips are loaded into this table, they are assigned an internal ID 1307 (a running sequence in the table). Images may also be assigned an 1308 external ID: in the case of the GPC1 images, this ID is defined by the 1309 processing mysql database and is guaranteed to be unique within the 1310 processing system. 1316 Measurements which are loaded into DVO may be associated with a 1317 specific image (such as the measurements for a single chip from the 1318 GPC1 camera) or they may not have such an association (such as 1319 measurements from 2MASS, WISE, or externally supplied reference 1320 measurements). For data which is associated with an image, a subset 1321 of the information about that image (e.g., from the header of the FITS 1322 file) is used to populate a row in the DVO \ippdbtable{Image} table. 1323 This table contains one row for each chip image known to DVO, with 1324 information such as the filter (\ippdbcolumn{photcode}), the exposure 1325 time, the airmass, the astrometric calibration terms, the photometric 1326 zero point, etc. For GPC1 and other mosaic cameras, an additional row 1327 is defined to carry the projection and camera distortion elements of 1328 the astrometry model. As images are loaded into this table, they 1329 are assigned an internal ID (a running sequence in the table). Images 1330 may also be assigned an external ID: in the case of the GPC1 images, 1331 this ID is defined by the processing mysql database and is guaranteed 1332 to be unique within the processing system. 1333 1334 %% Data from GPC1 (and other cameras processed by the IPP) are loaded 1335 %% into DVO in units \code{smf} files generated by the \ippstage{camera} 1336 %% calibration stage (see section \ref{sec:camera} below). As 1337 %% described above, these files contain all measurements from a complete 1338 %% exposure, with measurements from each chip grouped into separate FITS 1339 %% tables. When these measurements are loaded into the 1340 %% \ippdbtable{Measure} and similar tables, 1311 1341 1312 1342 Other tables are used to track information used by the calibration … … 1317 1347 1318 1348 \subsection{Addstar : DVO Ingest} 1319 \label{s ubsec:addstar}1349 \label{sec:addstar} 1320 1350 \note{CZW: This should be reviewed.} 1321 1351 … … 1351 1381 1352 1382 \subsection{Calibration Operations} 1353 \label{s ubsec:calibration}1383 \label{sec:calibration} 1354 1384 1355 1385 \subsection{IPP to PSPS} 1356 \label{s ubsec:ipp2psps}1386 \label{sec:ipp2psps} 1357 1387 \note{Default to pointing to Flewelling et al 2017?} 1358 1388 1359 1389 \subsection{PSPS Load \& Merge} 1360 \label{s ubsec:psps}1390 \label{sec:psps} 1361 1391 \note{Default as well to pointing to Flewelling et al 2017?} 1362 1392 … … 1364 1394 1365 1395 \subsection{Pantasks \& Parallel Processing} 1366 \label{subsec: pantasks} 1396 \label{sec:pantasks} 1397 1398 \note{this section needs to be re-written : pclient vs pcontrol vs pantasks} 1367 1399 1368 1400 The actual processing of data is managed by the \ippprog{pantasks} … … 1377 1409 1378 1410 The \ippmisc{load} task for a particular stage queries the processing 1379 database via an appropriate \ippmisc{ippTool} (see section \ref{subsec: 1380 ipptools} below) for a list of jobs that are waiting to be run. 1411 database via an appropriate \ippmisc{ippTool} (see section \ref{sec:ipptools} below) for a list of jobs that are waiting to be run. 1381 1412 This task is executed on the host running the \ippprog{pantasks} 1382 1413 server, and only one of each type of \ippmisc{load} task is permitted to … … 1441 1472 1442 1473 \subsubsection{Stage automation} 1443 \label{s ubsec:automation}1474 \label{sec:automation} 1444 1475 \note{I'm not convinced this is the right place for it, but it felt like a natural extension of the ``advance''}. 1445 1476 1477 \note{wording..} 1446 1478 Beyond the warp stage, there is no longer a single ``next'' stage into 1447 1479 which data can be queued. Because of this, more robust methods are … … 1491 1523 entries using whatever exposures are available if one has not yet been 1492 1524 constructed by the time the morning dark exposures are registered into 1493 the database. 1525 the database. \note{wording} 1494 1526 1495 1527 Automating the nightly processing is important, as it ensures that … … 1497 1529 reducing the lag between an observation and the reduced data. The 1498 1530 other processing task that requires automation is the reprocessing of 1499 the entire $3\ Pi$ survey, as the size of the dataset make it1531 the entire $3\pi$ survey, as the size of the dataset make it 1500 1532 challenging to do manually. To manage this, the ``large area 1501 1533 processing'' (LAP) task and script are used. The first stage of this … … 1506 1538 considered. A \ippdbcolumn{projection\_cell} is a unit of sky defined 1507 1539 to be a square four degrees on each side which has a single tangent 1508 plane projection \citep[][see]{waters2017}. Once this entry is1509 defined, is is populated with exposures (stored in the 1510 \ippdbtable{lapExp} table in the database), with any exposure located 1511 within 5 degrees of the center of the projection cell included. This 1512 radius ensures that any exposure that overlaps the projection cell 1513 will be included. Once the exposures have been added, the other 1514 exposures within the same sequence are checked to see if a1515 \ippstage{chip} stage entry has been generated, and if so, the 1516 \ippdbcolumn{chip\_id} for that entry is saved into the 1517 \ippdbtable{lapExp} as well. This linkage ensures that each exposure 1518 is only processed once. If no entry is found, a new \ippstage{chip} 1519 entry is queued for processing. The task periodically checks the 1520 status of the exposures in each \ippdbtable{lapRun} entry, and if they 1521 have all completed the \ippstage{warp} stage, then a \ippstage{stack} 1522 is queued for each skycell contained within the1540 plane projection \citep[][see]{waters2017}. \note{does waters2017 1541 discuss RINGS.V3? if not, where?} Once this entry is defined, is is 1542 populated with exposures (stored in the \ippdbtable{lapExp} table in 1543 the database), with any exposure located within 5 degrees of the 1544 center of the projection cell included. This radius ensures that any 1545 exposure that overlaps the projection cell will be included. Once the 1546 exposures have been added, the other exposures within the same 1547 sequence are checked to see if a \ippstage{chip} stage entry has been 1548 generated, and if so, the \ippdbcolumn{chip\_id} for that entry is 1549 saved into the \ippdbtable{lapExp} as well. This linkage ensures that 1550 each exposure is only processed once. If no entry is found, a new 1551 \ippstage{chip} entry is queued for processing. The task periodically 1552 checks the status of the exposures in each \ippdbtable{lapRun} entry, 1553 and if they have all completed the \ippstage{warp} stage, then a 1554 \ippstage{stack} is queued for each skycell contained within the 1523 1555 \ippdbcolumn{projection\_cell}. 1524 1556 1525 1557 \subsection{Nebulous} 1526 \label{s ubsec:nebulous}1558 \label{sec:nebulous} 1527 1559 Storing the large volume of data that is generated by the GPC1 camera 1528 1560 was recognized early in the Pan-STARRS project as a major concern. 1529 1561 The \ippprog{Nebulous} system was designed to organize this data. The 1530 main components of this system isa database storing the locations of1531 the files, with a Simple Object Access Protocol interface between the1532 database and the other IPP programs. The actual files are storedon1533 NFS mounted partitions on a series of storage nodes in the IPP cluster 1534 that can be accessed throughout the cluster. This distribution of 1535 files is useful to balance the disk I/O, as this parallelizesthe1536 load.1562 main components of this system are a database storing the locations of 1563 the files, with a Simple Object Access Protocol (SOAP) interface 1564 between the database and the other IPP programs \note{define / mention 1565 http}. The actual files are stored on a collection of computers 1566 with substantial disk partitions in the IPP cluster, shared within the 1567 cluster via NFS. This distribution of files is useful to balance the 1568 disk I/O, as this parallelizes the load. 1537 1569 1538 1570 The original design of \ippprog{Nebulous} was intended to aid in the … … 1546 1578 reduced the degree to which the IPP processing is targeted. 1547 1579 1580 \note{this is a critical paragraph and needs to be re-written to be 1581 more accessible} 1548 1582 When a program creates a new file in \ippprog{Nebulous}, it supplies 1549 1583 an URI of the form \code{neb://HOST.VOLUME/PATH/FILENAME}. The host 1550 1584 and volume specifiers are optional, and allow a file to be created on 1551 1585 a specific node. The path and filename appear similar to a standard 1552 full file location, and are used internally as the ``external id''. A 1553 storage object entry is then created in the database for this id, and 1554 an instance of the file created on the specified node (or at random 1555 from available nodes if left empty). This instance is created in a 1556 deterministic filename location. The external id is hashed using the 1557 SHA-1 function, and the first four hexadecimal digits of this hash are 1586 full file location, and are used internally as the ``external id''. 1587 \note{mention the nebulous schema before this?} A storage object 1588 entry is then created in the database for this id, and an instance of 1589 the file created on the specified node (or at random from available 1590 nodes if left empty). This instance is created in a deterministic 1591 filename location. The external id is hashed using the SHA-1 1592 function, and the first four hexadecimal digits of this hash are 1558 1593 separated into two two-digit strings and used as the top and second 1559 1594 level directory location for the disk file. The disk file is created … … 1564 1599 \code{/data/HOST.VOLUME/nebulous/d5/d8/9244993440.PATH:FILENAME}. 1565 1600 This file naming structure is useful, as it duplicates database 1566 contents on disk. 1601 contents on disk. \note{rephrase} 1567 1602 1568 1603 The storage volumes that contain the data on disk are defined in the … … 1578 1613 volume should only be used as a backup volume (which accepts only 1579 1614 replicated copies), and the value of $5$ is used to indicate that the 1580 volume is permanently unavailable, and should be ignored. 1615 volume is permanently unavailable, and should be ignored. \note{more 1616 detail, more specific} 1581 1617 1582 1618 In addition to this permanent table describing the volumes, a … … 1587 1623 \ippprog{Nebulous} load balancing routines to prioritize those volumes 1588 1624 with large unused disk space before filling the volumes with only 1589 small amounts remaining. This table is regenerated every ten to1590 twentyminutes, after a scan of each of the volumes listed in the1625 small amounts remaining. This table is updated every ten to twenty 1626 minutes, after a scan of each of the volumes listed in the 1591 1627 \ippdbtable{volume} table. 1592 1628 1593 1629 The final table controlling the operations of the \ippprog{Nebulous} 1594 1630 volumes is the \ippdbtable{cabinet} table, which organizes the 1595 individual volumes into ``cabinets,'' a concept loos ly based on the1631 individual volumes into ``cabinets,'' a concept loosely based on the 1596 1632 physical arrangement of the storage servers in the data center. These 1597 1633 cabinets are used to prevent the replication of a storage object 1598 1634 within a group of volumes where all instances of the object could be 1599 taken off line by a single failure. As the data center cabinets share 1600 power supplies among the servers they contain, ensuring physical 1601 distance between replicated copies is important to guarantee that a 1602 temporary failure of one of these devices does not significantly 1603 impact processing. 1635 taken off line by a single failure. Since servers within a given 1636 cabinet in the data center share a common set of PDUs \note{define}, 1637 it is important to ensure physical distance between replicated copies 1638 to guarantee that a temporary failure of one of the cabinet PDUs does 1639 not significantly impact processing. 1640 1641 \note{need a paragraph or two on stats: how many objects, how many 1642 instances?} 1604 1643 1605 1644 \subsection{Datastore repositories} 1606 \label{s ubsec:datastore}1645 \label{sec:datastore} 1607 1646 1608 1647 Transferring data between the IPP and other parts of the Pan-STARRS 1609 1648 system is generally accomplished via a ``datastore'', an http service 1610 that exposes data in a common form. One of the main datastores used 1611 by the IPP is the one located at the summit. This datastore exposes, 1612 a list of the exposures obtained since the start of the PS1 1613 operations. Requests to this server may restrict to the latest by 1614 time. Each row in the listing includes basic information about the 1615 exposure: an exposure identifier (e.g., o5432g0123o; 1616 see~\ref{GPC1.names} for details), the date and time of the exposure, 1617 the telescope commanded pointing, the filter and exposure time, and 1618 the observation comment for that exposure. The row also provides a 1619 link to a listing of the chips associated with that exposure. This 1620 listing includes a link to the individual chip FITS files as well as 1621 an md5 checksum. Systems which are allowed access may download chip 1622 FITS files via http requests to the provided links. 1649 that exposes data in a common form. \note{add Isani / Hoblitt 1650 reference?} One of the main datastores used by the IPP is the one 1651 located at the summit. This datastore exposes, a list of the 1652 exposures obtained since the start of the PS1 operations. Requests to 1653 this server may restrict to the latest by time. Each row in the 1654 listing includes basic information about the exposure: an exposure 1655 identifier (e.g., o5432g0123o; see~\ref{GPC1.names} for details), the 1656 date and time of the exposure, the telescope commanded pointing, the 1657 filter and exposure time, and the observation comment for that 1658 exposure. The row also provides a link to a listing of the chips 1659 associated with that exposure. This listing includes a link to the 1660 individual chip FITS files as well as an md5 checksum. Systems which 1661 are allowed access may download chip FITS files via http requests to 1662 the provided links. 1623 1663 1624 1664 The IPP also uses datastores to provide access to its own data … … 1633 1673 1634 1674 \subsection{ippTools and ippScripts} 1635 \label{s ubsec:ipptools}1675 \label{sec:ipptools} 1636 1676 1637 1677 % \section{IPP Software Subsystems} 1638 % \label{sec: subsystems}1678 % \label{sec:subsystems} 1639 1679 1640 1680 The IPP relies on a number of common libraries and programs to handle … … 1712 1752 1713 1753 \subsection{psLib and psModules} 1714 \label{s ubsec:pslib}1754 \label{sec:pslib} 1715 1755 1716 1756 Underlying all of the analysis programs are the \ippmisc{psLib} and … … 1744 1784 1745 1785 \section{IPP Hardware Systems} 1746 \label{sec: hardware}1786 \label{sec:hardware} 1747 1787 1748 1788 \note{what about psps hardware? mops hardware?} 1749 1789 1750 1790 \subsection{Kihei Processing Cluster} 1751 \label{s ubsec:kihei}1791 \label{sec:kihei} 1752 1792 1753 1793 The majority of all Pan-STARRS processing has been performed on the … … 1790 1830 1791 1831 \subsection{Los Alamos National Labs} 1792 \label{s ubsec:LANL}1832 \label{sec:LANL} 1793 1833 1794 1834 In order to increase the processing rate for the $3\Pi$ PV3 data, we … … 1892 1932 1893 1933 \subsection{UH Cray Cluster} 1894 \label{s ubsec: UHCray}1934 \label{sec:UHCray} 1895 1935 1896 1936 In December 2014, the University of Hawaii installed a 178-compute … … 1918 1958 1919 1959 \section{Discussion} 1920 \label{sec: discussion}1960 \label{sec:discussion} 1921 1961 1922 1962 \acknowledgments … … 1945 1985 1946 1986 \section{GPC1 Database Schema Outline} 1947 \label{sec: databaseschema}1987 \label{sec:database.schema} 1948 1988 1949 1989 Table \ref{tab: database schema} provides a list of a majority of the … … 1954 1994 tables for that stage listed together, along with the primary key 1955 1995 column that link the tables together. 1996 1997 \note{logical or alphabetical sequence? alignment is broken} 1956 1998 1957 1999 \begin{center}
Note:
See TracChangeset
for help on using the changeset viewer.
