Differences between revisions 2 and 3
Revision 2 as of 2007-10-24 15:35:59
Size: 6304
Editor: solpc2
Comment:
Revision 3 as of 2007-10-24 23:51:04
Size: 6144
Editor: 63
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Line 5: Line 4:
This guide contains information of interest to all users of the JSOC software.  Information for making new software is in the [wiki:JsocDevelopersGuide Developers Guide]. This guide contains information of interest to all users of the JSOC software. Information for making new software is in the [:JsocDevelopersGuide:Developers Guide].

Hello Brian
Line 8: Line 9:
Line 13: Line 13:
If you ''only'' want to use some JSOC programs you will need to '''do''' the steps described in 'Initial Steps' and be familiar with the topics below down through the 'JSOC Man Pages (man 1)' sections below.  Basic unix/linux familiarity is assumed. If you ''only'' want to use some JSOC programs you will need to '''do''' the steps described in 'Initial Steps' and be familiar with the topics below down through the 'JSOC Man Pages (man 1)' sections below. Basic unix/linux familiarity is assumed.
Line 16: Line 16:
First read the following and decide which machines you plan to use for JSOC work.
Line 17: Line 18:
First read the following and decide which machines you plan to use for JSOC work.
* '''ALL USERS:''' [wiki:SystemEnvironment System Environment] -- OS constraints, machine requirements, etc.
 * '''ALL USERS:''' [:SystemEnvironment:System Environment] -- OS constraints, machine requirements, etc.
Do the following three steps in this order:
Line 20: Line 21:
Do the following three steps in this order:
* '''ALL USERS:''' [wiki:DrmsEnvironmentVars DRMS Environment Variables] -- Set the DRMS required shell environment variables
 * '''DEVELOPERS ONLY:''' [wiki:CvsInit Make Your CVS Work Area] -- Set up your work area for making new code
 * '''ALL USERS:''' [wiki:DrmsPassword DRMS Password] -- Set up your DRMS password file
 * '''ALL USERS:''' [wiki:DrmsPermission DRMS Permission] -- Things you should know about permissions in DRMS
Now you are all setup and ready to go.  The following contains useful information:
 * '''DEVELOPERS INFO:''' [wiki:CvsSandbox Working in Your CVS "Sandbox"] -- Concurrent Versions System '''(CVS)''' for software configuration management
 * '''ALL USERS:''' [:DrmsEnvironmentVars:DRMS Environment Variables] -- Set the DRMS required shell environment variables
 * '''DEVELOPERS ONLY:''' [:CvsInit:Make Your CVS Work Area] -- Set up your work area for making new code
 * '''ALL USERS:''' [:DrmsPassword:DRMS Password] -- Set up your DRMS password file
 * '''ALL USERS:''' [:DrmsPermission:DRMS Permission] -- Things you should know about permissions in DRMS
