IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changes between Version 194 and Version 195 of ippToPsps


Ignore:
Timestamp:
Mar 9, 2012, 2:32:53 PM (14 years ago)
Author:
rhenders
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ippToPsps

    v194 v195  
    112112== loader.py ==
    113113
    114 {{{loader.py}}} programs actually process the data and upload it to the datastore for PSPS. They look to the queue tables in the {{{ippToPsps}}} database for a list of items to process. They first attempt to process a stripe of RA (from the [wiki:ippToPsps_Database#Thestripetable stripe table]) that is not being processed by any other {{{loader.py}}} client. If all available stripes have already been reserved, then it chooses the stripe with the largest number of pending items.
    115 
    116 With a stripe chosen, {{{loader.py}}} obtains a list of box_ids (each stripe is sub-divided into boxes). It works its way through each box, processing all pending items.
     114{{{loader.py}}} programs actually process the data and upload it to the datastore for PSPS. They look to the queue tables in the {{{ippToPsps}}} database for a list of items to process. They first attempt to secure a  a 'stripe' of RA (from the [wiki:ippToPsps_Database#Thestripetable stripe table]) that is not being processed by any other {{{loader.py}}} clients. If all available stripes have already been reserved, then it chooses the stripe with the largest number of pending items.
     115
     116With a stripe chosen, {{{loader.py}}} gathers a list of box_ids (each stripe is sub-divided into boxes). It works its way through each box, processing all pending items.
     117
     118Because it is possible, and usual, to run multiple versions of {{{loader.py}}} (in order to speed up loading time), the method to begin processing a new batch is part of a critical section. This simply means that the 'batch' table in the {{{ippToPsps}}} database is locked by a client looking for a new item to process, then released afterwards, ensuring that two separate {{{loader.py}}} instances do not attempt to process the same item.
    117119== metrics.py ==
    118120