IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 9, 2017, 8:54:52 AM (9 years ago)
Author:
eugene
Message:

dvo section re-org

File:
1 edited

Legend:

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

    r40026 r40027  
    11381138\end{table}
    11391139
    1140 \begin{verbatim}
    1141 DVO section outline or list of topics:
    1142 
    1143 * schema overview [ignoring sky partitioning]
    1144   * measurements -> objects
    1145   * images
    1146 * object definition
    1147 * tables in detail
    1148 * adding other data types (2mass, etc)
    1149 * storage details
    1150   * FITS
    1151   * compressed FITS
    1152 * sky partitioning
    1153 * parallelized DVO
    1154 * addstar / ingest process [stage -> this goes elsewhere]
    1155 * dvo shell description?
    1156 \end{verbatim}
    1157 
    11581140\subsection{DVO}
    11591141\label{sec:DVO}
     
    11931175astronomical objects.
    11941176
     1177\subsubsection{DVO Schema}
     1178
    11951179Table~\ref{tab:DVO_schema} lists the full collection of database
    11961180tables used by DVO.  These tables fall into one of several classes:
     
    12001184which store supporting information.
    12011185
    1202 Beyond that basic use, DVO has the ability to accept data from other
    1203 kinds of data sources in which measurements are not clearly associated
    1204 with specific images.  DVO ingest methods are defined for several
    1205 large-scale surveys for which the published data represent average
    1206 properties derived from multiple measurements, and for which the
    1207 measurement-to-image relationship is not provided.  Ingets methods
    1208 have been defined for example for 2MASS, WISE, Gaia, USNO-B.  In each
    1209 of these cases, the astrometric and photometric measurements are
    1210 stored in the \table{Measure} table, with the data source identified
    1211 by the photcode of the measurement.
     1186\subsubsubsection{Measurement Tables}
     1187
     1188The individual measurements of the astronomical objects are carried in
     1189the table \ippdbtable{Measure}.  For measurements from PS1 in the PV3
     1190/ DR1 database, this would be values determined by \ippprog{psphot}
     1191for each \ippstage{chip}, \ippstage{warp}, or \ippstage{stack} stage
     1192image.  Measurements for other cameras processed by the IPP may also
     1193be included similarly in a DVO database.  Measurements from other
     1194sources, such as SDSS, 2MASS, or WISE, can also be included in this
     1195table (see \S\ref{sec:other.photometry}.
     1196
     1197The \ippdbtable{Measure} table includes the instrumental magnitudes
     1198for the PSF, aperture, and Kron photometry; raw position
     1199(\ippdbcolumn{Xccd}, \ippdbcolumn{Yccd}) and second moments
     1200(\ippdbcolumn{Mxx}, \ippdbcolumn{Myy}, \ippdbcolumn{Mxy}), along with
     1201shape parameters of the PSF model at the position of the object
     1202(\ippdbcolumn{FWx}, \ippdbcolumn{FWy}, \ippdbcolumn{theta}).  Metadata
     1203about the exposure that the measurement was derived from is also
     1204included, such as the exposure time, the date \& time of the
     1205observation, airmass, azimuth, and \ippdbcolumn{photcode} information
     1206specifying the filter.  The \ippdbtable{Measure} table also carries
     1207the calibration magnitude offsets ($M_{\rm cal}$ and $M_{\rm flat}$,
     1208discussed below) and the astrometrically calibrated position.
     1209Astrometric offsets for several systematic corrections discussed below
     1210are also defined for each measurement.  Since stacks and forced warp
     1211photometry may have non-significant values, the table is somewhat
     1212de-normalized in that it also carries instrumental flux values for the
     1213PSF, aperture, and Kron photometry.  In this case, we have chosen to
     1214trade storage space for computing time.
     1215
     1216In the \ippdbtable{Measure} table, there are three fields which
     1217provide two independent links from the specific measurement to the
     1218associated object: \ippdbtable{Measure}.\ippdbcolumn{catID} specifies
     1219the spatial partition to which the measurement belongs;
     1220\ippdbtable{Measure}.\ippdbcolumn{objID} specifies to which entry in
     1221the \ippdbtable{Average} table the measurement belongs.  These two 32
     1222bit fields can thus be combined into a single 64 bit ID unique for all
     1223objects in the database.  \note{PSPS IDs} In addition, the field
     1224\ippdbtable{Measure}.\ippdbcolumn{averef} specifies the row number in
     1225the \ippdbtable{Average} table of the associated object.  The
     1226\ippdbtable{Measure} table may be unsorted, in which case it is slow
     1227to find the measurements associated with a specific object (a full
     1228table scan is required).  After the table is sorted and indexed, the
     1229\ippdbcolumn{Measure} rows for a given object are grouped together.
     1230In this case, the fields
     1231\ippdbtable{Average}.\ippdbcolumn{measureOffset} and
     1232\ippdbcolumn{Average}.\ippdbcolumn{Nmeasure} define an index for the
     1233code to jump to the list of measurements for a single object.  The
     1234field \ippdbtable{Measure}.\ippdbcolumn{imageID} defines the link from
     1235the measurement to the image which supplied the measurement.
     1236
     1237For the warp images, we also measure the weak lensing KSB parameters
     1238related to the shear and smear tensors \citep{1995ApJ...449..460K}.
     1239These measurements are stored in the \ippdbcolumn{Lensing} table,
     1240along with the radial aperture fluxes for radii numbers 5, 6, \& 7
     1241(respectively 3.0, 4.63, and 7.43 arcsec).  This table contains one
     1242row for every warp row. \note{warp row hasn't been defined anywhere.}
     1243Similarly to the \ippdbtable{Measure} table, the fields
     1244\ippdbcolumn{objID}, \ippdbcolumn{catID}, and \ippdbcolumn{averef}
     1245define links from the \ippdbtable{Lensing} table to the
     1246\ippdbtable{Average} table.  In a similar fashion, the fields
     1247\ippdbtable{Average}.\ippdbcolumn{lensingOffset} and
     1248\ippdbtable{Average}.\ippdbcolumn{Nlensing} are the index into the
     1249sorted \ippdbtable{Lensing} table entries.  \note{discuss failure of
     1250  the Lensing to Measure indexing}
     1251
     1252\subsubsubsection{Astronomical Objects}
    12121253
    12131254% object -> detection
     
    12211262assigned to that object. If more than one object exists within the
    12221263database, the detection is associated with the closest object.
    1223 
    1224 % photcodes
    1225 Detections in DVO have a special piece of metadata called the
    1226 \ippdbcolumn{photcode} which identifies the source of the measurement.
    1227 A \ippdbcolumn{photcode} has a name which in general consists of the
    1228 name of the camera or telescope (e.g., GPC1 or 2MASS), the name (or
    1229 short-hand name) of the filter used for the measurement (e.g.,
    1230 \gps{}), and an identifier for the detector, if not unique (e.g., XY01
    1231 for a GPC1 OTA).  Along with each name, there is a numerical value for
    1232 the photcode.  A table within the DVO system, \ippdbtable{Photcode},
    1233 lists the photcodes and defines a number of additional pieces of
    1234 information for each photcode.  These include the nominal zero point
    1235 and airmass slope, as well as color trends to transform a measurement
    1236 in the specific photcode to a common system.  There are 3 classes of
    1237 photcodes defined within the DVO system.  Those photcodes associated
    1238 with detections from an image loaded into the database system are
    1239 called \ippmisc{DEP} photcodes.  There are also photcodes associated with
    1240 the average photometry values, called \ippmisc{SEC} photcodes.  There are
    1241 also those measurements which come from external data sources for
    1242 which DVO does not have any information to determine a calibration
    1243 (e.g., instrumental magnitudes and detector coordinates).  These are
    1244 measurements are reference values and are assigned \ippmisc{REF}
    1245 photcodes.
    1246 
    1247 % FITS table + compression
    1248 In the implementation of DVO used for the PV3 calibration analysis,
    1249 the database tables are stored on disk using binary FITS tables.  Each
    1250 type of database table is stored as a separate file, or a collection
    1251 of files for table which are spatially partitioned.  The binary FITS
    1252 tables are compressed using the (to date) experimental FITS binary
    1253 table compression strategy outlined by \note{REF}.  Table compression
    1254 is in general an option in DVO; for the PV3 database, the large data
    1255 volume (70TB compressed) drove the decision to compress the tables.
    1256 
    1257 % FITS table compression details
    1258 The FITS binary table compression scheme uses a strategy similar to
    1259 that used for FITS image compression (\note{REF}).  The binary tabular
    1260 data is compressed and stored in the 'HEAP' section of the FITS table
    1261 extension, with pointers to the compressed data stored in the regular
    1262 data section.  Each column in the FITS table is compressed as one (or
    1263 more) blocks.  The standard header keywords which describe the data
    1264 column format (e.g., TFORM1) are replaced with keywords which describe
    1265 the location and size of the compressed data in the HEAP section; the
    1266 information about the uncompressed data is moved to a keyword with 'Z'
    1267 prepended (e.g., ZFORM1) and an additional field is added to define
    1268 the compression algorithm (e.g., ZCTYP1).  The column names (e.g.,
    1269 TTYPE1) and units (e.g., TUNIT1) are retained in their original form.
    1270 
    1271 % FITS table compression details
    1272 The compression algorithm can treat the entire column as a single
    1273 block of data, or it may be broken into a number of chunks, each
    1274 compressed in turn (this must be the same for all columns).
    1275 Additional header information is added to describe the block sizes and
    1276 infomation needed to describe the HEAP data section.  The compression
    1277 algorithms currently defined consist of the GZIP, RICE, PLIO, and
    1278 HCOMPRESS (REFS).  For GZIP, the compression algorithm may transpose
    1279 the byte order before compression: for floating point data of a
    1280 similiar dynamic range, this choice may allow for better compression
    1281 as each byte in the 4 or 8 byte floating point value is more likely to
    1282 be similar to the same byte in other rows than to the other bytes of
    1283 the same row value.  This option is called \code{GZIP_2} in the FITS
    1284 standard, as opposed to the standard order, \code{GZIP_1}.  The DVO
    1285 system can be set to specify the compression options for each column
    1286 in the tables.  In practice, we have chosen a default in which
    1287 floating point numbers use \code{GZIP_2}, character strings use
    1288 \code{GZIP_1}, integers use \code{RICE}.
    1289 
    1290 \subsubsection{Sky Partition}
    1291 
    1292 DVO includes two major classes of database tables: those containing
    1293 information about astronomical objects in the sky and those containing
    1294 other supporting information.  The object-related tables are
    1295 partitioned on the basis of position in the sky: objects within a
    1296 region bounded by lines of constant RA,DEC are contained in a specific
    1297 file.  The boundaries and the associated partition names are stored in
    1298 one of the supporting tables, \ippdbtable{SkyTable}.  This table
    1299 contains the definitions of the boundaries for each sky region
    1300 (\ippdbcolumn{R_MIN}, \ippdbcolumn{R_MAX}, \ippdbcolumn{D_MIN},
    1301 \ippdbcolumn{D_MAX}), the name of the sky region, an ID
    1302 (\ippdbcolumn{INDEX}, equal to the sequence number of the region in
    1303 the table), and index entries to enable navigation within the table.
    1304 The regions are defined in a hierarchical sense, with a series of
    1305 levels each containing a finer mesh of regions covering the sky.
    1306 
    1307 In the default used by the PV3 DVO, the partitioning scheme is based
    1308 on the one used by the Hubble Space Telescope Guide Star Catalog
    1309 files.  \note{add figure} Level 0 is a single region covering the full
    1310 sky.  Level 1 divides the sky in Declination into bands
    1311 7.5\degree\ high.  Level 2 subdivides these Declination bands in the
    1312 RA direction, with spacing related to the stellar density.  Level 3
    1313 divides these RA chunks into 4 - 8 smaller partitions.  This level
    1314 exactly matches the HST GSC layout, and uses the same naming
    1315 convention to identify the partitions: \code{n0000/0000},
    1316 etc. \note{more on the names?}.  Level 4 further divides these regions
    1317 by a factor of 16.  In the \ippdbtable{SkyTable}, a region at one
    1318 level has a pointer to its parent region (the one which contains it)
    1319 and a sequence pointing to its children (regions it contains).  The
    1320 \ippdbtable{SkyTable} enables fast lookups of the on-disk partitions
    1321 which map to a specific coordinate on the sky.  In general, a single
    1322 DVO will have the full sky represented with tables at a single
    1323 level. Although it is possible for mixed levels to be used, this mode
    1324 is not well tested and is avoided in the PV3 DVO database.  For the
    1325 PV3 master database, the partitioning at the \note{should this be
    1326   4th?} 5th level results in \approx 150,000 regions to cover the full
    1327 sky, of which \approx 110,000 are used for the PV3 $3\pi$ data.  The
    1328 densest portions of the bulge contain at most \approx 300,000
    1329 astronomical objects in the database files, with an associated maximum
    1330 of \approx 30 million measurements in these files.  With the compression
    1331 scheme described above, the largest database files are \approx
    1332 3GB, which can be loaded into memory in 30 seconds on the processing
    1333 machines that contain partition data.
    1334 
    1335 \note{is the use of the term 'partition host' consistent in this paper
    1336   and the calibration paper?}
    1337 
    1338 % parallel partitions
    1339 The DVO software system allows the tables which are partitioned across
    1340 the sky to also be distributed across multiple computers, which we
    1341 call partition hosts.  A single file defines the names of these
    1342 partition hosts and the location of the database partition on the
    1343 disks of that machine.  The \ippdbtable{SkyTable} contains elements to
    1344 define by ID the parition host to which a partitioned set of tables
    1345 has been assigned.  Operations which query the database, or perform
    1346 other operations on the database, are aware of the partitioning scheme
    1347 and will launch their operations as remote processes on the machines
    1348 which contain the data they need.  For example, a query for data from
    1349 a small region will launch sub-query operations on the machines which
    1350 contain the data overlapping the region of interest.  These remote
    1351 query operations will select the database information which matches
    1352 the query request (i.e., applying restrictions as defined) and return
    1353 the results to the master process.  The results from the various
    1354 partition hosts are then merged into a single result by the master
    1355 process.  When the parallel partitioning for a DVO instance is
    1356 defined, the tables are randomly assigned to the partition hosts.  As
    1357 a result, queries which span more than a single parition are likely to
    1358 spread the I/O load across a large number of machines.  This
    1359 parallelization is critical to querying and manipulating the enormous
    1360 database on a reasonable timescale.
    1361 
    1362 \subsubsection{Astronomical Objects}
    13631264
    13641265Two tables carry the most important information about the astronomical
     
    13951296rows $9i \rightarrow 9i + 8$ ($i$ is zero counting).
    13961297
    1397 The individual measurements of the astronomical objects are carried in
    1398 the table \ippdbtable{Measure}.  For measurements from PS1 in the PV3
    1399 / DR1 database, this would be values determined by \ippprog{psphot}
    1400 for each \ippstage{chip}, \ippstage{warp}, or \ippstage{stack} stage
    1401 image.  Measurements for other cameras processed by the IPP may also
    1402 be included similarly in a DVO database.  Measurements from other
    1403 sources, such as SDSS, 2MASS, or WISE, can also be included in this
    1404 table (see \S\ref{sec:other.photometry}.
    1405 
    1406 The \ippdbtable{Measure} table includes the instrumental magnitudes
    1407 for the PSF, aperture, and Kron photometry; raw position
    1408 (\ippdbcolumn{Xccd}, \ippdbcolumn{Yccd}) and second moments
    1409 (\ippdbcolumn{Mxx}, \ippdbcolumn{Myy}, \ippdbcolumn{Mxy}), along with
    1410 shape parameters of the PSF model at the position of the object
    1411 (\ippdbcolumn{FWx}, \ippdbcolumn{FWy}, \ippdbcolumn{theta}).  Metadata
    1412 about the exposure that the measurement was derived from is also
    1413 included, such as the exposure time, the date \& time of the
    1414 observation, airmass, azimuth, and \ippdbcolumn{photcode} information
    1415 specifying the filter.  The \ippdbtable{Measure} table also carries
    1416 the calibration magnitude offsets ($M_{\rm cal}$ and $M_{\rm flat}$,
    1417 discussed below) and the astrometrically calibrated position.
    1418 Astrometric offsets for several systematic corrections discussed below
    1419 are also defined for each measurement.  Since stacks and forced warp
    1420 photometry may have non-significant values, the table is somewhat
    1421 de-normalized in that it also carries instrumental flux values for the
    1422 PSF, aperture, and Kron photometry.  In this case, we have chosen to
    1423 trade storage space for computing time.
    1424 
    1425 In the \ippdbtable{Measure} table, there are three fields which
    1426 provide two independent links from the specific measurement to the
    1427 associated object: \ippdbtable{Measure}.\ippdbcolumn{catID} specifies
    1428 the spatial partition to which the measurement belongs;
    1429 \ippdbtable{Measure}.\ippdbcolumn{objID} specifies to which entry in
    1430 the \ippdbtable{Average} table the measurement belongs.  These two 32
    1431 bit fields can thus be combined into a single 64 bit ID unique for all
    1432 objects in the database.  \note{PSPS IDs} In addition, the field
    1433 \ippdbtable{Measure}.\ippdbcolumn{averef} specifies the row number in
    1434 the \ippdbtable{Average} table of the associated object.  The
    1435 \ippdbtable{Measure} table may be unsorted, in which case it is slow
    1436 to find the measurements associated with a specific object (a full
    1437 table scan is required).  After the table is sorted and indexed, the
    1438 \ippdbcolumn{Measure} rows for a given object are grouped together.
    1439 In this case, the fields
    1440 \ippdbtable{Average}.\ippdbcolumn{measureOffset} and
    1441 \ippdbcolumn{Average}.\ippdbcolumn{Nmeasure} define an index for the
    1442 code to jump to the list of measurements for a single object.  The
    1443 field \ippdbtable{Measure}.\ippdbcolumn{imageID} defines the link from
    1444 the measurement to the image which supplied the measurement.
    1445 
    1446 \note{some discussion of the db construction, addstar, dvomerge, etc?}
    1447 
    1448 For the warp images, we also measure the weak lensing KSB parameters
    1449 related to the shear and smear tensors \citep{1995ApJ...449..460K}.
    1450 These measurements are stored in the \ippdbcolumn{Lensing} table,
    1451 along with the radial aperture fluxes for radii numbers 5, 6, \& 7
    1452 (respectively 3.0, 4.63, and 7.43 arcsec).  This table contains one
    1453 row for every warp row. \note{warp row hasn't been defined anywhere.}
    1454 Similarly to the \ippdbtable{Measure} table, the fields
    1455 \ippdbcolumn{objID}, \ippdbcolumn{catID}, and \ippdbcolumn{averef}
    1456 define links from the \ippdbtable{Lensing} table to the
    1457 \ippdbtable{Average} table.  In a similar fashion, the fields
    1458 \ippdbtable{Average}.\ippdbcolumn{lensingOffset} and
    1459 \ippdbtable{Average}.\ippdbcolumn{Nlensing} are the index into the
    1460 sorted \ippdbtable{Lensing} table entries.  \note{discuss failure of
    1461   the Lensing to Measure indexing}
    1462 
    14631298The values stored in the \ippdbtable{Lensing} table are used to
    14641299calculate average values for each of these types of measurements in
     
    14931328in our analysis of the astrometry \citep[][see]{magnier2017a}.
    14941329
    1495 \subsubsection{Other Tables}
     1330\subsubsubsection{Other Tables}
    14961331
    14971332Measurements which are loaded into DVO may be associated with a
     
    15261361flat-field corrections determined by the astrometry calibration
    15271362analysis \citep[][see]{magnier2017a}.
     1363
     1364\subsubsection{MISC INFO TO BE RE-ORGed}
     1365
     1366Beyond that basic use, DVO has the ability to accept data from other
     1367kinds of data sources in which measurements are not clearly associated
     1368with specific images.  DVO ingest methods are defined for several
     1369large-scale surveys for which the published data represent average
     1370properties derived from multiple measurements, and for which the
     1371measurement-to-image relationship is not provided.  Ingets methods
     1372have been defined for example for 2MASS, WISE, Gaia, USNO-B.  In each
     1373of these cases, the astrometric and photometric measurements are
     1374stored in the \table{Measure} table, with the data source identified
     1375by the photcode of the measurement.
     1376
     1377% photcodes
     1378Detections in DVO have a special piece of metadata called the
     1379\ippdbcolumn{photcode} which identifies the source of the measurement.
     1380A \ippdbcolumn{photcode} has a name which in general consists of the
     1381name of the camera or telescope (e.g., GPC1 or 2MASS), the name (or
     1382short-hand name) of the filter used for the measurement (e.g.,
     1383\gps{}), and an identifier for the detector, if not unique (e.g., XY01
     1384for a GPC1 OTA).  Along with each name, there is a numerical value for
     1385the photcode.  A table within the DVO system, \ippdbtable{Photcode},
     1386lists the photcodes and defines a number of additional pieces of
     1387information for each photcode.  These include the nominal zero point
     1388and airmass slope, as well as color trends to transform a measurement
     1389in the specific photcode to a common system.  There are 3 classes of
     1390photcodes defined within the DVO system.  Those photcodes associated
     1391with detections from an image loaded into the database system are
     1392called \ippmisc{DEP} photcodes.  There are also photcodes associated with
     1393the average photometry values, called \ippmisc{SEC} photcodes.  There are
     1394also those measurements which come from external data sources for
     1395which DVO does not have any information to determine a calibration
     1396(e.g., instrumental magnitudes and detector coordinates).  These are
     1397measurements are reference values and are assigned \ippmisc{REF}
     1398photcodes.
     1399
     1400\subsubsection{DVO Data Storage}
     1401
     1402% FITS table + compression
     1403In the implementation of DVO used for the PV3 calibration analysis,
     1404the database tables are stored on disk using binary FITS tables.  Each
     1405type of database table is stored as a separate file, or a collection
     1406of files for table which are spatially partitioned.  The binary FITS
     1407tables are compressed using the (to date) experimental FITS binary
     1408table compression strategy outlined by \note{REF}.  Table compression
     1409is in general an option in DVO; for the PV3 database, the large data
     1410volume (70TB compressed) drove the decision to compress the tables.
     1411
     1412% FITS table compression details
     1413The FITS binary table compression scheme uses a strategy similar to
     1414that used for FITS image compression (\note{REF}).  The binary tabular
     1415data is compressed and stored in the 'HEAP' section of the FITS table
     1416extension, with pointers to the compressed data stored in the regular
     1417data section.  Each column in the FITS table is compressed as one (or
     1418more) blocks.  The standard header keywords which describe the data
     1419column format (e.g., TFORM1) are replaced with keywords which describe
     1420the location and size of the compressed data in the HEAP section; the
     1421information about the uncompressed data is moved to a keyword with 'Z'
     1422prepended (e.g., ZFORM1) and an additional field is added to define
     1423the compression algorithm (e.g., ZCTYP1).  The column names (e.g.,
     1424TTYPE1) and units (e.g., TUNIT1) are retained in their original form.
     1425
     1426% FITS table compression details
     1427The compression algorithm can treat the entire column as a single
     1428block of data, or it may be broken into a number of chunks, each
     1429compressed in turn (this must be the same for all columns).
     1430Additional header information is added to describe the block sizes and
     1431infomation needed to describe the HEAP data section.  The compression
     1432algorithms currently defined consist of the GZIP, RICE, PLIO, and
     1433HCOMPRESS (REFS).  For GZIP, the compression algorithm may transpose
     1434the byte order before compression: for floating point data of a
     1435similiar dynamic range, this choice may allow for better compression
     1436as each byte in the 4 or 8 byte floating point value is more likely to
     1437be similar to the same byte in other rows than to the other bytes of
     1438the same row value.  This option is called \code{GZIP_2} in the FITS
     1439standard, as opposed to the standard order, \code{GZIP_1}.  The DVO
     1440system can be set to specify the compression options for each column
     1441in the tables.  In practice, we have chosen a default in which
     1442floating point numbers use \code{GZIP_2}, character strings use
     1443\code{GZIP_1}, integers use \code{RICE}.
     1444
     1445\subsubsection{Sky Partition}
     1446
     1447DVO includes two major classes of database tables: those containing
     1448information about astronomical objects in the sky and those containing
     1449other supporting information.  The object-related tables are
     1450partitioned on the basis of position in the sky: objects within a
     1451region bounded by lines of constant RA,DEC are contained in a specific
     1452file.  The boundaries and the associated partition names are stored in
     1453one of the supporting tables, \ippdbtable{SkyTable}.  This table
     1454contains the definitions of the boundaries for each sky region
     1455(\ippdbcolumn{R_MIN}, \ippdbcolumn{R_MAX}, \ippdbcolumn{D_MIN},
     1456\ippdbcolumn{D_MAX}), the name of the sky region, an ID
     1457(\ippdbcolumn{INDEX}, equal to the sequence number of the region in
     1458the table), and index entries to enable navigation within the table.
     1459The regions are defined in a hierarchical sense, with a series of
     1460levels each containing a finer mesh of regions covering the sky.
     1461
     1462In the default used by the PV3 DVO, the partitioning scheme is based
     1463on the one used by the Hubble Space Telescope Guide Star Catalog
     1464files.  \note{add figure} Level 0 is a single region covering the full
     1465sky.  Level 1 divides the sky in Declination into bands
     14667.5\degree\ high.  Level 2 subdivides these Declination bands in the
     1467RA direction, with spacing related to the stellar density.  Level 3
     1468divides these RA chunks into 4 - 8 smaller partitions.  This level
     1469exactly matches the HST GSC layout, and uses the same naming
     1470convention to identify the partitions: \code{n0000/0000},
     1471etc. \note{more on the names?}.  Level 4 further divides these regions
     1472by a factor of 16.  In the \ippdbtable{SkyTable}, a region at one
     1473level has a pointer to its parent region (the one which contains it)
     1474and a sequence pointing to its children (regions it contains).  The
     1475\ippdbtable{SkyTable} enables fast lookups of the on-disk partitions
     1476which map to a specific coordinate on the sky.  In general, a single
     1477DVO will have the full sky represented with tables at a single
     1478level. Although it is possible for mixed levels to be used, this mode
     1479is not well tested and is avoided in the PV3 DVO database.  For the
     1480PV3 master database, the partitioning at the \note{should this be
     1481  4th?} 5th level results in \approx 150,000 regions to cover the full
     1482sky, of which \approx 110,000 are used for the PV3 $3\pi$ data.  The
     1483densest portions of the bulge contain at most \approx 300,000
     1484astronomical objects in the database files, with an associated maximum
     1485of \approx 30 million measurements in these files.  With the compression
     1486scheme described above, the largest database files are \approx
     14873GB, which can be loaded into memory in 30 seconds on the processing
     1488machines that contain partition data.
     1489
     1490\note{is the use of the term 'partition host' consistent in this paper
     1491  and the calibration paper?}
     1492
     1493% parallel partitions
     1494The DVO software system allows the tables which are partitioned across
     1495the sky to also be distributed across multiple computers, which we
     1496call partition hosts.  A single file defines the names of these
     1497partition hosts and the location of the database partition on the
     1498disks of that machine.  The \ippdbtable{SkyTable} contains elements to
     1499define by ID the parition host to which a partitioned set of tables
     1500has been assigned.  Operations which query the database, or perform
     1501other operations on the database, are aware of the partitioning scheme
     1502and will launch their operations as remote processes on the machines
     1503which contain the data they need.  For example, a query for data from
     1504a small region will launch sub-query operations on the machines which
     1505contain the data overlapping the region of interest.  These remote
     1506query operations will select the database information which matches
     1507the query request (i.e., applying restrictions as defined) and return
     1508the results to the master process.  The results from the various
     1509partition hosts are then merged into a single result by the master
     1510process.  When the parallel partitioning for a DVO instance is
     1511defined, the tables are randomly assigned to the partition hosts.  As
     1512a result, queries which span more than a single parition are likely to
     1513spread the I/O load across a large number of machines.  This
     1514parallelization is critical to querying and manipulating the enormous
     1515database on a reasonable timescale.
    15281516
    15291517\subsection{Addstar : DVO Ingest}
Note: See TracChangeset for help on using the changeset viewer.