GIOD Project Report
For June/July/August 1997
Julian J. Bunn
- A new Project title is proposed: GIOD (Globally Interconnected Object
Databases).
- Included in the Web page above is a link to set of transparencies JJB
prepared, and which were shown by Harvey Newman at the CMS Software and Computing
Technical Board in June.
- Also included is a set of transparencies that JJB showed from Caltech via
a VideoConference link to the RD45 workshop in July.
- The page also includes links to a demonstration loading of the SPP
Exemplar that JJB and Rick Wilkinson (RW) made using Objectivity queries, links to plots
of the scaling performance of Objectivity on the Exemplar, NT machines and HP workstations
here at Caltech, and a description of the test application called "Stars" that
JJB developed with Roy
Williams (Caltech centre for Advanced Computing Research, CACR).
- Collaboration with CACR is going very well, with active participation and
interest in the project from Paul Messina, James Patton and Roy Messina. The systems
expertise provided by Heidi Lorenz-Wirba/CACR and Cris Windoffer/JPL, is also much
appreciated.
- The FTO and DRO (fault tolerant and database replication options) were
installed at Caltech, for the purposes of allowing Eva Arderiu from RD45 to make tests of
Wide Area Network database replication. The tests involved replicated database images from
CERN to Caltech at regular intervals during the day and night. These tests were highly
successful, and Eva reported fully on them at the RD45 workshop in July.
- JJB and RW successfully ported the whole of the CMS H2 Test beam analysis
code (based on Objectivity) to Windows/NT at Caltech. All data so far collected at the
test beam have been copied across to Caltech, and inserted it in an Objectivity database
on an NT machine here. We are currently debugging the code.
- JJB and RW have rebuilt all CMS libraries on the Exemplar, and made an
SPP-version of CMSIM (111), which we are preparing to run in background production to use
spare cycles on the machine.
- JJB and RW have replicated the test beam database to the Exemplar,
but are encountering some access problems.
- The HPSS system at Caltech has been used to test Objectivity with
an NFS interface. As part of the collaboration with RD45, and together with James Patton (CACR), JJB created a test database on an
NFS-exported filesystem on an HP workstation in the HEP department. The NFS filesystem was
exported from the HPSS system in CACR. The test database was migrated out to HPSS tape,
and an attempt made to then access it using a simple Objectivity application. Initially
this failed, but by increasing the RPC timeout value used by Objectivity, it was possible
to have the HPSS system recall the data from tape before the application timed out. This
test shows that a fallback solution for managing large Objectivity databases on HPSS
storage is to use the NFS interface (see test details below).
- The non-DCE HPSS client work is progressing well at San Diego
Supercomputing Centre (SDSC), and we expect to receive some code to test on machines here
very shortly. James Patton is following the progress at SDSC closely.
- Tests have begun to monitor the activity of the Caltech HPSS robot
remotely, using a small camera situated inside the robot, connected to a PC running the
Caltech "Virtual Rooms" software. Since, when using HPSS, it is impossible at a
software level to tell whether one's request for data is causing robot activity, the idea
with "Project Cyclops" is to allow to connect to a "Virtual Vault" and
observe the robot directly. More details on this little project are at: http://pcbunn.cacr.caltech.edu/Cyclops.html
- At CERN, Pierantonio Marchesini, and Jelica Draskic-Ostojic have started
work on HPSS, their initial task being to develop a Java client to both manage the
Objy/HPSS interface and to provide the end user with additional functionality and tools.
- JJB still waiting to meet Ram Appalaraju, who has had to postpone his
visits to Caltech for various reasons. Ram is the HP person responsible for the project
funding.
- A license for Rogue Wave Tools.h++ has been purchased by the Project in
order to build the CMS test beam software. There were some difficulties in obtaining the
software, and unfortunately the supplied installation procedures for Windows/NT failed.
Following contacts with Rogue Wave's customer support, we were able to install a
single-threaded version of the libraries. However, some other problems are still not
resolved.
- JJB will travel to the CMS week in Madison/Wisconsin, in September. The
trip is being paid for by Caltech, at JJB's request. Vincenzo Innocente will visit Caltech
for one week following the CMS week, in order to develop the H2 test beam software, and to
assist us with the data replication from CERN. This trip is being funded as one of the
RD45 trips foreseen in the Project proposal (this has been agreed to by RD45).
- JJB met Jeremy Walton (NAG) at Caltech, where Jeremy was presenting Iris
Explorer. Caltech have a site license for Explorer, which we will use during the tests
with the CMS test beam analysis code.
- JJB has installed ObjectStore and Versant (rival Object Databases) on
machines at Caltech, in preparation for possible comparison tests with Objectivity.
Contact has as well been made with Computer Associates, who will shortly announce a fully
functioned multimedia Object Oriented database called Jasmine.
- The availablity of the "aCC" compiler on SPP/UX is in question.
This compiler will be supported by Objectivity in future releases of their product for HP
machines. The currently supported compiler, "CC", is poor on C++ template
support. It may be important that Objectivity continue to support "CC", as well
as "aCC", although the timescales for the latter being available on HP/UX 11,
and the convergence of SPP/UX and HP/UX 11, are sufficiently vague that this is not yet an
issue.
- Objectivity has been installed on the following platforms at Caltech: HP
755 workstation (HEP lab.), Pentium Pro 200 MHz PC (HEP office), Pentium II 266 MHz PC
(HEP office), HP Exemplar SPP 2000 (CACR machine room). The latter installation, which was
made as a test, has recently been removed pending license negotiations with Objectivity.
These are being actively addressed by Paul Messina (CACR), Sam Fulcomer (CACR) and John
Jarrell (Objectivity salesman for Southern California). The other platforms are being used
as supported platforms with CMS licenses.
- On the whole, the Project has found the Objectivity software easy to use,
powerful, and well supported. There hav, however, been some difficulties:
- Objectivity version 4.0.2 is supported on Windows/NT/95 only with the
Microsoft Visual C++ compiler version 4.2, which is no longer being sold. It is possible
to use Objectivity with the latest Visual C++ (version 5.0), but it involves some
dangerous "fix-ups". The next Objectivity release will support VC++ version 5.0.
- It was not possible, even with the above "fix-ups", to build
the CMS test beam code (that uses C++ templates) using VC++ version 5.0, and we were
obliged to revert to VC++ 4.2. This was inconvenient as it meant either giving up the new
features (particularly the Visual Studio development environment, which is compatible with
Visual J++ and Digital Visual Fortran), or making the two products co-exist on the same
system.
- When allowing many simultaneous applications to operate on an Objectivity
database, it is found that, unless very careful (and non-intuitive) steps have been taken
in the design of the schema, strange and incomprehensible error messages are issued by
some database applications at run time, some of the time. This is almost certainly caused
by lockserver contention when databases or containers are repeatedly opened and closed by
a large number of clients.
- Cleaning up after applications "go bad" is often tedious:
pending locks tend to remain from dead applications, and they are especially hard to
remove if the application was running on a remote node when it died.
- Some bugs that affect how collections of objects should be iterated over
have been seen. Applications that hit these bugs did not fail, but produced very poor
performance. An example is the use of object iterators over containers (works fine) and
over databases (doesn't work correctly). Another example is the use of indexes over sets
of objects ... declaring the indexes improperly does not cause any warning or error during
compile or run time, but just produces the wrong set of objects! The cause of these errors
is not known, and they have been reported to Objectivity.