Networking
-
TMessage now has schema evolution and TRef (i.e. ProcessID) support. To
enable
schema evolution for all messages call
TMessage::EnableSchemaEvolutionForAll(kTRUE).
To enable it only for a specific message call
mess->EnableSchemaEvolution(kTRUE).
The default for schema evolution is off. The streamer and process id
information are send only once per socket (and is supported for all
types of
sockets, TSocket, TPSocket and TXSocket). If you communicate between
two
ROOT based applications, check the version numbers on both sides. If
they
are not the same enable the schema evolution support (in case ROOT
objects
are transferred).
XROOTD
- New version 20080621-0000 containing several improvements and fixes
- Server:
- New daemon 'cmsd' supposed to replace 'olbd' with improved performances
- Improved polling strategy
- Fix problem with handling writev creating unjustified disconnections
- Fix problem with setrlimit on MacOsX Leopard
- Client:
- Fix a nasty memory leak in XrdClientCacheRead affecting
processing via TChain
- Optimized file closing recipe
- Fix
potential cache thrashing problem with big blocks requests.
- Fixes / improvements in the GSI plug-in:
- support for large (> 32 bits) certificate serial
numbers in CRL handling
- support for an external function for DN-to-username
mapping function; provide example for an LDAP based search
- fixed a few problem with return code checking.
netx
- TXNetFile:
-
Enable dynamic cache size synchronization
- Enable per-instance control of the cache parameters
also for RAW files; by
default cache is OFF for these files, but there maybe cases in which the cache can
improve performances.
- Remove call to XrdClient::Sync in SysStat
-
Correctly honor the create/recreate options coming from TFile::Open()
- Allow the size of the (written) file to be retrieved after the Close (solves several reported file size mismatches).
- TXNetSystem:
- Fix problem with GetDirEntry: the entry object was
going out-of-scope so
that the returned string was meaningless.
- Reset
the list if dir entries in FreeDirectory.
- Fix problem affecting repeated calls.
- The implementation of TFile throughput and info sending was
just sending 'regular' samples about the activity of the single TFile
instance that happened to trigger an activity in the right moment.
- Now TMonaLisaWriter keeps internally track of every
activity
and regularly sends summaries valid for all the files which had
activity in the last time interval.
- Additionally, it's now finalized the infrastructure able to
measure
and keep track of the file Open latency. A packet is sent for each
successful Open, sending the measures of the latencies for the
various phases of the open. Currently exploited fully by TAlienFile
and TXNetFile. Easy to report from other TFiles too.
- Now, the hook for the Close() func triggers sending of a
packet containing various information about the performance related to
that file only.
- Added support also for performance monitoring when writing
RGLITE: A ROOT GRID interface
RGLite plug-in - a ROOT plug-in module, which implements the ROOT Grid
interface and offers to ROOT users possibilities to perform a number of
operations using gLite middleware from within ROOT.
Supported features:
- Workload Management System operations:
- job submission – normal, DAG and parametric
jobs (gLite
WMProxy API),
- smart look-up algorithm for WMP-Endpoints,
- job status querying (gLite LB API),
- job output retrieving (Globus GridFTP).
- File Catalog operations (gLite/LCG LFC API):
- smart session manager,
- set/query the current working catalog directory,
- list files, directories and their stats,
- add/remove files in a catalog namespace,
- add/remove directories,
- add/remove replicas from a given file.
- An executive logging.
- Support of an external XML configuration file with
according XML
schema.
Usage examples:
Job operations
// loading RGLite plug-in
TGrid::Connect("glite");
// submitting Grid job
TGridJob *job = gGrid->Submit("JDLs/simple.jdl");
// getting status object
TGridJobStatus *status = job->GetJobStatus();
// getting status of the job.
TGridJobStatus::EGridJobStatus st( status->GetStatus() );
// when the st is
TGridJobStatus::kDONE you can
retrieve job's output
job->GetOutputSandbox("/tmp");
File Catalog operations
// loading RGLite plug-in
TGrid::Connect("glite");
// changing the current directory to
"/grid/dech"
gGrid->Cd("/grid/dech");
// using Mkdir to create a new
directory
Bool_t b = gGrid->Mkdir("root_test2");
// listing the current directory
TGridResult* result = gGrid->Ls();
// full file information
result->Print("all");
// removing the directory
b = gGrid->Rmdir("root_test2");
Documentation:
http://www-linux.gsi.de/%7Emanafov/D-Grid/docz/RGLite/html/
and
http://www-linux.gsi.de/~manafov/D-Grid/docz/