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.