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
- Fix problem with setrlimit on MacOsX Leopard
- Client:
- Optimized file closing recipe
- Fix potential cache thrashing problem with big blocks requests.
- Several fixes in the GSI plug-in:
- support for large (> 32 bits) certificate serial numbers in CRL handling
netx
- TXNetFile:
- 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
- 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.
- 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/