Automatic GASS

Bypass is commonly used to hook old programs up to new storage systems. The Automatic GASS module can connect an arbitrary program to the GASS system developed by the Globus project. GASS stands for Global Access to Secondary Storage, and provides a very simple API to the user. The only two functions are globus_gass_open and globus_gass_close, which have signatures identical to their POSIX counterparts. Through these two functions, a program may access files on a wide variety of storage systems, including HTTP, FTP, and GSI-FTP servers, using a standard URL format. Files opened using this facility are temporarily stored on a local disk.

The main drawback to this approach is that programs must be specifically re-written to use GASS. One must find all of the instances of open in a program and replace them with globus_gass_open. Although this is not a difficult problem for the technically minded, it would be laborious to re-build each program that wishes to use GASS. Furthermore, one must find all subroutines and libraries called by the program and replaces instances of open there as well. The red dots in the diagram above indicate all of these places.

A simple solution to this problem is to use Bypass to replace all calls to open and close with their counterparts in the GASS library. This allows us to GASS-ify any dynamically linked program, large or small.

Here is a simple example. First, the library must be loaded into the environment using the LD_PRELOAD feature. Now, any dynamically-linked program may run, and the Automatic GASS agent will be inserted. Below, grep is used to search through a web page for a string. tail is used to extract part of a document. Finally, cp is used to copy it to a local disk.

(Each of these examples simply uses HTTP because this is currently the only protocol deployed by GASS. Later versions will include Grid-specific transfer protocols.)

The Automatic GASS module is distributed in the examples directory of the standard Bypass distribution.


Bypass Home
Condor Home