Changeset 7598


Ignore:
Timestamp:
Feb 22, 2019, 9:51:39 AM (5 years ago)
Author:
Nicklas Nordborg
Message:

References #2135: Remove support for secondary storage

Updated documentation.

Location:
trunk/doc/src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/src/docbook/admin/installation.xml

    r7548 r7598  
    5151        This section list some important information that may or may not
    5252        apply when upgrading from the <emphasis>previous</emphasis> BASE
    53         release to the current release (eg. 3.13 to 3.14). If you are
    54         upgrading from a BASE installation that is older (3.0-3.12)
     53        release to the current release (eg. 3.14 to 3.15). If you are
     54        upgrading from a BASE installation that is older (3.0-3.13)
    5555        you should also read <xref linkend="appendix.update_warnings" />.
    5656      </para>
    57 
    58       <bridgehead>The db.driver setting is no longer used</bridgehead>
     57     
     58      <bridgehead>Secondary storage support has been removed</bridgehead>
    5959      <para>
    60         The JDBC driver to use is now found automatically based on
    61         the <constant>db.url</constant> setting in the <filename>base.config</filename>
    62         file. The <constant>db.driver</constant> setting can be removed.
    63       </para>
    64      
    65       <bridgehead>The (very) old Authenticator API has been removed</bridgehead>
    66       <para>
    67         The <code>net.sf.basedb.core.authentication.Authenticator</code>
    68         interface and other related code that was deprecated in BASE 3.3
    69         has been removed. Systems that still use old authentication code
    70         need to replace this with a newer version before updating.
    71       </para>
    72      
    73       <bridgehead>Changes to the authentication system</bridgehead>
    74       <para>
    75         The authentication system has been updated to make it easier to
    76         install more than one external authentication manager. The changes
    77         are backwards compatible and existing authentication managers should
    78         still work as before as long as they are the only ones installed.
    79         However, the existing authentication managers will probably not work
    80         well if more than one is installed since they lack some features that
    81         are neccessary in order to cooperate with other managers. Before installing
    82         more than one authentication manager it is recommended that they are
    83         updated to newer versions.
    84       </para>
    85      
    86       <para>
    87         Newer authentication managers typically no longer provide support for
    88         password authentication. If the intention is that some users still should be
    89         able to login with username+password, it is recommended that the
    90         <guilabel>Password login form</guilabel> is enabled. Go to
    91         <menuchoice>
    92           <guimenu>Administrate</guimenu>
    93           <guisubmenu>Plug-ins &amp; extensions</guisubmenu>
    94           <guimenuitem>Overview</guimenuitem>
    95         </menuchoice> and locate the <guilabel>Login form customization</guilabel>
    96         extension point to find it.
    97       </para>
    98      
    99       <bridgehead>Java 11</bridgehead>
    100       <para>
    101         Java 8 is still the only officially supported version, but our intention
    102         is to switch to Java 11 (or later) some time in the near future (2019).
    103         We have made some initial tests with Java 11 and believe that BASE should
    104         work. However, it requires an extra installation step:
    105       </para>
    106       <para>
    107         Copy the JAR-files located in <filename>&lt;base-dir&gt;/misc/java11/</filename>
    108         to the <filename>&lt;base-dir&gt;/www/WEB-INF/lib/</filename> directory.
    109         If you are running a BASE server today it might be a good idea to
    110         be prepared by setting up a test environment that is running a clone of
    111         the main server under Java 11.
    112       </para>
    113      
    114       <bridgehead>Secondary storage</bridgehead>
    115       <para>
    116         The <guilabel>Secondary storage</guilabel> feature has been deprecated
    117         and will be removed in a future release. The recommendation is to replace
    118         this feature with an external files solution instead.
     60        The <guilabel>Secondary storage</guilabel> feature has been removed.
     61        Files that are located in the secondary storage will be marked as offline
     62        by the upgrade script. The recommendation is to replace this feature with
     63        an external files solution instead.
    11964      </para>
    12065     
  • trunk/doc/src/docbook/appendix/base.config.xml

    r7548 r7598  
    440440  </simplesect>
    441441
    442   <simplesect id="appendix.base.config.secondary">
    443     <title>Secondary storage controller</title>
    444    
    445     <note>
    446       This feature has been deprecated in BASE 3.14 and will be removed in a
    447       future release. The recommendation is to replace this with an
    448       external files solution instead.
    449     </note>
    450    
    451     <para>
    452       This section contains settings for the secondary storage controller. See
    453       <xref linkend="plugin_developer.other.secondary"/> for more
    454       information about secondary storage.
    455     </para>
    456    
    457     <variablelist>
    458     <varlistentry>
    459       <term><property>secondary.storage.driver</property></term>
    460       <listitem>
    461         <para>
    462         The class name of the plug-in that acts as the secondary storage controller.
    463         BASE ships with a simple plug-in that just moves files to another directory,
    464         but it is not enabled by default. The class name of that plug-in is
    465         <classname docapi="net.sf.basedb.core">net.sf.basedb.core.InternalStorageController</classname>.
    466         If no class is specified the secondary storage feature is disabled.
    467           </para>
    468       </listitem>
    469     </varlistentry>
    470    
    471     <varlistentry>
    472       <term><property>secondary.storage.init</property></term>
    473       <listitem>
    474         <para>
    475         Initialisation parameters sent to the plug-in when calling the
    476         <methodname>init()</methodname> method. The syntax and meaning of this
    477         string depends on the plug-in. For the internal controller this is simply
    478         the path to the secondary directory.
    479           </para>
    480       </listitem>
    481     </varlistentry>
    482    
    483     <varlistentry>
    484       <term><property>secondary.storage.interval</property></term>
    485       <listitem>
    486         <para>
    487         Interval in seconds between each execution of the secondary storage
    488         controller plug-in. If this property is not specified, <property>secondary.storage.time</property>
    489         should be set, or the secondary storage feature will be disabled.
    490           </para>
    491       </listitem>
    492     </varlistentry>
    493    
    494     <varlistentry>
    495       <term><property>secondary.storage.time</property></term>
    496       <listitem>
    497         <para>
    498         Time-point values specifying the time(s) of day that the secondary storage controller
    499         should be executed. If present, this setting overrides the
    500         <property>secondary.storage.interval</property> setting.
    501         Time-point values are given as comma-separated list of two-digit, 24-based hour
    502         and two-digit minute values. For example: <userinput>03:10,09:00,23:59</userinput>.
    503           </para>
    504       </listitem>
    505     </varlistentry>
    506     </variablelist>
    507    
    508   </simplesect>
    509442 
    510443  <simplesect id="appendix.base.config.log">
     
    704637        <para>
    705638        The path to the directory where uploaded and generated files should
    706         be stored. This is the primary file storage. See <xref linkend="appendix.base.config.secondary" />
    707         for information about how to configure the secondary storage. Files are not
     639        be stored. This is the primary file storage. Files are not
    708640        stored in the same directory structure or with the same names as in
    709641        the BASE file system. The internal structure may contain sub-directories.
  • trunk/doc/src/docbook/appendix/incompatible.xml

    r7545 r7598  
    3535    and backwards compatible.
    3636  </para>
     37 
     38  <sect1 id="appendix.incompatible.3.15">
     39    <title>BASE 3.15 release</title>
     40   
     41    <bridgehead id="appendix.incompatible.secondarystorage">Secondary storage support has been removed</bridgehead>
     42    <para>
     43      API that is related to the secondary storage feature has been removed. For example,
     44      In the <classname docapi="net.sf.basedb.core">File</classname> class, <code>getAction()/setAction()</code>
     45      has been removed. In the <classname docapi="net.sf.basedb.core">Location</classname> enumeration,
     46      <code>SECONDARY</code> has been removed.   
     47    </para>
     48  </sect1>
    3749 
    3850  <sect1 id="appendix.incompatible.3.14">
  • trunk/doc/src/docbook/appendix/update_warnings.xml

    r7545 r7598  
    3535    to the current version.
    3636  </para>
     37 
     38  <sect1 id="appendix.update_warnings.3.15">
     39    <title>BASE 3.15</title>
     40 
     41    <bridgehead>Secondary storage support has been removed</bridgehead>
     42    <para>
     43      The <guilabel>Secondary storage</guilabel> feature has been removed.
     44      Files that are located in the secondary storage will be marked as offline
     45      by the upgrade script. The recommendation is to replace this feature with
     46      an external files solution instead.
     47    </para>
     48 
     49 
     50  </sect1>
    3751 
    3852  <sect1 id="appendix.update_warnings.3.14">
  • trunk/doc/src/docbook/developer/base_api.xml

    r6468 r7598  
    820820          quota values for different types of quota types and locations.
    821821          BASE defines several quota types (file, raw data and experiment),
    822           and locations (primary, secondary and offline).
     822          and locations (primary, external and offline).
    823823        </para>
    824824       
     
    10781078        <listitem>
    10791079          <para>
    1080           2 = The file is in secondary storage, ie. it has been moved to some
    1081           other place and can't be used by BASE immediately.
    1082           </para>
    1083         </listitem>
    1084         <listitem>
    1085           <para>
    10861080          3 = The file is an external file whose location is referenced by the
    10871081          <varname>url</varname> property. If the file is protected by passwords
     
    10941088        </listitem>
    10951089        </itemizedlist>
    1096        
    1097         <para>
    1098           The <varname>action</varname> property controls how a file is
    1099           moved between primary and seconday storage. It can have the following
    1100           values:
    1101         </para>
    1102        
    1103         <itemizedlist>
    1104         <listitem>
    1105           <para>
    1106           0 = Do nothing
    1107           </para>
    1108         </listitem>
    1109         <listitem>
    1110           <para>
    1111           1 = If the file is in secondary storage, move it back to the primary storage
    1112           </para>
    1113         </listitem>
    1114         <listitem>
    1115           <para>
    1116           2 = If the file is in primary storage, move it to the secondary storage
    1117           </para>
    1118         </listitem>
    1119         </itemizedlist>
    1120        
    1121         <para>
    1122           The actual moving between primary and secondary storage is done by an
    1123           external program. See
    1124           <xref linkend="appendix.base.config.secondary" /> and
    1125           <xref linkend="plugin_developer.other.secondary" /> for more information.
    1126         </para>
    1127      
     1090
    11281091        <para>
    11291092          The <varname>md5</varname> property can be used to check for file
    1130           corruption when it is moved between primary and secondary storage or
    1131           when a user re-uploads a file that has been offline.
     1093          corruption when a user re-uploads a file that has been offline.
    11321094        </para>
    11331095       
  • trunk/doc/src/docbook/developer/plugins.xml

    r7549 r7598  
    34653465    <?dbhtml filename="other.html" ?>
    34663466    <title>Other plug-ins</title>
    3467    
    3468     <sect2 id="plugin_developer.other.secondary">
    3469       <title>Secondary file storage plugins</title>
    3470      
    3471       <note>
    3472         This feature has been deprecated in BASE 3.14 and will be removed in a
    3473         future release. The recommendation is to replace this with an
    3474         external files solution instead. See <xref linkend="extensions_developer.connection_manager" />
    3475         for more information.
    3476       </note>
    3477      
    3478       <sect3 id="plugin_developer.other.secondary.vsprimary">
    3479         <title>Primary vs. secondary storage</title>
    3480         <para>
    3481           BASE has support for storing files in two locations, the primary storage and
    3482           the secondary storage. The primary storage is always disk-based and must be
    3483           accessible by the BASE server as a path on the file system. The path to the
    3484           primary storage is configured by the <varname>userfiles</varname> setting in the
    3485           <filename>base.config</filename> file. The primary storage is internal to
    3486           the core. Client applications don't get access to read or manipulate the
    3487           files directly from the file system.
    3488         </para>
    3489        
    3490         <para>
    3491           The secondary storage can be anything that can store files. It could, for
    3492           example, be another directory, a remote FTP server, or a tape based archiving
    3493           system. A file located in the secondary storage is not accessible by the
    3494           core, client applications or plug-ins. The secondary storage can only be accessed
    3495           by the secondary storage controller. The core (and client) applications uses
    3496           flags on the file items to handle the interaction with the secondary storage.
    3497         </para>
    3498        
    3499         <para>
    3500           Each file has an <property>action</property> attribute which default's to
    3501           <constant>File.Action.NOTHING</constant>. It can take two other values:
    3502         </para>
    3503        
    3504         <orderedlist>
    3505         <listitem>
    3506           <para>
    3507           <constant>File.Action.MOVE_TO_SECONDARY</constant>
    3508           </para>
    3509         </listitem>
    3510         <listitem>
    3511           <para>
    3512           <constant>File.Action.MOVE_TO_PRIMARY</constant>
    3513           </para>
    3514         </listitem>
    3515         </orderedlist>
    3516        
    3517         <para>
    3518           All files with the action attribute set to <constant>MOVE_TO_SECONDARY</constant>
    3519           should be moved to the secondary storage by the controller, and all files
    3520           with the action attribute set to <constant>MOVE_TO_PRIMARY</constant> should be
    3521           brought back to primary storage.
    3522         </para>
    3523        
    3524         <para>
    3525           The moving of files between primary and secondary storage doesn't happen
    3526           immediately. It is up to the server administrator to configure how often and
    3527           at what times the controller should check for files that should be moved.
    3528           This is configured by the <varname>secondary.storage.interval</varname>
    3529           and <varname>secondary.storage.time</varname> settings in the
    3530           <filename>base.config</filename> file.       
    3531         </para>
    3532       </sect3>
    3533      
    3534       <sect3 id="plugin_developer.other.secondary.interface">
    3535         <title>The SecondaryStorageController interface</title>
    3536        
    3537         <para>
    3538           All you have to do to create a secondary storage controller is to
    3539           create a class that implements the
    3540           <interfacename docapi="net.sf.basedb.core">net.sf.basedb.core.SecondaryStorageController</interfacename>
    3541           interface. In your <filename>base.config</filename> file you then specify the
    3542           class name in the <varname>secondary.storage.driver</varname> setting and its
    3543           initialisation parameters in the <varname>secondary.storage.init</varname> setting.
    3544         </para>
    3545 
    3546         <para>
    3547           Your class must have a public no-argument constructor.
    3548           The BASE application will create only one instance of the class for
    3549           lifetime of the BASE server. Here are the methods that you must implement:
    3550         </para>
    3551        
    3552         <variablelist>
    3553         <varlistentry>
    3554           <term>
    3555           <methodsynopsis language="java">
    3556             <modifier>public</modifier>
    3557             <void />
    3558             <methodname>init</methodname>
    3559             <methodparam>
    3560               <type>String</type>
    3561               <parameter>settings</parameter>
    3562             </methodparam>
    3563           </methodsynopsis>
    3564           </term>
    3565           <listitem>
    3566             <para>
    3567             This method is called just after the object has been created with its argument
    3568             taken from the <varname>secondary.storage.init</varname> setting in your
    3569             <filename>base.config</filename> file. This method is only called once for
    3570             an object.
    3571             </para>
    3572           </listitem>
    3573         </varlistentry>
    3574         <varlistentry>
    3575           <term>
    3576           <methodsynopsis language="java">
    3577             <modifier>public</modifier>
    3578             <void />
    3579             <methodname>run</methodname>
    3580           </methodsynopsis>
    3581           </term>
    3582           <listitem>
    3583             <para>
    3584             This method is called whenever the core thinks it is time to do some
    3585             management of the secondary storage. How often the <methodname>run()</methodname>
    3586             method is called is controlled by the <varname>secondary.storage.interval</varname>
    3587             and <varname>secondary.storage.time</varname> settings in the
    3588             <filename>base.config</filename> file.
    3589             When this method is called the controller should:
    3590             </para>
    3591            
    3592             <itemizedlist>
    3593             <listitem>
    3594               <para>
    3595               Move all files which has <constant>action=MOVE_TO_SECONDARY</constant> to
    3596               the secondary storage. When the file has been moved call
    3597               <methodname>File.setLocation(Location.SECONDARY)</methodname> to tell the
    3598               core that the file is now in the secondary storage. You should also call
    3599               <methodname>File.setAction(File.Action.NOTHING)</methodname> to reset the
    3600               action attribute.
    3601               </para>
    3602             </listitem>
    3603            
    3604             <listitem>
    3605               <para>
    3606               Restore all files which has <constant>action=MOVE_TO_PRIMARY</constant>.
    3607               The core will set the location attribute automatically, but you should
    3608               call <methodname>File.setAction(File.Action.NOTHING)</methodname> to reset
    3609               the action attribute.
    3610               </para>
    3611             </listitem>
    3612            
    3613             <listitem>
    3614               <para>
    3615               Delete all files from the secondary storage that are not present
    3616               in the database with <constant>location=Location.SECONDARY</constant>.
    3617               This includes files which has been deleted and files that have been
    3618               moved offline or re-uploaded.
    3619               </para>
    3620             </listitem>
    3621            
    3622             </itemizedlist>
    3623            
    3624             <para>
    3625               As a final act the method should send a message to each user owning
    3626               files that has been moved from one location to the other. The message
    3627               should include a list of files that has been moved to the secondary
    3628               storage and a list of files moved from the secondary storage and a
    3629               list of files that has been deleted due to some of the reasons above.
    3630             </para>
    3631           </listitem>
    3632         </varlistentry>       
    3633        
    3634         <varlistentry>
    3635           <term>
    3636           <methodsynopsis language="java">
    3637             <modifier>public</modifier>
    3638             <void />
    3639             <methodname>close()</methodname>
    3640           </methodsynopsis>
    3641           </term>
    3642           <listitem>
    3643             <para>
    3644             This method is called when the server is closing down. After this the object
    3645             is never used again.
    3646             </para>
    3647           </listitem>
    3648         </varlistentry>
    3649         </variablelist>
    3650       </sect3>
    3651      
    3652       <sect3 id="plugin_developer.other.secondary.settings">
    3653         <title>Configuration settings</title>
    3654        
    3655         <para>
    3656         The configuration settings for the secondary storage controller is located in the
    3657         <filename>base.config</filename> file. Here is an overview of the settings.
    3658         For more information read <xref linkend="appendix.base.config" />.
    3659         </para>
    3660        
    3661         <variablelist>
    3662         <varlistentry>
    3663           <term><property>secondary.storage.driver</property></term>
    3664           <listitem>
    3665             <para>
    3666             The class name of the secondary storage plug-in.
    3667             </para>
    3668           </listitem>
    3669         </varlistentry>
    3670         <varlistentry>
    3671           <term><property>secondary.storage.init</property></term>
    3672           <listitem>
    3673             <para>
    3674              Initialisation parameters sent to the plug-in by calling the
    3675              <methodname>init()</methodname> method.
    3676             </para>
    3677           </listitem>
    3678         </varlistentry>
    3679         <varlistentry>
    3680           <term><property>secondary.storage.interval</property></term>
    3681           <listitem>
    3682             <para>
    3683              Interval in seconds between each execution of the secondary storage
    3684              controller plug-in.
    3685             </para>
    3686           </listitem>
    3687         </varlistentry>
    3688         <varlistentry>
    3689           <term><property>secondary.storage.time</property></term>
    3690           <listitem>
    3691             <para>
    3692               Time points during the day when the secondary storage controller plugin
    3693               should be executed.
    3694             </para>
    3695           </listitem>
    3696         </varlistentry>
    3697         </variablelist>
    3698       </sect3>
    3699     </sect2>
    37003467   
    37013468    <sect2 id="plugin_developer.other.unpacker">
  • trunk/doc/src/docbook/user/file_system.xml

    r7480 r7598  
    866866        </warning>
    867867      </sect3>
    868 
    869       <sect3 id="file_system.handling.move.secondary">
    870         <title>To the secondary storage</title>
    871 
    872         <para>
    873           This option is only available if the server administrator
    874           has enabled it.
    875         </para>
    876 
    877         <para>
    878           The secondary storage is a kind of storage were it is appropriate
    879           to store files that have been used and no longer requires immediate
    880           access. Moving a file to and from the secondary storage is the job
    881           of a plug-in, which is usually executed once or twice a day.
    882         </para>
    883        
    884         <para>
    885           First, select all files in the current path that should be moved
    886           and then click on
    887           <menuchoice>
    888             <guibutton>Move&hellip;</guibutton>
    889             <guisubmenu>To secondary location</guisubmenu>
    890           </menuchoice>
    891           in the toolbar. The only thing that will happen is that BASE sets a flag
    892           on each file. The next time the secondary storage plug-in
    893           is executed, the files will be moved to the secondary storage. The
    894           actual file contents is deleted from the server's disk.
    895         </para>
    896        
    897         <para>
    898           While the file is in the secondary storage BASE behaves in the same way as
    899           if the file is offline. Th file cannot be used to import data from, or
    900           other things. To use the file again, the file must be moved back to
    901           the primary storage.
    902         </para>
    903        
    904         <para>
    905           To bring files back from the secondary storage, select the files
    906           and then click on
    907           <menuchoice>
    908             <guibutton>Move&hellip;</guibutton>
    909             <guisubmenu>To primary location</guisubmenu>
    910           </menuchoice> in the toolbar. The files will be moved back the next
    911           time the secondary storage plug-in is executed.
    912         </para>
    913        
    914         <note>
    915           <title>Do not forget to set quota for the secondary storage</title>
    916           <para>
    917             The default installation does not assign quota for the
    918             secondary storage. Unless the administrator assigns quota
    919             the move will silently fail.
    920           </para>
    921         </note>
    922       </sect3>
    923 
    924868    </sect2>
    925869
     
    931875        file, like downloading the file and viewing the file. The same icons appear
    932876        on the single-item view and in most other places where files are used.
    933         You cannot view or download files that have been moved offline or to the
    934         secondary storage.
     877        You cannot view or download files that have been moved offline.
    935878      </para>
    936879      <sect3 id="file_system.handling.actions.download">
Note: See TracChangeset for help on using the changeset viewer.