IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 41209 for trunk


Ignore:
Timestamp:
Dec 21, 2019, 12:52:19 PM (7 years ago)
Author:
eugene
Message:

edits to lessons-learned

File:
1 edited

Legend:

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

    r41208 r41209  
    28692869the same constraints. 
    28702870
    2871 One early choice we made was to use standard C and to use Perl as a
    2872 wrapper language.  We considered other language choices, including C++
    2873 and Python.  At the time, Python was fairly new and did not have the
    2874 wide-spread acceptance it has today.  In retrospect, our choice of
    2875 Perl has not held up very well.  The capabiliaties available within
    2876 the Python environment would have allowed us to include interesting
     2871One early choice was to use standard C for analysis programs and to
     2872use Perl as a wrapper language.  We considered other language choices,
     2873including C++ and Python.  Our choice of C over C++ has not held up
     2874well: we would have done well to have the modern object-oriented
     2875features of C++, some aspect of which we have imitated in our C coding
     2876style.  The choice of Perl over Python has also fared poorly.  At the
     2877time, Python was fairly new and did not have the wide-spread
     2878acceptance it has today.  The capabiliaties available within the
     2879Python environment would have allowed us to include interesting
    28772880visualization and other high-level analysis options.  It is also
    28782881easier to hire astronomers with good Python coding skills that Perl
     
    28882891database to manage the processing stages, with regular queries to the
    28892892database to choose the tasks which are ready to proceed.  Other
    2890 choices were possible.  In some pipelined processing systems, jobs
    2891 which complete trigger the next processing step.  For example,
     2893choices were possible.  In some pipelined processing systems,
     2894completed jobs trigger the next processing step.  For example,
    28922895\ippprog{ppImage} or its wrapper (\ippprog{chip_imfile.pl}) could have
    2893 been responsible for launching the \ippprog{psastro} analysis.
     2896been responsible for launching the \ippprog{psastro} analysis,
     2897eliminating the \ippprog{pantasks} manager entirely.
    28942898Alternatively, a manager process could be responsible for launching
    28952899the next processing step when one step has completed.  For example,
     
    28972901complete and launch the \ippprog{psastro} analysis.  Both of these
    28982902choices can potentially result in lower latency since the next step is
    2899 in principle run immediately when the previous step is completed.  Our
    2900 choice has two important advantages: First, error and failure recovery
    2901 are trivial.  If one of the many programs fails or is interrupted, the
    2902 system can easily notice and retry the job.  In a triggered system, a
    2903 failure of one stage could mean the trigger never happens.  Some
    2904 external cleanup system would need to be implemented to check for the
    2905 failures and re-launch.  The second advantage of our design is that
    2906 each analysis stage is highly independent and can thus be flexibly run
    2907 in different ways.  For example, alternative test systems can run in
    2908 parallel with the nightly operations system, using the outputs of the
    2909 nightly processing by simple changes to the queries used to select the
    2910 elements for an analysis stage.  In addition, it is easy to add new
    2911 stages since they do not need to be injected into the standard
    2912 processing manager (\ippprog{pantasks}).
     2903in principle run immediately when the previous step is completed. 
     2904
     2905Our design choice has two important advantages: First, error and failure
     2906recovery are trivial.  If one of the many programs fails or is
     2907interrupted, the system can easily notice and retry the job.  In a
     2908triggered system, a failure of one stage could mean the trigger never
     2909happens.  Some external cleanup system would need to be implemented to
     2910check for the failures and re-launch.  The second advantage of our
     2911design is that each analysis stage is highly independent and can thus
     2912be flexibly run in different ways.  For example, alternative test
     2913systems can run in parallel with the nightly operations system, using
     2914the outputs of the nightly processing by simple changes to the queries
     2915used to select the elements for an analysis stage.  In addition, it is
     2916easy to add new stages since they do not need to be injected into the
     2917standard processing manager (\ippprog{pantasks}).
    29132918
    29142919The main challenge related to this database-managed design is that the
     
    29282933ambiguous.  When we began this project, the existing cluster file
    29292934systems did not seem to match the level of our project.  Some were
    2930 will very much in an early development state (e.g., GFS from Red Hat),
    2931 while others seemed designed for much larger-scale systems, with very
    2932 expensive hardware requirements (e.g., Lustre).  The requirements for
    2933 the filesystem for Pan-STARRS are somewhat different from the
    2934 large-scale computing clusters used by the national labs.  Since the
    2935 data processing is very parallel, we do not have any strong
    2936 requirements on data access concurency.  In theory, we could have
    2937 simply used NFS and made backup copies of the files using some simple
    2938 name-convention rules.  We decided to implement the Nebulous system to
    2939 allow the targetted analysis and to automate the replication of the
    2940 data.  In retrospect, the system has succeeded in these goals and has
    2941 behaved reliably.  However, the support level has been somewhat high,
    2942 especially when we have needed to migrate large amounts of data within
    2943 the cluster.  If we were to start from scratch today, we would
    2944 experiment with some of the existing cluster file systems.
     2935still very much in an early development state (e.g., GFS from Red
     2936Hat), while others seemed designed for much larger-scale systems, with
     2937very expensive hardware requirements (e.g., Lustre).  The requirements
     2938for the filesystem for Pan-STARRS are somewhat different from the
     2939large-scale computing clusters such as those used by the U.S. national
     2940labs.  Since the data processing is very parallel, we do not have any
     2941strong requirements on data access concurency.  In theory, we could
     2942have simply used NFS and made backup copies of the files using some
     2943simple name-convention rules.  We decided to implement the Nebulous
     2944system to allow the targetted analysis and to automate the replication
     2945of the data.  In retrospect, the system has succeeded in these goals
     2946and has behaved reliably.  However, the support level has been
     2947somewhat high, especially when we have needed to migrate large amounts
     2948of data within the cluster.  If we were to start from scratch today,
     2949it is possible that some of the existing cluster file systems would
     2950address our needs within our budget.
    29452951
    29462952Since the Pan-STARRS\,1 telescope first came online in 2007, this
Note: See TracChangeset for help on using the changeset viewer.