Now you are all setup and ready to go. The following contains useful information:
Line 28: Line 27:
OK, now try these [wiki:SampleRunsNewUsers Sample Commands].  * '''DEVELOPERS INFO:''' [:CvsSandbox:Working in Your CVS "Sandbox"] -- Concurrent Versions System '''(CVS)''' for software configuration management
OK, now try these [:SampleRunsNewUsers:Sample Commands].
Line 31: Line 31:
 * [wiki:DataSeries Overview] -- What is a Data Series and how do DRMS and SUMS work (and what are they)
   * [http://hmi.stanford.edu/development/JSOC_Documents/DRMSreport_html/index.html DRMS (html)] -- DRMS Overview[http://hmi.stanford.edu/development/JSOC_Documents/DRMS_V10.pdf  (as pdf)] - old doc, contents being verified and included in these pages.
 * [wiki:DrmsNames DRMS Names] -- DRMS Dataset Names and Queries
 * [wiki:DrmsSeriesNames DRMS Series Names] -- Data Series Reserved Names
 * [:DataSeries:Overview] -- What is a Data Series and how do DRMS and SUMS work (and what are they)
  * [http://hmi.stanford.edu/development/JSOC_Documents/DRMSreport_html/index.html DRMS (html)] -- DRMS Overview[http://hmi.stanford.edu/development/JSOC_Documents/DRMS_V10.pdf (as pdf)] - old doc, contents being verified and included in these pages.
 * [:DrmsNames:DRMS Names] -- DRMS Dataset Names and Queries
 * [:DrmsSeriesNames:DRMS Series Names] -- Data Series Reserved Names
Line 36: Line 36:
  * [wiki:SumsDataModel SUMS Data Storage] -- SUMS Basic Data Storage Concepts
   * [wiki:SumsArchiveTimes SUMS Archive and Retention Table] -- Meaning and implications of the values
 * [wiki:Jsd .jsd] -- JSOC Series Definition Files
  * [:SumsDataModel:SUMS Data Storage] -- SUMS Basic Data Storage Concepts
  * [:SumsArchiveTimes:SUMS Archive and Retention Table] -- Meaning and implications of the values
 * [:Jsd:.jsd] -- JSOC Series Definition Files
Line 40: Line 40:
  * [wiki:DrmsCreateSeriesCmd create_series] -- Create entries and tables for a new series in the DRMS database
   * [wiki:DrmsDescribeSeriesCmd describe_series] --  Prints a verbose description of the named series and its current highest record number on stdout.
   * [wiki:DrmsDeleteSeriesCmd delete_series] --  Removes a series and all its associated entries from DRMS.
  * [:DrmsCreateSeriesCmd:create_series] -- Create entries and tables for a new series in the DRMS database
  * [:DrmsDescribeSeriesCmd:describe_series] -- Prints a verbose description of the named series and its current highest record number on stdout.
  * [:DrmsDeleteSeriesCmd:delete_series] -- Removes a series and all its associated entries from DRMS.
Line 44: Line 44:
JSOC programs that use DRMS to operate on DataSeries are called "modules".  Modules are run in "sessions".  HMI and AIA major processing tasks are accomplished in "pipelines" consisting of one or more sessions.  Pipelines are started by "PUI" (Pipeline User Interface) usually by the JSOC production team.  Pipelines may also be initiated by users requesting [wiki:DataSet DataSets] via the web or by team members running locally or remotely.  A DataSet is a collection of records selected by a query.  In essence a dataset name is simply the query that describes it. JSOC programs that use DRMS to operate on DataSeries are called "modules". Modules are run in "sessions". HMI and AIA major processing tasks are accomplished in "pipelines" consisting of one or more sessions. Pipelines are started by "PUI" (Pipeline User Interface) usually by the JSOC production team. Pipelines may also be initiated by users requesting [:DataSet:DataSets] via the web or by team members running locally or remotely. A DataSet is a collection of records selected by a query. In essence a dataset name is simply the query that describes it.
Line 46: Line 46:
A DRMS Session is the basic unit of computing that interracts with DRMS and SUMS.  At the start of a session the user connects to the DRMS database.  During the session the user runs one or more modules which read or create [wiki:DataRecord DataRecords] in DataSeries.  Access to the actual data stored in SUMS is accomplished within a module via the DRMS API.  At the end of a session, SUMS is notified to save any new records online and/or on tape, or to delete records marked temporary to the session. A DRMS Session is the basic unit of computing that interracts with DRMS and SUMS. At the start of a session the user connects to the DRMS database. During the session the user runs one or more modules which read or create [:DataRecord:DataRecords] in DataSeries. Access to the actual data stored in SUMS is accomplished within a module via the DRMS API. At the end of a session, SUMS is notified to save any new records online and/or on tape, or to delete records marked temporary to the session.
Line 48: Line 48:
Actually using the JSOC DRMS requires running a program or module. By "program" we mean a normal shell command and by "module" we mean a program built to run within a DRMS session and communication to a drms_server. There are four types
of programs/modules:
 * '''Modules''' - Most programs that do the work of the user of JSOC are what we call "modules". On the outside modules look like programs. They must run in a DRMS session. If they are built with the normal jsoc_main program they will use an existing session if they are run from a Session Provider or will start their own use-once session if they are called stand-alone from the shell.
 * '''Utility programs''' like [wiki:DrmsCreateSeriesCmd create_series] and [wiki:DrmsDescribeSeriesCmd describe_series] which are usually used to manage the existence of dataseries, not to use dataseries. These programs talk directly to the database.
 * '''Session Providers''' like [wiki:DrmsRunCmd drms_run] or later the [wiki:JsocPui Pipeline User Interface] start DRMS sessions and execute a script file. They can also be used to execute a single instance of a module.
 * '''[wiki:DrmsServerCmd drms_server]''' which connects connects to the database and serves sessions. Most users will not need to start drms_server explicitly.
Actually using the JSOC DRMS requires running a program or module. By "program" we mean a normal shell command and by "module" we mean a program built to run within a DRMS session and communication to a drms_server. There are four types of programs/modules:
Line 55: Line 50:

The benefit of running programs as "modules" will hopefully become apparent when we start running
complex pipelines using hundreds of processors.
 * '''Modules''' - Most programs that do the work of the user of JSOC are what we call "modules". On the outside modules look like programs. They must run in a DRMS session. If they are built with the normal jsoc_main program they will use an existing session if they are run from a Session Provider or will start their own use-once session if they are called stand-alone from the shell.
 * '''Utility programs''' like [:DrmsCreateSeriesCmd:create_series] and [:DrmsDescribeSeriesCmd:describe_series] which are usually used to manage the existence of dataseries, not to use dataseries. These programs talk directly to the database.
 * '''Session Providers''' like [:DrmsRunCmd:drms_run] or later the [:JsocPui:Pipeline User Interface] start DRMS sessions and execute a script file. They can also be used to execute a single instance of a module.
 * '''[:DrmsServerCmd:drms_server]''' which connects connects to the database and serves sessions. Most users will not need to start drms_server explicitly.
The benefit of running programs as "modules" will hopefully become apparent when we start running complex pipelines using hundreds of processors.
Line 61: Line 58:

* [wiki:FileStruct Tree Diagram]
 * [:FileStruct:Tree Diagram]
Line 65: Line 60:
Line 67: Line 61:

  
All programs and modules should have unix-style man pages at [http://jsoc.stanford.edu/man/index.html#man1 man1] but Some do not yet: [wiki:DrmsServerCmd drms_server], [wiki:DrmsQueryCmd drms_query], [wiki:DrmsCreateSeriesCmd create_series], [wiki:DrmsDescribeSeriesCmd describe_series], [wiki:DrmsDeleteSeriesCmd delete_series]

  
Note that all modules built with jsoc_main share a basic set of flags and command line keywords.  See module.1 in man1.
  . All programs and modules should have unix-style man pages at [http://jsoc.stanford.edu/man/index.html#man1 man1] but Some do not yet: [:DrmsServerCmd:drms_server], [:DrmsQueryCmd:drms_query], [:DrmsCreateSeriesCmd:create_series], [:DrmsDescribeSeriesCmd:describe_series], [:DrmsDeleteSeriesCmd:delete_series] Note that all modules built with jsoc_main share a basic set of flags and command line keywords. See module.1 in man1.

Welcome to the JSOC Users Guide

TableOfContents

This guide contains information of interest to all users of the JSOC software. Information for making new software is in the [:JsocDevelopersGuide:Developers Guide].

Hello Brian

Getting Started

Welcome to the Solar Dynamics Observatory Helioseismic and Magnetic Imager and Atmospheric Imaging Array Joint Science Operations Center Data Record Management System and Storage Unit Management System online document tools.

I.e. SDO HMI/AIA JSOC DRMS/SUMS online tools.

If you only want to use some JSOC programs you will need to do the steps described in 'Initial Steps' and be familiar with the topics below down through the 'JSOC Man Pages (man 1)' sections below. Basic unix/linux familiarity is assumed.

Initial Steps

First read the following and decide which machines you plan to use for JSOC work.

  • ALL USERS: [:SystemEnvironment:System Environment] -- OS constraints, machine requirements, etc.

Do the following three steps in this order:

  • ALL USERS: [:DrmsEnvironmentVars:DRMS Environment Variables] -- Set the DRMS required shell environment variables

  • DEVELOPERS ONLY: [:CvsInit:Make Your CVS Work Area] -- Set up your work area for making new code

  • ALL USERS: [:DrmsPassword:DRMS Password] -- Set up your DRMS password file

  • ALL USERS: [:DrmsPermission:DRMS Permission] -- Things you should know about permissions in DRMS

Now you are all setup and ready to go. The following contains useful information:

  • DEVELOPERS INFO: [:CvsSandbox:Working in Your CVS "Sandbox"] -- Concurrent Versions System (CVS) for software configuration management

OK, now try these [:SampleRunsNewUsers:Sample Commands].

DRMS Data Series

  • [:DataSeries:Overview] -- What is a Data Series and how do DRMS and SUMS work (and what are they)

  • [:DrmsNames:DRMS Names] -- DRMS Dataset Names and Queries

  • [:DrmsSeriesNames:DRMS Series Names] -- Data Series Reserved Names

  • Data Storage, Archive, On-Line Retention, EtC.
    • [:SumsDataModel:SUMS Data Storage] -- SUMS Basic Data Storage Concepts

    • [:SumsArchiveTimes:SUMS Archive and Retention Table] -- Meaning and implications of the values

  • [:Jsd:.jsd] -- JSOC Series Definition Files
  • Data series utilities to be run from a user's shell
    • [:DrmsCreateSeriesCmd:create_series] -- Create entries and tables for a new series in the DRMS database

    • [:DrmsDescribeSeriesCmd:describe_series] -- Prints a verbose description of the named series and its current highest record number on stdout.

    • [:DrmsDeleteSeriesCmd:delete_series] -- Removes a series and all its associated entries from DRMS.

JSOC Sessions, Pipelines, and Modules ("''Oh my!''")

JSOC programs that use DRMS to operate on DataSeries are called "modules". Modules are run in "sessions". HMI and AIA major processing tasks are accomplished in "pipelines" consisting of one or more sessions. Pipelines are started by "PUI" (Pipeline User Interface) usually by the JSOC production team. Pipelines may also be initiated by users requesting [:DataSet:DataSets] via the web or by team members running locally or remotely. A DataSet is a collection of records selected by a query. In essence a dataset name is simply the query that describes it.

A DRMS Session is the basic unit of computing that interracts with DRMS and SUMS. At the start of a session the user connects to the DRMS database. During the session the user runs one or more modules which read or create [:DataRecord:DataRecords] in DataSeries. Access to the actual data stored in SUMS is accomplished within a module via the DRMS API. At the end of a session, SUMS is notified to save any new records online and/or on tape, or to delete records marked temporary to the session.

Actually using the JSOC DRMS requires running a program or module. By "program" we mean a normal shell command and by "module" we mean a program built to run within a DRMS session and communication to a drms_server. There are four types of programs/modules:

  • Modules - Most programs that do the work of the user of JSOC are what we call "modules". On the outside modules look like programs. They must run in a DRMS session. If they are built with the normal jsoc_main program they will use an existing session if they are run from a Session Provider or will start their own use-once session if they are called stand-alone from the shell.

  • Utility programs like [:DrmsCreateSeriesCmd:create_series] and [:DrmsDescribeSeriesCmd:describe_series] which are usually used to manage the existence of dataseries, not to use dataseries. These programs talk directly to the database.

  • Session Providers like [:DrmsRunCmd:drms_run] or later the [:JsocPui:Pipeline User Interface] start DRMS sessions and execute a script file. They can also be used to execute a single instance of a module.

  • [:DrmsServerCmd:drms_server] which connects connects to the database and serves sessions. Most users will not need to start drms_server explicitly.

The benefit of running programs as "modules" will hopefully become apparent when we start running complex pipelines using hundreds of processors.

General Information

JSOC File Structure

  • [:FileStruct:Tree Diagram]

DRMS Man Pages

  • [http://jsoc.stanford.edu/man/index.html#man1 Drms Program/Module Man Pages, man1]BR

    • All programs and modules should have unix-style man pages at [http://jsoc.stanford.edu/man/index.html#man1 man1] but Some do not yet: [:DrmsServerCmd:drms_server], [:DrmsQueryCmd:drms_query], [:DrmsCreateSeriesCmd:create_series], [:DrmsDescribeSeriesCmd:describe_series], [:DrmsDeleteSeriesCmd:delete_series] Note that all modules built with jsoc_main share a basic set of flags and command line keywords. See module.1 in man1.

JsocWiki: JsocUsersGuide (last edited 2013-05-01 04:35:25 by localhost)