Release Notes 3 2

From SRB

Contents

SRB 3.2

This document describes changes for SRB 3.2, released July 2, 2004.

If you are upgrading from a 3.1.0 release, you must first run .../MCAT/data/310to320patch.xyz, where xyz matches your DBMS system (syb, ora, psg, inf, mys, or db2). If you are upgrading from a previous release, see the instructions in MCAT/README.MCAT.PATCH.

New Shell to execute Scommands more quickly: Ssh

The Ssh command executes commands (both normal UNIX commands and S-commands) read from a terminal or a file.

The primary goal for the design of Ssh is to reduce the client/server connection overhead of S-command (the family of SRB command such as Sinit, Sls, Sput, Sget, etc). Currently, after initializing with the Sinit command, each S-command can be run as an independent UNIX command. Within each S-command, a new connection to the SRB server is created at the start of the command and the connection is disconnected at the end of each command. The standalone Scommand model is simple and easy to use. However, the overhead of creating a SRB client/server connection is rela- tively high, especially on the server side. The high connec- tion overhead causes lag time in command response especially when the network latency between client and server is high, and consumes resources of the servers. See the man page for more details.

Client Initiated Connections parallel I/O mode

A new "client-initiated connections" mode for parallel I/O has been implemented in Sget, Sput, and Srsync to avoid problems with firewalls in some environments. Our original parallel I/O mode was (and is) server-initated where the SRB Servers connect back to the Client for each of the parallel data streams. If a firewall prevents incoming connections to the Client, the transfer would fail. In client-initiated mode, it is the Client that connects to the SRB Server (multiple times) for the parallel I/O streams. For additional information, see the Sget, Sput, and Srsync descriptions in the Scommands section below.

MCAT for the Informix DBMS

SRB 3.2 also contains a port of the MCAT to the Informix database management system. This port was done by Mike Smorul from the University of Maryland, College Park.

Database Access Interface (DAI)

The release also contains Database Access Interface (DAI) drivers for a few more database systems. The new systems that have been added are Informix, Sybase, Postgres and MySQL. The DAI provides access to tabular data stored in databases using the SRB. Additional information about DAI can be found in the readme.dir in the file called README.DAI.

Core SRB Server improvements

  1. Free space used in selecting a resource.
  2. SRB maintenance mode

Each individual SRB server can be put into maintenance mode independently from the other SRB servers. If the MCAT server is put into maintenance mode, the whole set of servers within the zone is effectively put into maintenance mode.

  1. The checksum value of the source file of a Scp operation will now be replicated to the target file.
  2. A couple of timeouts were placed in the srbServer code to better handle idle processes.
  3. The death of child processing is now handled in the main srbMaster loop to eliminate a problem with defunct process and hangs due to a deadlock condition.
  4. A better check of container family membership was implemented for Srmcont and Ssyncont.

New options/capabilities added to existing Scommands:

  • Scat
  • Schmod
  • Sget

In addition, with the -M option set, the [-N numthreads] can be used to suggest to the server on the number of threads to use for the parallel transfer. If this option is not used, the server will decide the number of threads based on an internal algorithm. added -c option where datasets to download are chosen based on condition rather than by data or collection names. The condition option applies to the whole SRB system instead of relative to the current working collection. Example: Sget -c "GUID='123'" will copy all objects that have their Guid set to 123. Usable conditions can be found in Sattrs.

  • Sls

added -V option to verify the physical path assoicated with the data by doing a file stat on the physical path. Only works for UNIX type resource currently. added -c option where datasets to be listed are chosen based on condition rather than by data or collection names. The condition option applies to the whole SRB system instead of relative to the current working collection. Example: Sls -c "GUID like '123%'" will list all objects that have their Guid starting with 123. Usable conditions can be found in Sattrs.

  • SmodR
  • Spcommand
  • Sput

In addition, with the -M option set, the [-N numthreads] can be used to suggest to the server on the number of threads to use for the parallel transfer. If this option is not used, the server will decide the number of threads based on an internal algorithm.

  • Srsync

added -s option that synchronizes based on only the file size (instead of the the size and checksum value) . This mode provides faster operation but the result is less accurate. added -M option that uses "client initiated" parallel I/O for synchronization (see Sput/Sget for explanation).

  • Sufmeta

added -e options that allow copying metadata from one SRB object/collection to another SRB object/collection.

Scommand bugs fixed

Bugs were fixed in the following Scommands: Sannotate, Sattrs, Scd, Schksum, Scp, SgetD, SgetR, Sinit, Sln, Smkdir, SmodColl, Smv, Spasswd, Srm, Srmtrash, Stcat, Sticket, and Stls.

New features in installation and administration

  1. The Java Admin Tool will now prompt for host and login information if the .MdasEnv and .MdasAuth files are not found (or upon user request).
  2. install.pl script has a few small improvements/bug fixes and some additional comments based on recent experience from the user community. You can download this off of our web page, and it is also included in the release.
  3. Two new administrator commands have been added:
    • SdelValue
    • SmodifyUser
  4. Lots of improvements to RPM spec file, located in mk/RPM/SRB.spec. Use this for making all 3 SRB rpms, MCAT, Slave, and client. View readme.dir/README.RPM.INSTALL for information.

As always, many smaller bug fixes and enhancements have also been made and some documentation updated.