Log of /trunk/proof/proof/inc/TProof.h
Parent Directory
Revision
48992 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 28 15:26:26 2013 UTC (21 months, 3 weeks ago) by
rdm
File length: 49986 byte(s)
Diff to
previous 48060
From Lifeng Sun:
The attached patchset fixes a bunch of typo in the source:
0001-succes-success.patch
0002-preceed-preced.patch
0003-informations-information.patch
0004-childs-children.patch
0005-avaliable-available.patch
0006-writeable-writable.patch
0007-comand-command.patch
0008-unkown-unknown.patch
0009-wierd-weird.patch
0010-wheter-whether.patch
0011-unecessary-unnecessary.patch
0012-splitted-split.patch
0013-registerd-registered.patch
0014-recieve-receive.patch
0015-processsing-processing.patch
0016-ouput-output.patch
0017-mutiple-multiple.patch
0018-lenght-length.patch
0019-interupted-interrupted.patch
0020-independant-independent.patch
0021-inconsistant-inconsistent.patch
0022-expresion-expression.patch
0023-explicitely-explicitly.patch
0024-enviroment-environment.patch
0025-deafult-default.patch
0026-continous-continuous.patch
0027-completly-completely.patch
0028-commited-committed.patch
0029-choosen-chosen.patch
0030-backgroud-background.patch
0031-auxilliary-auxiliary.patch
0032-authentification-authentication.patch
0033-appropiate-appropriate.patch
0034-an-other-another.patch
0035-environement-environment.patch
0036-targetting-targeting.patch
0037-suppported-supported.patch
0038-paramater-parameter.patch
Revision
48060 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Dec 15 18:53:16 2012 UTC (2 years, 1 month ago) by
ganis
File length: 49987 byte(s)
Diff to
previous 47831
From Dario: patch introducing an improved dataset management model where the PROOF (ROOT)
dataset manager is a light frontend to the experiment file catalogs; TDataSetManagerFile
is still used as local cache of the experiment information or to store the work-in-progress
status of the dataset manager daemon. This model is expected to solve the scalability issues
observed currently at AAFs.
The patch includes the new class TDataSetManagerAliEn with the first concrete implementation
of experiment catallog interface. The equivalent for ATLAS will follow.
Revision
47528 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 21 12:47:27 2012 UTC (2 years, 2 months ago) by
ganis
File length: 49409 byte(s)
Diff to
previous 47444
In TProof::EnablePackage, add possibility to choose the level of version compatibility check
to decide whether to re-build the package or not. Three options are possible: 'off', no check
with possible failure at TSystem::Load, 'on' check the ROOT version, 'svn' check the ROOT version
and the SVN revision (default is 'on'). The choice can be done via a special option to the
option string('chkv=off|on|svn' or 'checkversion=off|on|svn') or via the ROOTrc variable
'Proof.Package.CheckVersion' .
Revision
47444 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 19 13:48:59 2012 UTC (2 years, 2 months ago) by
ganis
File length: 49367 byte(s)
Diff to
previous 47238
- In case of non-tty, do not print all progress messages during the merging phase
to avoid filling up the logs with useless info.
- Add member TProof::fTty and getter TProof::IsTty() to centrally control the tty-ness
of the session
Revision
45718 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 28 10:06:59 2012 UTC (2 years, 4 months ago) by
ganis
File length: 49020 byte(s)
Diff to
previous 45666
- Extend parallel dataset verification to PROOF-Lite
- Remove some duplication between TProofServ and TProofLite
Should solve problem observed with stressProof in CDash.
Revision
45283 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 30 10:42:38 2012 UTC (2 years, 5 months ago) by
ganis
File length: 49080 byte(s)
Diff to
previous 45093
Patch automatizing the usage of the file-based technology to handle outputs.
After this patch PROOF users can define as an option to Process an output file for their results
and choose if the merging goes via file or in memory. User can also decide to save theit results
in a set of files identified by a name (dataset).
Administrators can force merging-via-file or can make it conditional to the resident memory exceeding
a given threshold.
The new options are documented at
http://root.cern.ch/drupal/content/handling-outputs
Since TProofOutputFile is now used by TProof, the class has been moved from proof/proofplayer
(libProofPlayer) to proof/proof (libProof).
The selector tutorials/proof/ProofSimple.h,.C has been modified to allo testing the new options,
and a new test has been added to stressProof.
Revision
45093 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jul 17 10:11:09 2012 UTC (2 years, 6 months ago) by
ganis
File length: 48819 byte(s)
Diff to
previous 44683
Add auxilliary functions to retrieve environment information from the nodes,
typically from the master (datadir or some env settings).
This is done by temporarly activating only the target actor by ordinal number, e.g. "0"
for master or "0.4" for the fifth worker.
Internally, saving/restore capabilities are added to activate/deactivate worker technology.
Also, a new Exec(cmd, ordinal) has been added to execute a command on a given actor only.
The following TProof functions have been added to get environment information:
TString Getenv(const char *env, const char *ord = "0");
Int_t GetRC(const char *RCenv, Int_t &env, const char *ord = "0");
Int_t GetRC(const char *RCenv, Double_t &env, const char *ord = "0");
Int_t GetRC(const char *RCenv, TString &env, const char *ord = "0");
Revision
44683 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 14 09:27:40 2012 UTC (2 years, 7 months ago) by
ganis
File length: 47933 byte(s)
Diff to
previous 44046
First version of the final patch enabling multi-workers on single node using
PROOF-Lite. This is supposed to improved scalability for large number of workers
(>300-400) and is currently available only for non-data driven tasks.
The new setup configuration is enabled by the directive 'xpd.remoteplite 1' in
the xproofd configuration file.
Revision
44046 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 1 11:34:04 2012 UTC (2 years, 8 months ago) by
ganis
File length: 47855 byte(s)
Diff to
previous 43107
Simplify enabling of basic feedback.
- In TDrawFeedback::Feedback, call method Draw() of objects not identified as TH1
derivation. This allows user-defined objects implementing Draw to be displayed
via this utility class (request on the forum).
- In TPerfStats, add new histogram TH1I with the packets being processed per worker;
currently this is 0 or 1 but may change in future; it shows which workers are
still active, which may be useful for debugging at the end of query.
- Add new class TStatsFeedback to display in one canvas the distributions for
the events processed per workers, the packets processed per workers and the
packets being processed per worker.
- In TProof::Process, add support for switches "fb=name1,name2,name3,... " or
"feedback=name1,name2,name3,... " in the option field. This enables feedback
for the specified objects, creating a TDrawFeedback object attached to the session.
Feedback for the specified objects is disabled at the end of the query and the
created TDrawFeedback is destroyed.
The special name 'stats' enables the three feedback histograms required by
TStatsFeedback, and uses a TStatsFeedback instead of TDrawFeedback.
The feedback specs are removed from the option field passed to TProofPlayer::Process.
Revision
43107 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 24 12:45:22 2012 UTC (2 years, 10 months ago) by
ganis
File length: 47738 byte(s)
Diff to
previous 43044
From B. Butler:
Add the possibility to force submerging at node level, i.e. one submerger per physical machine.
In this way the network traffic can be minimized, for example when merging large output files.
The new feature is enabled by setting the Int_t parameter 'PROOF_MergersByHost' (or the directive
'Proof.MergersByHost') to a non-null value.
Revision
43044 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 17 14:34:52 2012 UTC (2 years, 11 months ago) by
ganis
File length: 47668 byte(s)
Diff to
previous 42858
From Taesoo Kim and me.
Add support for selector-by-object processing in PROOF.
The selector object, created and configured locally by the user, is added to the input
list and recuperated from there on the worker machines for processing. Any input list
setting in the selector itself is not streamed but temporarly moved to then standard
input list, so that user can use the selector input list as container of processing
information if they find convenient to do so.
Process(...) methods with the file name argument replaced by 'TSelector *' have
introduced where relevant (TProof, TProofPlayer and their derivatives, TDSet).
Two tests for the new functionality have been added to test/stressProof.cxx (tests 25
and 26).
Revision
42858 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 3 11:34:05 2012 UTC (2 years, 11 months ago) by
ganis
File length: 46822 byte(s)
Diff to
previous 42761
This patch adds in TProofMgr two static functions to upload files.
These functionare called UploadFiles and differ in the first argument, which is used
to pass the files to be uploaded. These can be given as a list (of TFileInfo or TObjString),
a directory or specified in a text file.
The functions are documented at
http://root.cern.ch/drupal/content/uploading-data-files-proof-cluster
The patch also adds TProofMgr::GetMssUrl() and TProofMgr::SetMssUrl(...) to manage the mass
storage URL attached to a given cluster. By the default the information is retrieved by the
server daemon, but can be modified by the user. The functions TProof::GetDataPoolUrl() and
TProof::SetDataPoolUrl(...) now redirect to TProofMgr::GetMssUrl() and TProofMgr::SetMssUrl(...).
The obsolete functions TProof::UploadDataset have now been removed.
This patch addresses some issues raised on Savannah.
Revision
42761 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jan 23 12:55:12 2012 UTC (3 years ago) by
ganis
File length: 47274 byte(s)
Diff to
previous 42382
- Fix problem with TProof::Load reported by Gordon Watts in the PROOF forum.
The additional files were not copied in the master sandbox but left in the
cache. A workaround for backward compatibility has also been implemented.
Revision
42382 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Dec 2 16:50:21 2011 UTC (3 years, 1 month ago) by
ganis
File length: 47213 byte(s)
Diff to
previous 42000
In TProof, add interface to simplify the creation of the performance tree:
- proof->SetPerfTree("<file>")
Set parameters to create the performance tree and saves it to '<file>'
(default <file> is 'perftree.root')
- proof->SavePerfTree("<file>", "<queryref>")
Saves the performance tree of query '<queryref>' (default the last one)
to '<file>' (default 'perftree.root').
The perfomance tree creation is deisble after each query, so it needs to be
enabled each time.
Revision
42000 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Nov 15 11:35:45 2011 UTC (3 years, 2 months ago) by
ganis
File length: 46905 byte(s)
Diff to
previous 39178
- stressProof.cxx
Add seven new tests to check event range processing, different usages of the
file-resident output technology, tree friends.
These require some new auxilliary files, like an tree with fixed random numbers
(for result reproducibility) which allows to test the distribution of an input
tree via file.
- runProof.C
Add option to automatically save the performance tree, e.g.
runProof("simple(perftree=/path/to/perftree.root)")
Add option 'first=...' to define the first event to be processed (for the
tutorials where this makes sense): e.g.
runProof("h1(first=23456)")
Add option 'inputrndm' to force usage of the new tree with random numbers as
source of randoms.
Revision
39178 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri May 13 10:30:30 2011 UTC (3 years, 8 months ago) by
ganis
File length: 46900 byte(s)
Diff to
previous 39074
Patch implementing an interface to start proofserv processes with an external launcher
and an implementation using 'system' instead of 'fork', as done in PROOF-Lite. The goal
is to consolidate the startup process, avoiding the problems related to forking in a
multi-thread process.
For the moment the new startup is disabled by default and can be enabled via a new
switch 'userfork' in the 'proofservmgr' directive:
xpd.proofservmgr usefork:0
Revision
39074 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 3 09:30:02 2011 UTC (3 years, 8 months ago) by
ganis
File length: 46876 byte(s)
Diff to
previous 38819
From S. Ryu:
- Fix issue affecting the result of subsequent worker activation/deactivation requests when worker
ordinal numbers were not in increasing order
From me:
- Add support for block requests for worker activation/deactivation (much more efficient, because
FindUniqueSlaves is only called once); the list of workers to have their statis changed is comma-
separated.
- Make DeactivateWorker and ActivateWorker to return != 0 when something went wrong, with -2 indicating
that at least one of the worker ordinal numbers in the list is invalid (e.g. '0.134' for a cluster
with 20 workers only).
Revision
38819 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 13 10:17:21 2011 UTC (3 years, 9 months ago) by
ganis
File length: 46806 byte(s)
Diff to
previous 38580
Introduce method GetSandbox to parse in a common way the directives defining
the sandbox location in TProof and TProofLite. Add expansion of "." and ".."
(it was not working with input data files).
Revision
38580 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 23 15:24:54 2011 UTC (3 years, 10 months ago) by
ganis
File length: 46728 byte(s)
Diff to
previous 38572
Patch fixing a problem with log path transmission when the node dies early or not even starts.
The log path was empty and wrong was filled in when retrieving the log buffers, disorienting
debugging. This was experienced frequently by ALICE.
The log file is now trasmitted as part of the responde to the session 'Create' request, so it
is always registered by the master in the relevant field in TSlave. Also, the last errors, if
any, typically logged in the xproofd log file, are now copied to the relevant worker or master
log file so that they are also accessible to client.
The patch also factorizes some calls in XrdProofdProofServMgr in preparation to the improved
session lauch strategy.
Revision
38572 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 23 13:02:41 2011 UTC (3 years, 10 months ago) by
ganis
File length: 46690 byte(s)
Diff to
previous 38102
Add new derivation of TList (TProofOutputList) to be used on the PROOF client to filter out
PROOF internal objects when displaying or printing the list. By default objects was names start
with 'PROOF_' are not shown. The presence of a non empty missing file list is notified.
To list or print the full list the string "ALL" must be passed before any other ls() or print()
options, e.g.
root [] gProof->GetOutputList()->ls("<opt>")
show only user objects (i.e. apply name filtering); and
root [] gProof->GetOutputList()->ls("ALL<opt>")
show all objects according to '<opt>' (i.e. no additional filter applied).
Revision
38102 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Feb 16 18:26:13 2011 UTC (3 years, 11 months ago) by
ganis
File length: 46443 byte(s)
Diff to
previous 37894
Fix problem with enabling packages with option 'notOnClient' in PROOF-Lite (see forum):
- Implement dedicated TProofLite::FindUniqueSlaves, filling the unique worker list with
the first worker
- In TProof::BuildPackage, always issue the build request if 'notOnClient' is set.
Revision
37894 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 27 14:15:03 2011 UTC (3 years, 11 months ago) by
ganis
File length: 46438 byte(s)
Diff to
previous 37396
Add support for option ':lite:' to TProof::GetDataSets . This allows to fill the map
with only the summary information about the datasets (the header of TFileCollections),
significantly increasing the speed and the memory footprint when the number of datasets
is very large. Should solve issue #77303 .
Revision
37396 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 8 13:12:00 2010 UTC (4 years, 1 month ago) by
rdm
File length: 46402 byte(s)
Diff to
previous 36480
From Gerri:
- Fix a problem with the registration of missing files in the 'MissingFiles'
list. The files that could not be open during processing were not properly
registered in the list (only those found missing during validation or
giving problmes durign reading were correctly added).
- Add method TProof::ShowMissingFiles() to facilitate the display of the
list of missing files.
- Add method TProof::GetMissingFiles() to get a TFileCollection (dataset)
with the missing files for further processing.
Revision
36480 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Nov 2 14:32:37 2010 UTC (4 years, 2 months ago) by
ganis
File length: 46287 byte(s)
Diff to
previous 36437
Add possibility to deactivate a worker (i.e. remove it from the active list) during Collect
in the case a failure status (!= 0) is received. This cannot be the default because an action
can have failure among its possible return states. The new feature is used by EnablePackage
to deactivate a worker where the requested packages could not be enabled properly.
Should fix an issue reported by ALICE.
Revision
36437 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Oct 28 10:10:51 2010 UTC (4 years, 2 months ago) by
ganis
File length: 46113 byte(s)
Diff to
previous 36191
In the PrintProgress function used to display a text progress bar, show also the average
reading rate in [k,M,G}bytes/s in addition to the event processing rate.
This is useful to have a feeling of the rate when running of a remote machine in batch mode.
Revision
34101 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 24 12:12:59 2010 UTC (4 years, 7 months ago) by
ganis
File length: 45828 byte(s)
Diff to
previous 33784
Following a request from ALICE, implement a timer to terminate idle sessions. The timeout
value is controlled by the variable ProofServ.IdleTimeout (value in seconds). For example,
to set a timeout of 20 mins, enter the following in the xproofd config file:
### Setup an idle timeout
xpd.putrc ProofServ.IdleTimeout 1200
The timer is disabled by default.
Revision
33784 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 8 15:03:31 2010 UTC (4 years, 7 months ago) by
ganis
File length: 45706 byte(s)
Diff to
previous 33749
- Add warning if server does nto support the recently added functionality in EnablePackage
- Add missing protection in EnablePackage
Revision
33749 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 4 13:56:55 2010 UTC (4 years, 7 months ago) by
ganis
File length: 45646 byte(s)
Diff to
previous 33636
Patch implementing a few changes/fixes in the package management
- Add support for arguments in the SETUP function: it is possible now to pass a string
Int_t SETUP(const char *opt)
or a list of objects
Int_t SETUP(TList *optls);
Two interface methods have been added to support this:
Int_t TProof::EnablePackage(const char *package, const char *opt, Bool_t notOnClient);
Int_t TProof::EnablePackage(const char *package, TList *optls, Bool_t notOnClient);
- Make sure the return code from BUILD.sh is properly checked and execution flow stoped on
failure; this required the introduction of a check on the return code of TSystem::ClosePipe().
- Allow building packages in the global package directories if 'write' permissions are available;
this facilitates management of global packages from an authorized account.
Revision
33562 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 18 16:28:50 2010 UTC (4 years, 8 months ago) by
ganis
File length: 45314 byte(s)
Diff to
previous 33209
Add method TProof::SetProgressDialog(Bool_t on = kTRUE) to disable the progress dialog
window while preserving graphics from the final actions in Terminate. This may be useful
when X over network is slow. To disable the dialog the call
proof->SetProgressDialog(0)
has to be placed before Process(...).
Revision
33209 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 26 10:27:40 2010 UTC (4 years, 8 months ago) by
ganis
File length: 45222 byte(s)
Diff to
previous 33086
- TDataSetManager, TDataSetManagerFile
- Add options to get a list of all dataset registered names from ScanDataSets
(option kList; the result is a TMap of {TObjString, TObjString} with the second
TObjString empty.
- Support wild cards in ScanDataSet .
- TProof, TProofServ
- Add interface to TDataSetManager::ShowCache/ClearCache (TProof::ShowDataSetCache,
TProof::ClearDataSetCache)
- If a non-default dataset directory was specified and could not be validated, do not
initialize the default dataset, as this could be misleading. An warning is issued
on the client shell.
Revision
33086 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Apr 18 18:15:56 2010 UTC (4 years, 9 months ago) by
ganis
File length: 45019 byte(s)
Diff to
previous 33045
- Some changes towards a parallel version of VerifyDataSet:
- Make the lower level of ScanDataSet a static in TDataSetManager and separate out
the part extracting the file meta-information into a dedicated method ScanFile
- In TDSetElement, rename the list of associated files to associated objects, so that
it can be more generally used (it was not yet used for associated files and it
was anyhow supposed to be a list of TObjString's).
- Move the parsing of the recently introduced 'DataSet.SrvMaps' env in TDataSetManager
(instead of TProof). This is more logical and it makes easier to apply the enable
the server mappings during staging requests via VerifyDataSet.
- Add a missing protection in TProof::AssertDataSet potentially causing crashes in the
case a dataset is not found.
Revision
33045 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 15 14:57:32 2010 UTC (4 years, 9 months ago) by
ganis
File length: 45217 byte(s)
Diff to
previous 32818
Add the possibility to remap the server for the files in a dataset. This allows,
for example, to reuse the dataset information for the same files stored in a different
cluster.
The mapping can be defined globally by the cluster administrator using the ROOT env
variable
DataSet.SrvMaps: srv1|map1 srv2|map2 ...
where srv1 are the {protocol,host,port} of the server to be matched, and map1 are the
{protocol,host,port} to be used for those files mapping srv1, and so on.
The matching server string can contain the wildcard '*' in the host field or it can
be empty, in which case the replacement is done for all the dataset files.
If the '|' character is missing the whole string is assigned to the map part; i.e.
'map1' alone is equivalent to '*|map1' or '|map1' .
For example, the following can be used to relocate the files via 'redir.dom.ain'
DataSet.SrvMaps: root://dserv-*.dom.ain/|root://redir.dom.ain/
The user can change the default mapping(s) on the fly with the parameter PROOF_DataSetSrvMaps:
the above is equivalent to setting
p->SetParameter("PROOF_DataSetSrvMaps", "root://dserv-*.dom.ain/|root://redir.dom.ain/")
before starting a query.
Revision
32818 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 29 15:35:57 2010 UTC (4 years, 9 months ago) by
ganis
File length: 44909 byte(s)
Diff to
previous 32816
- Rename the package download sub-directory 'downloaded'
- Make sure that it is cleaned when issuing ClearPackage or ClearPackages.
Revision
32816 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 29 14:48:56 2010 UTC (4 years, 9 months ago) by
ganis
File length: 44798 byte(s)
Diff to
previous 32712
- Add support for automatic download of a package when available on the master but not locally.
The downloaded packages are store under <sandbox>/packages/.download and automatically checked
for updates against the master repository. If a local version of the same package is created
(using the UploadPackage) the entry in .download is cleared, so that the behaviour is unchanged.
- Add method TProof::DownloadPackage top retrieve a package from the master; this method is used
by the automatic package download mechanism but it can also be used to create local copies of
packages.
The new functionality is described in http://root.cern.ch/drupal/content/working-packages-par-files .
Revision
32712 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Mar 23 10:35:15 2010 UTC (4 years, 10 months ago) by
ganis
File length: 44584 byte(s)
Diff to
previous 32555
- Add methof TProof::GetStatistics to allow the client to retrieve the correct values of
fBytesRead, fRealTime and fCpuTime at any moment; this will be used to setup a sort of
ROOTmarks in stressProof .
- Fix an issue with TProof::AskStatistics (fBytesRead, fRealTime and fCpuTime were
not correctly filled on the client; the values on the master, displayed by TProof::Print
were correct).
- Add internal method GetLastLog to facilitate the parsing of the text output
of any command (this is used to extend support for new functionality where possible).
Revision
32204 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Feb 3 19:17:40 2010 UTC (4 years, 11 months ago) by
ganis
File length: 44394 byte(s)
Diff to
previous 31520
Add support for processing many datasets in one go in TProof::Process(const char *dataset, ...).
Two options are provided:
- 'grand dataset': the datasets are added up and considered as a single dataset;
syntax: "dataset1|dataset2|..."
- 'keep separated': the datasets are processed one after the other; the user is
notified in the selector of the change of dataset so she/he
has the opportunity to separate the results. A new packetizer,
TPacketizerMulti, has been developed for this case: it basically
contains a list of standard packetizers (one for each dataset) and
loops over them.
Syntax: "dataset1,dataset2,..." or dataset1 dataset2 ..."
In both cases, entry-list can be applied using the syntax "dataset<<entrylist", e.g.
"dataset1<<el1|dataset2<<el2|".
See http://root.cern.ch/drupal/content/working-data-sets#currentelem for more details.
A test for the new functionality has been added to test/stressProof.cxx .
Revision
31520 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Dec 3 12:58:41 2009 UTC (5 years, 1 month ago) by
brun
File length: 44314 byte(s)
Diff to
previous 31505
From Gerri:
- Better detection of lib(n)curses in xrootd (fixes issue with CentOS on the forum)
- Fix warning in the compilation of Xrdadler32
- In TProof.h, remove comma at end of the ESubMerger enumerator list (problem
reported by M. Tadel)
Revision
31505 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 2 13:20:06 2009 UTC (5 years, 1 month ago) by
brun
File length: 44314 byte(s)
Diff to
previous 31441
From Katerina Opocenska:
Patch implementing the new submerger functionality to speed up the merging phase.
At the end of the query, a set of workers are promoted submergers and assigned a
sub-set of workers to merge. Once each sub-merger has merged its sub-set of workers,
it sends its result to the master, which merges the partial results into the final
set of results.
The determination of the sub-mergers is always done dynamically, based on the recent
performance of workers. An optimal (i.e. giving the highest speed-up) number can be
calculated analytically under simpleassumptions.
Merging via submergers is by default disabled. To enable it, with the optimal number
of sub-mergers, one should set the integer parameter 'PROOF_UseMergers' to 0, i.e.
proof->SetParameter("PROOF_UseMergers", 0)
To force S sub-mergers (regardless of the optimal number) do
proof->SetParameter("PROOF_UseMergers", S)
Revision
31441 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 27 07:29:29 2009 UTC (5 years, 1 month ago) by
ganis
File length: 41115 byte(s)
Diff to
previous 30995
- Fix a backward compatibility issue with the recently introduced status files
- Improve synchronization between parent and child during fork
- Optimize loops over directory entries
- Improve error and notification messages
Revision
30995 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Nov 5 17:41:03 2009 UTC (5 years, 2 months ago) by
ganis
File length: 41057 byte(s)
Diff to
previous 30900
A couple of quick additions mostly for the new bench suite under development:
- Add the possibility to give indications about the number of workers at startup.
E.g.
1. To start max 5 workers
TProof::Open("<master>","workers=5")
2. To start max 2 workers per physical machine
TProof::Open("<master>","workers=2x")
This is useful in general when running tests (equivalent but quicker then full startup
followed by TProof::SetParallel(n) or TProof::DeactivateWorker(...)).
- Add support for the worker SysInfo_t in TSlaveInfo (obtained via TProof::GetListOfSlaveInfos())
Revision
30859 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Oct 24 14:53:07 2009 UTC (5 years, 3 months ago) by
ganis
File length: 40889 byte(s)
Diff to
previous 30795
Patch for improved performance monitoring. The 'Rate Plot' button in the progress
dialog is renamed 'Performance plot' and shows up to 4 plots with the event/sec,
the average read chunck size, the number of active workers and the number of active
PROOF sessions on the cluster, all as a function of processing time.
The read chunck size plot allows to monitor the usage of the cache.
The istantaneous processing rate (event/sec) is now better estimate: a few issues
with the normalizing times have ben solved, removing the artificial structures that
were observed.
The possibility to set a max packet time length is introduced (default 30 s); this
can be changes with the parameter PROOF_MaxPacketTime.
The size of the cache is also taken into account to optimize the use of the cache.
The parameter PROOF_UseParallelUnzip has been introduced to toggle the use of the
parallel unzip (default off for now).
A page describing the new performance plots is under preparation at
http://root.cern.ch/drupal/content/progress-dialog
Revision
30174 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 15 14:24:56 2009 UTC (5 years, 4 months ago) by
ganis
File length: 39098 byte(s)
Diff to
previous 29133
Patch to support automatic creation of a dataset out of files created on the
worker nodes by worker processes. The implementation is an extension of the
functionality of the class TProofOutputFile used for merging via file.
TProofOutputFile:
- Add options to steer the creation of a dataset; the extemded meaning of the
constructor arguments and anew constructor are described in
http://root.cern.ch/drupal/content/handling-large-outputs-root-files
The dataset (i.e. TFileCollection) assembing happens on the master via the
Merge method. Information about the node location of the file is happended
to the relevant TFileInfo as a special "file:" url with option "node=<host-fqdn>:<port>"
This information is needed to facilitate the cleaning of the files once they
are not needed anymore.
The dataset can be just created and returned in the output list, or registered
and/or verified.
TProofPlayerRemote::MergeOutputFiles:
- Correctly transmit the dataset object into the output list
TProofServ:
- Create the new subdirectory 'data' either in the sandbox or followinf ProofServ.DataDir .
- Register and verify the created dataset if required
TProof:
- Implement two new methods:
- ShowData(), to show the content of the assigned 'data' directory
- ClearData(UInt_t what, const char *dsname), to clear all or a subset of the files
in the assigned 'data' directory
Additional changes:
- TProofPlayer:
- Correctly handle the feedback canvas
- Set the drawing attributes
- TProofServ:
- Replace all 'Form("...")' with TString::Format("...") .
- Use the new tag kCollect in debug statements where relevant
- TProof:
- Use the new tag kCollect in debug statements where relevant
Revision
29133 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 22 12:28:50 2009 UTC (5 years, 7 months ago) by
brun
File length: 38497 byte(s)
Diff to
previous 29059
From Gerri:
Rename TProofDataSetManager and TProofDataSetManagerFile to TDataSetManager and TDataSetManagerFile.
These classes are managers of TFileCollection which do not have anything strictly dependent on PROOF.
So far they were only used internally by PROOF, but they are going to be exposed to more public for generic
file collection handling. It is the right time to give them a more proper name.
Revision
29059 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jun 17 15:43:11 2009 UTC (5 years, 7 months ago) by
ganis
File length: 38512 byte(s)
Diff to
previous 28856
Automatize running of PROOF sessions in valgrind.
The second argument of TProof::Open is used to trigger the relevant settings.
To valgrind the master session start PROOF with
TProof::Open("<master>","valgrind")
or
TProof::Open("<master>","valgrind=master")
To valgrind two workers sessions use
TProof::Open("<master>","valgrind=workers")
To valgrind <n> workers sessions use
TProof::Open("<master>","valgrind=workers#<n>")
To valgrind master and 2 workers (for <n> workers add '#<n>')
TProof::Open("<master>","valgrind=master+workers")
The valgrind logs are available with the tag '<ordinal>-valgrind' in the log dialog
or form TProofMgr::GetSessionLogs() .
To add options to valgrind execute
TProof::AddEnvVar("PROOF_WRAPPERCMD", "valgrind_opts:<options>")
before starting the session.
Revision
28856 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 9 11:49:43 2009 UTC (5 years, 7 months ago) by
ganis
File length: 38461 byte(s)
Diff to
previous 28813
A few optimizations in transferring and merging of the results:
- Output objects are added to the same TMessage until a HWM is reached
(default 1MB; controlled by 'ProofServ.MsgSizeHWM'); this limits the
number of transfers in the case of large numbers of small objects.
- Reasonably small histograms (GetSize() < MsgSizeHWM) are merged in
one-go at the end instead of one-by-one to exploit the better performance
of TH1::Merge on the full list of histos.
- Add possibility to compress the messages; this is controlled by
ProofServ.CompressMessage <compression_level>
The default is still 'no compression' but this will allow to study the
impact of compression.
In addition, a sort of 'progress' counter for merging is now shown on the
client:
root [n] p->Process(...)
...
Mst-0: merging output objects ... / (4 workers still sending)
This asserts socket activity and fixes the timeout problems during long
merging phases reported on the forum.
Revision
28813 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 4 15:10:49 2009 UTC (5 years, 7 months ago) by
rdm
File length: 37724 byte(s)
Diff to
previous 28778
From Gerri:
Add support for standalone usage of TProofProgressLog. This is useful to
graphically browse session logs while not in process state. A new
constructor has been added taking a Url and a session index as arguments
(same first arguments of TProofMgr::GetSessionLogs).
The possibility to change Url and/or session index has been added to the
log window, and the title gives information about the session being browsed
and its starting time.
To start the log window in standalone, do
root[] TProof::LogViewer()
and enter the master Url on the window, or
root[] TProof::LogViewer("<master>")
to directly browse the last session on <master>.
Calling again TProof::LogViewer() opens a new window so that one can
easily compare different logs.
Revision
28395 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 30 09:27:53 2009 UTC (5 years, 8 months ago) by
ganis
File length: 37583 byte(s)
Diff to
previous 28370
Implement two new functions:
1. TProof::SetDataSetTreeName(<dataset>,<treename>)
Sets/changes the default tree name in the dataset (TFileCollection)
2. TProof::ExistsDataSet(<dataset>)
Returns kTRUE if 'dataset' exists.
Fix a problem with attaching to an existing session in TProof::Open .
Revision
28370 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 28 06:43:41 2009 UTC (5 years, 8 months ago) by
ganis
File length: 37301 byte(s)
Diff to
previous 27933
Add the possibility to switch to asynchronous mode while running synchronously.
A new button "Run in background" has been added to the dialog box. The behaviour
of Ctrl-C has also been modified: the user is prompted for a choice among continuing
asynchronously, stopping (terminating) or aborting the query.
Revision
27233 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Jan 25 20:59:39 2009 UTC (5 years, 11 months ago) by
ganis
File length: 37052 byte(s)
Diff to
previous 27231
- Increase the PROOF protocol number and fix backward compatibility issue
- Make sure that the ordinal numbers are synchronized between XrdProofd and
TProof
- Make sure that the default sandbox is under $HOME/.proof
- Enable regular scheduler checks
Revision
27231 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Jan 25 09:42:21 2009 UTC (5 years, 11 months ago) by
ganis
File length: 37007 byte(s)
Diff to
previous 27171
Patch adding support for session queuing in the scheduler (from Jan and me).
This allows to control the number of sessions allowed to process queries concurrently.
The feature is enabled by a new parameter 'queue:fifo' in the 'xpd.schedparam'
directive.
In case of static worker assigment (default, random, round-robin) the max number of
running sessions can be limited by another new parameter 'mxrun'; for example
'xpd.schedparam default mxrun:3 queue:fifo' will run concurrently only 3 sessions.
Additional requests are queued and run as soon as one of the running sessions goes idle.
The current policy is FIFO, so that there is a rotation among queued sessions.
In the case of load-based worker assignement, the max number of running queries is
determined dynamically.
This option requires dynamic, per-job scheduling.
Revision
27171 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 16 16:04:00 2009 UTC (6 years ago) by
ganis
File length: 36806 byte(s)
Diff to
previous 26951
From Jan and me:
- Remove a duplication by using AddWorkers also in StartSlaves
- Remove the obsolete code for threaded parallel startup.
Revision
26951 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 16 12:04:38 2008 UTC (6 years, 1 month ago) by
ganis
File length: 38220 byte(s)
Diff to
previous 26514
- Fix an issue with uploading packages in rapid sequence
- Fix an issue with TProof::Load() in forced compilation mode ('++')
- Fix an issue with grep in log retrieval
- Fix an issue with ownership of the xrootd log file
- Make sure the XrdProofdProofServMgr::fCurrentSessions is always up-to-date
Revision
26514 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 28 15:42:43 2008 UTC (6 years, 1 month ago) by
ganis
File length: 38193 byte(s)
Diff to
previous 26388
- Synchronize TProof::Close and TProof::MarkBad with a dedicated mutex. Upon errors on the master,
these can be called concurrently is different threads (reader thread and main thread) and may
lead to segvs in MarkBad.
Revision
26381 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Nov 22 17:15:24 2008 UTC (6 years, 2 months ago) by
ganis
File length: 38101 byte(s)
Diff to
previous 26268
- Fixes for the asynchronous mode:
- Fully localize the general handling of the input messages into two new methods
TProof::HandleInputMessage(TMessage *) and TProofServ::HandleSocketInput(TMessage *);
these methods are callable form any place that needs to intercept some messages and
do something specific on them (examples are: TProofServ::GetNextPacket, TXProofServ::Get,
TPacketizerAdaptive::ValidateFiles, ...); this allows to remove several duplications
and to make sure that no message is lost or wrongly dispatched.
- Simplify the recursive infrastructure for TProofServ::HandleSocketInput; in particular,
TProofServ::HandleSocketInputDuringProcess is removed as it is a special case of the
HandleSocketInput, saving duplications.
- Always use a kPROOF_CHECKFILE message in replies to check file operations; failures were
signaled with kPROOF_FATAL which may have some undesired side-effects, depending on the
timing
- Add support for one level of recursivity in TProof::Collect .
- Fix a problem with TProof::Finalize when called with default arguments (on the last query)
- In TProof::SendFile, send to unique workers only in the "cache" option is specified
- Remove the call to Finalize for DrawSelect queries, as it is done via the feedback
mechanisms
- Additions/fixes in test/stressProof.cxx:
- New test for the asynchronous mode;
- Fine-tuning of the progress display in batch mode;
Revision
26268 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Nov 18 16:27:09 2008 UTC (6 years, 2 months ago) by
ganis
File length: 37682 byte(s)
Diff to
previous 25992
- Fix a few problems with the input data machinery (thanks to C. Cheshkov)
- Use the SingeKey option to write out containers
- Send the input data after the call to Begin() to catch up also the objects
possibly added in there
- Fully enable the input data machinery also for PROOF-Lite; this required to
move some calls from TProofServ to TProof to avoid duplications.
- Additions to test/stressProof.C
- Add a test for the input data machinery
- Add some progress info for the tests involving processing
Revision
25918 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Oct 22 15:00:04 2008 UTC (6 years, 3 months ago) by
ganis
File length: 37109 byte(s)
Diff to
previous 25841
First version of PROOFLite, a 2-tier realization of PROOF intended for multi-core
machines. In PROOFLite the client start directly the workers; no daemon is required.
Currently this works on Unix only. Some issues with the internal connection still need
to be sorted out on Windows.
To start a session just use
TProof::Open("") or TProof::Open("lite")
From there on everything should be as in normal PROOF. To start a standard PROOF
session (i.e. via daemons) on the localhost use TProof::Open("localhost").
(The default meaning of "" in TProof::Open() is controlled via the rc value
'Proof.LocalDefault').
To run stressProof with PROOFLite pas the argument 'lite':
./stressProof lite
By default, PROOFLite sets the number of workers equal to the number of cores.
The number of workers is controlled by the rc variable 'ProofLite.Workers'; it can
also be set on the fly with the option "workers=<n>", e.g. TProof::Open("lite?workers=2").
This patch also introduces the rc variable 'Proof.Sandbox' to control the local location
of the sandboxes. The default has been changed from "~/proof" to "~/.proof" to avoid
interferences with possible users' working areas. The sandbox contains the directory
'packages' (with the clients packages; used by standard PROOF and PROOF Lite),
and some directories used only by PROOFLite: 'cache' (binary cache) and 'datasets' with
the datasets. The location of these directories is controlled by the rc variables
'Proof.PackageDir', 'Proof.CacheDir' and 'Proof.DataSetDir'.
The working directory for PROOFLite is in the form workdir=<sandbox>/path-to-current-dir where
~/path/to/current/dir is the directory from where the session in launched. The directory
<workdir> contains the session working dirs (in the form 'session-<host>-<time>-<pid>'),
with the symlink 'last-lite-session' pointing to the last started session, and the 'queries'
directory, with the results of queries started from the current directory.
Revision
25827 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Oct 15 14:02:59 2008 UTC (6 years, 3 months ago) by
ganis
File length: 36349 byte(s)
Diff to
previous 25704
From Jan:
- Added the possibility to handle removed workers and partly processed packets. When a worker is stopped
while processing a packet it finishes, the current event and the rest of the packet is reassigned to another
worker. This is done via two interfaces:
- TVirtualPacketizer::AddProcessed(TSlave *sl, TProofProgressStatus *st, TList **)
- TVirtualPacketizer::ReassignPacket.
- New class TProofProgressStatus used to keep the query progress stauts in all the TProofPlayer objects and in
TPacketizerAdaptive::TSlaveStat. This class is also used to structure the relevant information send in
kPROOF_GETPACKET and kPROOF_STOPPROCESS messages.
- The class TPacketizerProgressive is removed completely.
- The PROOF protocol version is increased to 19: this is to handle the changes in the kPROOF_STOPPROCESS and
kPROOF_GETPACKET messages in Master - worker communication.
Revision
25704 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Oct 5 21:44:36 2008 UTC (6 years, 3 months ago) by
ganis
File length: 36191 byte(s)
Diff to
previous 25434
TProof:
- Add support for input data objects. These are objects which are available via the input list
but - being potentially large - are distributed to the cluster in optimized mode, i.e. via a
ROOT file copied only to unique nodes. These objects are *not* automatically saved into the
TQueryResult object.
Three new public methods have been added to TProof:
- AddInputData(TObject *, Bool_t = kFALSE) flags an input object as 'data input object'
- ClearInputData(TObject * = 0) clears the list of input data objects
- ClearInputData(const char *name) removes object 'name' from the list of input
data objects
- SetInputDataFile(const char *filepath) specifies the file from where to take the
input data objects; object in the input data
list, if any, are also send over.
New internal methods:
- BroadcastFile(const char *file, Int_t opt, const char *rfile, TList *wrks);
- BroadcastFile(const char *file, Int_t opt, const char *rfile = 0, ESlaves list = kAllUnique);
- void SendInputDataFile();
- Fixes:
- in Process(TFileCollection *, ...), remove the TFileCollection object from the input list
after processing, to avoid destruction problems in case of multiple query submission.
TProofServ:
- Add support for input data objects.
New methods:
- Int_t GetInputData(TList *input);
- Int_t SaveInputData(TQueryResult *qr);
- Int_t SendInputData(TQueryResult *qr);
- Optimize the number of input list instantiations
- Improve readibility of HandleProcess by separating out the code to prepare the dataset (get it
from input list, from dataset manager, etc ...) into a new method AssertDataSet(TDSet *, TList *).
TProofQueryResult:
- add missing protection
Revision
25434 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Sep 17 15:23:36 2008 UTC (6 years, 4 months ago) by
ganis
File length: 35390 byte(s)
Diff to
previous 25273
- Fix problem with the determination and transmission of the name of the object to be processed.
The problem appeared when processing files containing >1 trees in changing order.
- Fix problem with TProof::Load (Savannah bugs #41719; forum topic #7138)
- Fix problem with the logs from TProof::Load not being transmitted to the client
Revision
25273 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Aug 27 08:56:06 2008 UTC (6 years, 4 months ago) by
rdm
File length: 35325 byte(s)
Diff to
previous 24719
From Jan:
- A new optional version of PROOF with dynamic worker startup.
It can be enabled by the admin or a user with 'Proof.DynamicStartup'.
A session starts only on the master. When a query processing starts
at the master TXProofServ::GetWorkers() is called. It receives a
list of machines from the scheduler and the workers on the
machines are started. The environment is copied from the master
to the workers. It includes: the include and dynamic library paths,
the set of enabled packages as well as the macros loaded by the user.
- A new method TProof::AddWorkers(TList *workers) was added. It adds
the workers just before the query.
- A packet resubmitting mechanism. When a worker dies all the packets
that it processed are resubmitted.
- In TPacketizerAdaptive: fixing initialization of fgMaxSlaveCnt. By
default it was initialized twice.
Revision
24719 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jul 9 07:07:25 2008 UTC (6 years, 6 months ago) by
ganis
File length: 34967 byte(s)
Diff to
previous 24588
Patch refactorizing the XrdProofd plugin.
The class XrdProofdProtocol is now in charge only of the operations strctly related
to the XProofd protocol. All auxilliary services have been moved to dedicated service
classes controlled by XrdProofdManager. In particular:
- XrdProofdClientMgr handles the clients (represented by instances of XrdProofdClient)
including login, authentication and access control
- XrdProofdProofServMgr handles the PROOF sessions (represented by instances of
XrdProofdProofServ) including creation, attachment, detachment, destruction and
environment setting
- XrdProofdNetMgr handles connections between instances of XProofd running on different
nodes
- XrdProofdPriorityMgr handles the session priorities
A special effort has been done to get rid of all possible internal dead-lock situations.
Internal actions on clients and sessions are now all asynchronous, governed by internal
pipes.
The new plugin also offers new functionality, among which:
- a XProofd admin area, located under <xrd.admin>/.xproof.<port>, keeps information about
active and terminated sessions, and the minimal state for active clients. This is used
to reguraly check the client and session activity, to cleanup orphalin sessions and
to shutdown inactive client connections.
In particular this allows a more solid implementation of Reset, which now exists in two
flavours: 'soft', TProof::Reset(<masterurl>), (default) asks the sessions to terminate gently;
'hard', TProof::Reset(<masterurl>,kTRUE) schedules all sessions for forced termination.
- support for automatic attempts for reconnection in the case the daemon restarts.
This allows to reconfigure the plugin by xrootd restart w/o affecting the running
sessions.
- support the definition of workers via config file directive, getting de facto rid of
the proof.conf file.
- domain+level control of printout message; the format has been improved: in particular
all information messages contain now the tag 'xpd-I' and all error messages the tag
'xpd-E', so that they can easily be grepped out from the log file.
The Wiki 'XrdProofdDirectives Directives' page has been updated with the new directives.
Revision
24588 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 27 13:52:23 2008 UTC (6 years, 6 months ago) by
ganis
File length: 34885 byte(s)
Diff to
previous 24573
Few additions in preparation of the new XrdProofd:
- New signature for TProofMgr::AttachSession to be used internally in case of
reconnections
- Accomodate support for hard/soft Reset operations.
Revision
24570 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 26 13:45:13 2008 UTC (6 years, 6 months ago) by
ganis
File length: 34758 byte(s)
Diff to
previous 24568
- Add the possibility to cleanly terminate an active worker at any moment.
This is needed by the dynamic worker configuration.
Revision
24568 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 26 11:57:42 2008 UTC (6 years, 6 months ago) by
ganis
File length: 34669 byte(s)
Diff to
previous 23913
- Fix a race condition possibly affecting the handling of workers death
- Improve diagnostic from MarkBad: clients will now receive something like this
root [1] Worker 'localhost-0.1' has been removed from the active list
+++ Message from top master at aleph025.cern.ch:1093 : marking localhost:1093 (0.1) as bad
+++ Reason: problems receiving a message in TProof::CollectInputFrom(...)
+++ Most likely your code crashed on worker 0.1 at localhost:1093.
+++ Please check the session logs for error messages either using
+++ the 'Show logs' button or executing
+++
+++ root [] TProof::Mgr("aleph025.cern.ch:1093")->GetSessionLogs()->Display("0.1",0)
Revision
23075 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 9 09:10:25 2008 UTC (6 years, 9 months ago) by
ganis
File length: 34020 byte(s)
Diff to
previous 22635
From Jan-Fiete Grosse-Oetringhaus (ALICE) and me.
Patch introducing the improved dataset manager developed by ALICE.
The client side interface is basically unchanged, the biggest change is the renaming
of TProof::CreateDataSet to TProof::RegisterDataSet.
On the server side the relevant code has ben extracted from TProofServ and hidden
behind an inteface class TProofDataSetManager describing the functionality needed by
TProofServ, and an implementation class TProofDataSetManagerFile handling dataset
meta data saved into ROOT files. TProofDataSetManagerFile is instantiated via the
plugin manager and by default it handles the <sand_box>/datasets area.
This separation is needed to allow loading implementation based on different backends;
for example, ATLAS foresees to use a MySQL-based backend.
A TWiki page with information and examples in on preparation.
Revision
20758 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Nov 11 21:29:49 2007 UTC (7 years, 2 months ago) by
ganis
Original Path:
trunk/proof/inc/TProof.h
File length: 32452 byte(s)
Diff to
previous 20682
Several small fixes and few additions imported from 'branches/dev/proof':
- XrdProofdProtocol:
+ Fix a problem in CleanuProofServ sometimes preventing proper cleanup
+ In ReadBuffer, do not trigger an error on empty files
+ Add missing protection against an empty string while setting the ROOT version
- XrdProofdManager:
+ Define the list of unique nodes to avoid broadcasting twice to the same node
- XrdProofWorker: improve matching technique
- TProof: add setter and getter for Int_t parameter
- TProofServ:
+ do not flush the log file in SendAsynMessage: this recent change
made the logs "disappear" form the ProgressDialog
+ Activate control on the max number of query result kept
- TPacketizerUnit: fix a problem with filling the histof for PerfStats
- TProofPlayer: call Begin() also during selecter re-initialization
Revision
20682 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Nov 6 15:51:59 2007 UTC (7 years, 2 months ago) by
ganis
Original Path:
trunk/proof/inc/TProof.h
File length: 32308 byte(s)
Diff to
previous 20333
Import branches/dev/proof r20654
Summary:
+ Improvements
- Add support for SSH SOCKS4 tunnelling; the local port for the tunnel can be specified
in the master URL, e.g. TProof::Open("master/?tunnel:8000")
- Add the possibility to plot the estimated instantaneous rate
- Add "PROOF_ForceLocal" parameter to the !TPacketizerAdaptive; if set to 1, all the data
are processed locally.
- Add support for remote grep functionality while retrieving logs (needed by the forthcoming
memory monitor)
+ Bug fixes
- Several small fixes to revive the multi-master mode.
- XrdProofdProtocol:
- add missing lock to the client instance in SendMsg to avoid screwing up requests from
workers on the same machine
- lock the mutex of the requester when setting prorities
- add notification during Reset
- fix problem with the detection of the 'allow' directive
- fix problem with the parsing of the return value from XrdProofServProxy::TerminateProofServ()
- always use the effective user to retrieve info fom another server
(XrdProofdManager::GetProofConn is now used)
- fix possible dead-locks from debug notifications done after hard-killing a session
- re-enable the garbage collector thread of the connection manager in XrdProofConn to
fix a problem with closing physical connections;
- fix a problem with !CleanupProofServ in the case of a non-privileged daemon running
in multi-user mode
- introduce a timeout when waiting for the startup of a 'proofserv'.
- XrdProofConn: init mutex in the ctor; lock in SendRecv
- XrdProofSched: add support for using the priorities defined in the group manager to define
the number of workers for sessions
- TProof:
- Broadcast priorities to unique nodes only
- timeout after 5 mins the initial Collect to avoid clients getting stuck at this stage
- add support for generic timeout in Collect (disabled by default)
- fix a problem with SendFile.
- TXProofServ: add a call to !TProof::InterruptCurrentMonitor() in Terminate() to stop
infinite loops in Collect
- TXSocket:
- Implement a flag to interrupt a TXSocket while waiting for messages
- Split the session creation timeout in 4 attempts: the total timeout is the same but
it may circumvent occasional forking problems.
- XROOTD:
- fix a potential (possibly accademic) memory leak in the client
- fix a access permission problem with Kerberos ticket forwarding
- fix bug preventing 'locate' to work properly
- re-enable optimized 'locate'
Revision
20307 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Oct 11 10:58:50 2007 UTC (7 years, 3 months ago) by
ganis
Original Path:
trunk/proof/inc/TProof.h
File length: 32105 byte(s)
Diff to
previous 20086
Import branches/dev/proof r20306
Summary (see branch logs for more details):
- Set of changes related to CPU quota control including
- broadcast of centrally determined priorities
- mechanism to renice processes in a quantitative way
- New packetizer for non-tree based analysis and related API in TProof (from L. Tran-Thanh)
- Support for merging output objects saved in files on the workers (from L. Tran-Thanh and me)
- Improve version binary compatibility checks using also the SVN revision number
(when available) to define the running version.
- Extend the version binary compatibility checks also to the cached selector binaries.
- Extend TDSet::Lookup so that in case of missing files, it can remove them from the
dataset (option removeMissing must be set).
- Move the data set lookup to the TProofPlayerRemote::Process.
- Handle properly the case of incomple datasets: if the file is not found in the lookup
don't try to validate it; add it, instead, to a 'missingFiles' list returned in the
output list (fixing bug #28800 in Savannah).
Revision
20086 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 24 18:19:34 2007 UTC (7 years, 4 months ago) by
ganis
Original Path:
trunk/proof/inc/TProof.h
File length: 31994 byte(s)
Diff to
previous 19826
From Jan:
- Add a heuristic mechanism to avoid undervaluing the processing rate and to short packets.
- Add parameters: PROOF_MinPacketTime and PROOF_PacketAsAFraction to allow tuning performance.
- Change name TAdaptivePacketizer to TPacketizerAdaptive in order to follow the naming
convention for packetizers
- Slightly tuning a few parameters.
Revision
19529 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Aug 2 14:24:21 2007 UTC (7 years, 5 months ago) by
ganis
Original Path:
trunk/proof/inc/TProof.h
File length: 32053 byte(s)
Diff to
previous 19464
In TProofServ::HandleCache, remove the full package directory when
a package re-build is needed; this avoids problems when the 'clean'
target is not (or not correctly) implemented in the package makefile.
Revision
19145 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 22 17:16:35 2007 UTC (7 years, 7 months ago) by
ganis
Original Path:
trunk/proof/inc/TProof.h
File length: 31446 byte(s)
Diff to
previous 19098
Add support for global package directories. The colon-separated list of directories
to be searched for is defined by the directive
Proof.GlobalPackageDirs globaldir1[:globaldir2[:globaldir3[:...]]]
which can be included in the xrootd config file via the xpd.putrc directive
xpd.putrc Proof.GlobalPackageDirs globaldir1[:globaldir2[:globaldir3[:...]]]
The directories must be readable by the user (a check is made in TProofServ::Setup).
Packages are searched first in the user local cache and then in the global
directories (in the given order, so that the first occurence is used).
The content of the global package directories is listed by TProof::ShowPackages().
The functionality is available also locally on the client. The Proof.GlobalPackageDirs
has to be specified in the users $HOME/.rootrc .
Global packages can be directly enabled via TProof::EnablePackage(<package_name>).
Revision
19008 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Jun 12 13:51:41 2007 UTC (7 years, 7 months ago) by
ganis
Original Path:
trunk/proof/inc/TProof.h
File length: 31329 byte(s)
Diff to
previous 18888
New files:
XrdProofGroup.h, .cxx
- Class describing a group and its properties
XrdProofdClient.h, .cxx
- Class describing a Xpd client (extracted from XrdProofdProtocol.h, .cxx)
XrdROOT.h, .cxx
- Class describing a ROOT version (extracted from XrdProofdProtocol.h, .cxx)
XrdProofdAux.h, .cxx
- Utility tools (extracted from XrdProofdProtocol.h, .cxx)
XrdProofdPlatform.h
- Platform-dependent system includes and defines common to all implementation
files (extracted from XrdProofdProtocol.cxx)
Patched files:
XrdProofdProtocol.h, .cxx
- Adapt to file re-organization
- Rationalization fo the way the relevant info is passed to 'proofserv':
a minimal set of environment variables is kept, the remaining parameters
are passed via a rootrc-like file created in the session working dir
- New directive "xpd.groupfile" to read a file defining groups and their
properties.
- New directive "xpd.datasetdir" to define the root path under which the
user data set dirs are created
- New directive "xpd.putrc" to input rootrc-like directives to be passed
straight to proofserv
TProofServ.cxx, TXProofServ.h, .cxx
- Read the session rootrc in the constructor
- Take relevant parameters from the session rootrc file
TProof.h
- Move protocol number up to 14 to be able to handle backward compatibility
issues due to changes in the info transfer mode between xpd and proofserv
pmain.cxx
- Take loglevel from argc #5
- Use logfile path generated by XrdProofdProtocol.cxx
Revision
18888 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri May 25 13:53:59 2007 UTC (7 years, 8 months ago) by
ganis
Original Path:
trunk/proof/inc/TProof.h
File length: 31280 byte(s)
Diff to
previous 18834
From Jan:
Add support for processing datasets "by name", i.e. by just sending the name
of a dataset known by the master.
TProof.h, .cxx
- New method
Long64_t TProof::Process(const char *dsetname, const char *selector,
Option_t *option = "", Long64_t nentries = -1,
Long64_t firstentry = 0, TEventList *evl = 0);
- Fix typos in comments
TProofServ.cxx
- In HandleProcess, retrieve the relevant dataset info "by name" from local
dirs in the case only the data set name is specified.
- In HandleRetrieve, remove a debug printout left from a previous patch.
Revision
18828 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon May 21 00:21:44 2007 UTC (7 years, 8 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 31014 byte(s)
Diff to
previous 18349
new static utility functions for retrieving parameters from input lists:
static Int_t GetParameter(TCollection *c, const char *par, TString &value);
static Int_t GetParameter(TCollection *c, const char *par, Long_t &value);
static Int_t GetParameter(TCollection *c, const char *par, Long64_t &value);
static Int_t GetParameter(TCollection *c, const char *par, Double_t &value);
simplifies code from:
TParameter<Int_t> *par = 0;
TObject *obj = input->FindObject("PROOF_ProgressPeriod");
Int_t period = 500;
if (obj && (par = dynamic_cast<TParameter<Int_t>*>(obj)))
period = par->GetVal();
to
Long_t period = 500;
TProof::GetParameter(input, "PROOF_ProgressPeriod", period);
Revision
18349 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 19 14:43:26 2007 UTC (7 years, 10 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 30566 byte(s)
Diff to
previous 18327
From Gerri:
- TProof::Load(const char *macro, Bool_t notOnClient) where 'macro' is the
name of a macro or the implementation file of a class (in which case the
corresponding header should have .h or .hh extension). If notOnClient
is kTRUE (default is kFALSE) the class/macro is loaded only
on master and workers.
- Re-usage of valid binaries from macros or selectors (they are cached under
<SandBox>/cache), this allows to save a few seconds while running a query
with an unchanged and compiled selector.
- Exports ROOTINCLUDEPATH with the current content of gSystem->GetIncludePath()
just before executing BUILD.sh so that the path can be used for build
purposes (bug #18079)
Revision
17750 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Feb 7 09:07:15 2007 UTC (7 years, 11 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 30494 byte(s)
Diff to
previous 17713
From Gerri:
This adds a text-oriented progress bar while processing in batch mode,
showing the percentage of events processed and the average rate.
The format is the same as in TFileMerger::Cp.
This fixes bug/request #20643.
Revision
17562 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jan 29 15:11:11 2007 UTC (7 years, 11 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 30293 byte(s)
Diff to
previous 17430
Frrom Gerri:
There is a new classes TProofServLogHandler allowing to redirect
the output to the client in real-time. It has two main constructors,
one taking an external command (like BUILD.sh) and opening a pipe,
the other taking a pointer to a open file. TProofServ uses the class
via the guard class TProofServLogHandlerGuard to better localize the
usage. This redirection is not always activated. For the time being it
is active for Process and Cache actions,and it can be deactivated via
TProof::SetRealTimeLog(kFALSE)
(for BUILD.sh - executed externally - is always ON).
In particular, with the patch applied, the outputs from BUILD.shi
will scroll down on the screen, and clicking on "Show logs" in the
dialog box during process shows the messages and allows to see what
the session is doing: this is quite nice, because getting
an empty window from "Show Logs" is frustrating, in my opinion.
So, all this fixes the bug/request #16845.
The patch also fixes bug #22555 (hanging while enabling a package
without BUILD.sh) and several other small bugs (a couple of unitialized
variables) or typos.
It also cleanups the API a bit (we had SetQueryType and SetQueryMode
doing exactly the same thing ...).
Revision
17209 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 13 11:21:55 2006 UTC (8 years, 1 month ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 30156 byte(s)
Diff to
previous 17175
Added new methods:
void SetParameter(const char *par, const char *value);
void SetParameter(const char *par, Long_t value);
void SetParameter(const char *par, Long64_t value);
void SetParameter(const char *par, Double_t value);
TObject *GetParameter(const char *par) const;
void DeleteParameters(const char *wildcard);
void ShowParameters(const char *wildcard = "PROOF_*") const;
they allow the easy setting and inspection of the special PROOF control
parameters (and other input parameters) like PROOF_MaxSlaverPerNode, etc.,
instead of:
proof->AddInput(new TParameter<Long_t>("PROOF_MaxSlavesPerNode", 2));
we can now do:
proof->SetParameter("PROOF_MaxSlavesPerNode", 2);
Revision
17175 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 12 11:20:49 2006 UTC (8 years, 1 month ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 29688 byte(s)
Diff to
previous 17149
From Jan Iwaszkiewicz:
A prototype for a new packetizer is added - TAdaptivePacketizer.
This packetizer is based on TPacketizer but uses different
load-balancing algorithms and data structures. Two main improvements in
the load-balancing strategy:
- First one was to change the order in which the files are assigned
to the computing nodes in such a way that network transfers are
evenly distributed in the query time. Transfer of the remote files
was often becoming a bottleneck at the end of a query.
- The other improvement is the use of time-based packet size. We
measure the processing rate of all the nodes and calculate the
packet size, so that it takes certain amount of time. In this way
packetizer prevents the situation where the query can't finish
because of one slow node.
The data structures: TFileStat, TFileNode and TSlaveStat are
enriched + changed and TFileNode::Compare method is changed.
Revision
17149 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Dec 11 13:24:49 2006 UTC (8 years, 1 month ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 29654 byte(s)
Diff to
previous 17035
Two new features:
- TProof::EnablePackage() has now a bool argument notOnClient which when
true does not build and enable the package on the client. The default
is false.
- Package building now keeps track of which PROOF version has been used
to build a package. In case the version has changed the system will
first call "PROOF-INF/BUILD.sh clean" and then "PROOF-INF/BUILD.sh".
The user has to provide in BUILD.sh the code to handle the "clean"
argument to call e.g. "make clean" or whatever is needed to clean
the package and force a rebuild.
Revision
17035 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Dec 3 23:34:04 2006 UTC (8 years, 1 month ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 29352 byte(s)
Diff to
previous 16969
From Gerri:
0. Introduction of the static:
TProof::Mgr(const char *url)
to get the manager to the cluster; this gives access to all the manager
functionality, included Reset(). TProof::Reset() is removed.
1. Two new classes: TProofLog and TProofLogElem.
TProofLog contains a list of TProofLogElem, one per node. TProofLogElem
basically contains a TMacro plus methods to play with it.
2. The TProofLog object can be retrieved via the manager:
TProofLog *pl = TProof::Mgr("cluster")->GetSessionLogs()
by default the last session is retrieved: the signature for GetSessionLogs is
TProofLog *TProofMgr::GetSessionLogs(Int_t ridx, const char *stag)
the first argument is a reversed relative index (-1 gets the next to last
session), the second is the session unique tag; if the second is
specified the first is ignored.
3. TProofMgr has a new method ReadBuffer to quickly read a buffer from
a file via XrdProofd: this allows to avoid the second xrootd on the
redirector and in general is useful when a quick reading is needed.
Also, the buffer is always retrieved via the master, so we should not
have firewall problems in accessing directly the xrootd of the workers.
4. In the sandbox I have kept the .sessions file with the active sessions
and I have added .terminated in each session working dir which have
been terminated. On the master, each session working dir has the file
.workers with the relevant information about the workers.
5. The max number of old session workdirs is set to 10 by default
(configurable in xpd.cf): the sandbox is trimmed when closing a session.
6. Some unrelated changes/fixes contained in the patch:
- in XrdProofdProtocol:
- use of /proc (linux, solaris) or sysctl (mac) to verify/search
for running of a process. For other platforms I have left the
parsing of the output of 'ps'.
- I have introduced a 'cron' thread: it runs every minute and for
the moment it just cleans a vector; this is the place where to do
client independent actions, like checking if the config files have
changed, for example.
- I have added the possibility to control which user can access
the cluster; requested by Jan Fiete.
7. The patch contains also several fixes here and there I have found by
testing.
Revision
16839 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 20 15:56:36 2006 UTC (8 years, 2 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 27407 byte(s)
Diff to
previous 16775
From Maarten + Gerri:
Patch to allow run time configuration of proofserv environment. The client
can pass a set of shell variables to PROOF. These variables can be used
to startup different versions of the proofserv, or they can instruct the
system to run proofserv under valgrind or tcheck, etc. Main changes:
- default wrapper script for proofserv
- modifies the build system for the wrapper script
- adds a list of environment variables to TVirtualProof, which are
passed to the wrapper by proofd/xrootd.
- adds code to TProofServ to pickup these variables and pass them
along to the slaves/submasters
Revision
16775 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 15 17:45:55 2006 UTC (8 years, 2 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 27350 byte(s)
Diff to
previous 16665
From Gerri and Bertrand:
Fixes and new features developed in preparation for the Intel quad-core
launch demo:
- Add instantaneous event and MB processing rates in the Progress signal
and make necessary modification to exploit it in the Progress Dialog.
- Add possibility to change the Progress and Feedback periods
- A number of small improvements and bug fixes
Revision
16557 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Oct 19 12:38:07 2006 UTC (8 years, 3 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 27068 byte(s)
Diff to
previous 16420
From Gerri:
Major set of robustness fixes, improving error reporting and reducing the
startup failures especially observed on AMD64. Summary of changes:
- XrdProofdProtocol.cxx, .h
- Remove zombie treatment: done by XrdScheduler::Reaper()
- Check the modification date of the PROOF config file so that changes
can be picked up on the fly
- Fix problem with the definition of the image
- Improved tracing (see etc/proof/xpd.cf.sample)
- Several bug fixes
- XrdProofConn
- fix problem with marshalling in case of retries.
- TProofServ, TXProofServ
- Add return codes to CreateServer() and Setup() for proper termination
in case of errors
- TProof
- Make sure that TXProofMgr is the last one in the list of sockets for proper
cleaning
Revision
15935 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Aug 6 07:15:01 2006 UTC (8 years, 5 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 25697 byte(s)
Diff to
previous 15869
Handle several issues related to the TTree::Process() and TTree::Draw()
return values:
- TSelector: fStatus increased from Int_t to Long64_t. It is used to
return the number of selected events by TTree::Draw() which returns
a Long64_t.
- TVirtualProof, TProof, TDSet, TProofPlayer: Process() and Draw() were
returning an Int_t, now a Long64_t to be consistent with TTree/TChain.
Actually returning of TSelector::GetStatus() from the workers to be
done tomorrow.
Also added proper comments describing the return values for Draw()
(number of selected events), and Process() (value returned by
TSelector::GetStatus()).
- TTree, TChain, TSelectorDraw: added proper comments describing the
return values of Draw() and Process().
Revision
15857 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jul 26 14:28:59 2006 UTC (8 years, 6 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 25596 byte(s)
Diff to
previous 15667
From Gerri:
TVirtualProof.h
- Add abstract methods methods to communicate the data set status
(signal + sender)
pmain.cxx
- Add call to Exit(0). T(X)ProofServ::Terminate() just interrupt the event
loop (insteadof exiting) to avoid problems when the terminate is run in
a separate thread (like in xproofd).
proof/inc/TProof.h
- Add methods methods to communicate the data set status (signal + sender)
- Increase protocol number to 11 (new merging technology)
proof/inc/TProofPlayer.h, .cxx
- Implement new merging technology for the output list to reduce memory
consumption: add methods to directly merge received objects in the
output list
- Polish cleaning of the various temporary lists and objects
TProofServ.h, .cxx
- Implement new merging technology for the output list to reduce memory
consumption: objects are sent one-by-one
- Do not scan for previous query results at Setup (do it when the client
requests for it first); thsi allows to speed up start-up when a large number
of queries is present and also allos to avoid warning due dictionaries
not yet loaded.
- Add method for a global cleanup of old query results.
- Keep in memory only meta information about processed queries (i.e. not the
output list) to avoid large memory consumption in case of large
output lists
- In Terminate, change the call to Exit(0) to ExitLoop() ; Exit(0) is
called in pmain.cxx .
TProof.cxx
- Implement new merging technology for the output list to reduce memory
consumption: objects are received one-by-one and directly merged in the
output list
- Add protection in parallel startup against invelid slaves.
- Remove check on directory existence in UploadDataSet.
- Add methods to handle notifications from data set verification
- Fix inconsistency with notification in activation/deactivation
of non-existing workers
TXProofServ.cxx
- In Terminate, change the call to Exit(0) to ExitLoop() ; Exit(0) is
called in pmain.cxx.
TQueryResult.cxx
- Make a owned copy of the input list (instead of just storing the pointer) to
allow proper cleaning.
Revision
15656 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 3 09:33:50 2006 UTC (8 years, 6 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 25370 byte(s)
Diff to
previous 15649
From Jan:
This patch adds following issues:
- public dataset management
- separation of directories for different users
- adding TProofServ::HandleDataSets method
- spliting communication in UploadDataSet in two parts (checking name
and saving)
- I also added these methods:
virtual Int_t UploadDataSet(const char *dataset,
TList *files,
const char *dest = 0,
Int_t opt = kAskUser,
TList *skippedFiles = 0) = 0;
virtual Int_t CreateDataSet(const char *dataset,
TList *files,
Int_t opt = kAskUser) = 0;
- and added arguments to
TList *GetDataSets(const char *dir = 0);
void ShowDataSets(const char *dir = 0);
Revision
15649 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Jul 1 12:05:49 2006 UTC (8 years, 6 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 24252 byte(s)
Diff to
previous 15507
From Maarten:
- Rename TPacketizer2 to TPacketizer
- Introduce a new development version named TPacketizerDev
- Implement packetizer selection via the PROOF input list.
The packetizer is selected by adding a object like:
TNamed("PROOF_Packetizer","TMyPacketizer")
Revision
15507 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jun 21 16:18:27 2006 UTC (8 years, 7 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 24250 byte(s)
Diff to
previous 15338
From Gerri:
The patch implements the following new functionality:
- Shutdown of idle sessions when quitting ROOT; if not idle the session
is shutdown as soon as processing terminates; it is possible to delay
the automatic shutdown by a tunable amount of time via a new directive
in the xrootd config file 'xpd.shutdown' (see xpd.cf.example).
- New static method TProof::Reset(const char *url) to hard-cleanup an
user area (implemented for Xproofd only); this implied quite some
additions in XrdProofdProtocol.
- Possibility to temporary remove / re-insert a worker from the active list
TProof::DeactivateWorker(const char *ord)
TProof::ActivateWorker(const char *ord)
with 'ord' the ordinal numer, e.g. "0.3" .
- A default url for the disk pool
const char *TVirtualProof::GetDataPoolUrl()
It is set by default to a string send back by the master, but it can
be changed via
void TVirtualProof::SetDataPoolUrl(const char *url)
Jan should then adapt his code to use this as default.
- Posibility to timeout Collect; for now this is only used at forced
termination.
The patch includes many small changes and bug fixes. One of the most important
is in TXNetSystem (a bug preventing correct treatment of multiple request
to the same redirector).
Revision
15338 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 5 22:51:14 2006 UTC (8 years, 7 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 23355 byte(s)
Diff to
previous 15312
From Gerri:
base/inc/TVirtualProof.h, proof/inc/TProof.h, proof/src/TProof.cxx
proof/src/TProofProgressDialog.cxx:
- fix a problem with the progress dialog when detaching a session:
a new signal CloseProgressDialog() is introduced, as well as the
possibility to empty the list of submitted queries at once via
TProof::Remove().
proofx/inc/TXHandler.h, .cxx:
- add generic argument to HandleInput() and HandleError().
proofx/inc/TXProofMgr.h, .cxx:
- move to new signature for HandleInput(), HandleError().
proof/inc/TSlave.h:
- add method to flush underlying socket.
proofx/inc/TXSlave.h, .cxx:
- move to new signature for HandleInput(), HandleError().
- implement new method to flush underlying socket.
proofx/inc/TXSocket.h, .cxx:
- Add method to flush socket.
- Handle interrupt messages in the reader thread.
- Remove interrupt semaphore (not needed any more).
- Remove timeout argument from GetInterrupt (not needed any more).
proofx/inc/TXProofServ.h, .cxx:
- move to new signature for HandleInput(), HandleError().
- implement interrupt handling in HandleInput().
- implement dedicated version of LockSession to deal with new format
of session tag (this is a bug fix).
proofd/inc/XrdProofConn.h, .cxx:
- Add mutex protection in the SendRecv method (it can be called from both
the reader and main threads).
proofd/src/XrdProofdProtocol.cxx:
- use an asynchronous message (instead of a signal) for interrupts.
proofx/inc/LinkDef.h, TXSocketHandler.h, .cxx, TXUnixSocket.cxx:
- add TXSocketHandler in the dictionary.
- cosmetics.
Revision
15312 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 2 15:14:35 2006 UTC (8 years, 7 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 23306 byte(s)
Diff to
previous 15181
From Gerri:
large PROOF patch. Main issues addressed:
- Output redirection to log file at 'proofserv' startup (instead of
after Setup())
- Log messages activated at session creation
- Session sandbox restructuring in such a way that the unique session
tag, created by the top master, uniquely identifies the session on
all nodes, for example on top master:
<User_Sandbox>/session-<top_master_session_tag>/
master-0-<top_master_session_tag>/master-0-<top_master_session_tag>.log
On worker 0.0
<User_Sandbox>/session-<top_master_session_tag>/
worker-0.0-<worker_0.0_session_tag>/worker-0.0-<worker_0.0_session_tag>.log
- Automatic creation of the dataset dir
- Improved handling of error conditions
- Reorganization of TProofServ and XrdProofdProtocol
- Several bug fixes, in particular in XrdProofdProtocol
Revision
14752 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 19 10:57:44 2006 UTC (8 years, 9 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 22625 byte(s)
Diff to
previous 14687
From Gerri:
This is the big patch.
Comments:
- Client side:
- Remove use of plugin manager to avoid unwanted locks
- Improved treatment of error conditions
- Server side:
- Several new functionalities described in the release notes
Revision
14687 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 13 10:27:14 2006 UTC (8 years, 9 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 22509 byte(s)
Diff to
previous 14359
From Jan:
Changes to enable running from GUI instead of interaction on prompt
including adding skippedFiles return argument to UploadDataSet(),
TProof::GetDataSets() and changing ShowDataSet() methods as well as
enum EUploadDataSetAnswer to TVirtualProof.
VerifyDataSet returns now the number of missing files.
Changing all TSocket::Send on client side to Broadcast.
Correcting some synchronization problems and adding comments.
Using TUrl::SetPort to avoid default port 80.
When comparing user answer with "n", "none" was treated as "n".
Now we first compare with "none".
Revision
14355 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Mar 21 15:07:22 2006 UTC (8 years, 10 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 22621 byte(s)
Diff to
previous 13833
From Jan:
Adding EUploadDataSetOpt enum for options of UploadDataSet() and
UploadDataSetFromFile().
In TProof.cxx: adding static helper function
CollapseSlashesInPath(const char *path)
Adding few TProof methods for dataset upload and operations:
Int_t UploadDataSet(const char *files,
const char *dest,
const char *dataset,
Int_t opt = kAskUser);
Int_t UploadDataSetFromFile(const char *file,
const char *dest,
const char *dataset,
Int_t opt = kAskUser);
void ShowDataSets();
void ShowDataSet(const char *dataset);
Int_t RemoveDataSet(const char *dateset);
Int_t VerifyDataSet(const char *dataset);
TList* GetDataSet(const char *dataset);
Revision
13616 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Dec 10 16:51:57 2005 UTC (9 years, 1 month ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 21456 byte(s)
Diff to
previous 13055
From Gerri:
introduction of major new PROOF features. Main features:
- PROOF session manager which allows disconnect/reconnect from running
sessions
- use xrootd/xproofd as connection daemon
Much more extensive description in release notes.
Revision
12822 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 22 23:29:30 2005 UTC (9 years, 4 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 21016 byte(s)
Diff to
previous 12810
from Gerri:
- fix several issues with Begin() not being called when finalizing a query
done via TChain::Draw(), call setup code now also in Terminate().
- fix error with query progress dialog not finishing when analysing
subset of data set.
- add master and slave startup feedback code.
- fixes also a few additional problems with enabling/disabling of
Stop/Abort buttons and cleans up the treament of fOutputList in TQueryResult.
It is also make sure that there are no multiple copies of a TDSet in the
output list.
Revision
12727 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Sep 17 13:52:55 2005 UTC (9 years, 4 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 20730 byte(s)
Diff to
previous 12722
From Gerri:
New startup for slaves splitting TSlave::Init() in two parts:
TSlave::Init()
opens the connection and waits the "Okay" from the proofd
TSlave::SetupServ()
finalizes the setup of the server (TProofServ::Setup)
Coding convention fixes.
Revision
12722 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Sep 16 08:48:39 2005 UTC (9 years, 4 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 20742 byte(s)
Diff to
previous 12564
From Gerri:
Big patch supporting query queueing on the PROOF master, interogation and
interaction with the queue. Retrieval, finalization and archival of query
results and multiple PROOF sessions. Some other fixes:
- TMacro.h, .cxx
add method Checksum to get the MD5 of the current context
(needed for optimized selector reinitialization)
- Changes needed to create and fill the list of data sets (TROOT,
TDSet, TChain, TChainProof)
- A new method TSelector::IsStandardDraw() to check if a selector
is for standard draw actions
- TEventIter: fix for the missing last update (see above)
- Few protections in TPacketizers destructors
- Fix for code conventions in TPerfStats (the other will follow)
- Occasional missing last update of the progress bar (systematically
reproduced with SetParallel(1)): all this part is quite involved
and I have found a solution which does not harm but perhaps is not
the most elegant.
- SetParallel(0): the progress bar was not working at all in such a
case, since no packetizer is involved. Still it is useful to see
that things are not stuck, so I have added some progress messages
there too. The problem is that I have not found a way to get the total
number of entries from a data set without doing all the machinery
done in the packetizer.
Revision
12561 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 30 10:25:29 2005 UTC (9 years, 4 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 19114 byte(s)
Diff to
previous 12477
From Gerri:
This is the patch to add support for asynchronous queries.
The principal modifications are in TProof and TProofPlayer.
In TProof, I have separated the parsing of the received messages
from the selection of the socket (new method CollectInputFrom()):
the new method is called directly by TProofInputHandler::Notify()
in the case of asynchronous mode.
Also in TProof I have added a method to redirect the logs to a
temporary file, to avoid having them on the main window while doing
something else. The method is TProof::RedirectLog(), it uses freopen,
fdopen and dup2, and works well back and forth.
The content of the temp file can be displayed into a log window
(new GUI class TProofProgressLog), via a new button in the
progress dialog ("Show Logs").
In TProofPlayer I have created a new method Finalize() with the
final part of Process(): this is necessary to be able to finalize
the queries processed asychronously.
There are several many other small changes and fixes: a couple
of non-backward comaptibilities introduced with the previous
patch, many small issues in the GUI (the stop and abort buttons
were never disabled ...).
Also, in view of multi-sessions, it does not make much sense to
have one progress dialog per query: one per session is enough;
I have added a method ResetProgressDialog() to reset it when a
new query is started.
Finally, as anticipation of the next patch, this patch includes
support for a list of queries created by the master and described
by the new class TProofQuery.
The list is displayed by TProof::ShowQueries().
Revision
12477 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 15 15:57:18 2005 UTC (9 years, 5 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 17205 byte(s)
Diff to
previous 12337
From Gerri + some mods by me:
- This patch gets rid of TFTP, slightly modifying SendFile and CheckFile.
- The factorization of the technology dependent parts of TProof, TSlave
and TProofServ. In particular, I have moved the technicalities of Ping
and Interrupt from TProof to two new virtual methods in TSlave, which
will be overwritten in TXSlave.
In TSlave I have introduced the virtual method Init which will be
overwritten by TXSlave and is able to act on an open connection for
optimal fallback a la TXNetFile.
Slaves are created by TProof via the static method TSlave::Create
which uses the plugin manager to detect the presence of TXSlave.
In TProofServ I have made the technology-dependent methods
virtual (Setup, HandleSocketInput, HandleUrgentData, HandleSigPipe,
HandleSocketInputDuringProcess).
Revision
12337 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 18 16:20:53 2005 UTC (9 years, 6 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 17012 byte(s)
Diff to
previous 12284
From Gerri:
Big patch restructuring the authentication code so libCore does not depend
on libssl etc. anymore. Isolate the current authentication code behind a
plugin library to be loaded on demand.
Setup of a framework able to manage both sets of authentication modules
(the current one and the one based on xrdsec, coming soon).
Cleanup all direct reference to authentication in TSlave and TProofServ,
allowing for significant simplification for the forthcoming changes
in PROOF for XPD.
New module: auth
New files: base/inc/TVirtualAuth.h
auth/Module.Mk
auth/inc/LinkDefRoot.h
auth/inc/TRootAuth.h auth/inc/TRootSecContext.h
auth/src/TRootAuth.cxx auth/src/TRootSecContext.cxx
Moved files:
net/inc -> auth/inc : TAuthenticate.h THostAuth.h DaemonUtils.h AuthConst.h
net/src -> auth/src : TAuthenticate.cxx THostAuth.cxx DaemonUtils.cxx
Revision
12123 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jun 22 20:18:12 2005 UTC (9 years, 7 months ago) by
brun
Original Path:
trunk/proof/inc/TProof.h
File length: 17302 byte(s)
Diff to
previous 11687
From Constantin Loizides
This patch implements:
- decentralized, automatic mutex initialization,
see R__LOCKGUARD2 in TVirtualMutex
- PROOF parallel startup fixes
- more thread protection (in base, cont, meta, rest to be done)
- cleanups
From Eddy Offermann:
TString::Atoi and Atof are made const.
Revision
11687 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 28 16:14:28 2005 UTC (9 years, 8 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 16472 byte(s)
Diff to
previous 11363
From Gerri:
Patch introducing parallel startup of the slave servers. This new feature
will considerably reduce the startup time in PROOF setups with many 10's
to 100's of slaves. By default this feature is off, turn it on in the
[system].rootrc file by uncommenting the line:
Proof.ParallelStartup: yes
Summary of changes:
Index: Makefile
- Add the thread lib to PROOFLIBS
Index: base/inc/TVirtualMutex.h, base/src/TVirtualMutex.cxx
- Add global mutexes to protect printing and authentication
Index: base/src/TError.cxx
- Protect static buffer in DebugPrint with specific global mutex
Index: config/Makefile.depend
- Add dependence on thread lib for PROOF
Index: config/rootrc.in
- Add description of new envs
Proof.ParallelStartup, Auth.Timeout, ProofServ.UseSSH
Index: net/inc/TAuthenticate.h
- Add new member fTimeout to indicate timeout situations
and new method HasTimedOut() to retrieve it.
- Add new static member with the timeout value in sec
and method SetTimeOut() to set it
- Add new method CatchTimeOut() called at timeout expiration
Index: net/inc/THostAuth.h , net/src/THostAuth.cxx
- Add new method SetLast() to lower pririty of an attempted
protocol that has timed-out
Index: net/src/TAuthenticate.cxx
- Implementation of the new timeout setup using TTimer
- Add protection using specific global mutex
- change to start with lower case some local variables
in Authenticate
- re-introduce call to THostAuth::CountFailure() (which got
lost in a previous patch)
- Disable by default SSH for PROOF servers
- fix a couple of small memory leaks
Index: net/src/TPSocket.cxx
- Fix logic in Close() (if called too early (e.g. timeout)
the underlying socket can still be open and needs to be
closed).
Index: net/src/TSocket.cxx
- initialize member fTcpWindowSize in all constructors
- modify error logging after an unsuccessful authentication
attempt, checking for timeouts.
- disable SSH for PROOF servers
Index: proof/inc/TProof.h
- patch for parallel startup using threads:
- new methods SlaveStartupThread(void *) and
SubmasterStartupThread(void *) executed in threads
- add Bool_t argument to all implementations of StartSlaves
Index: proof/src/TProof.cxx
- patch for parallel startup using threads:
- add internal classes ProofThread and ProofThreadArg to keep
track of started threads and to pass arguments to threads
- cleanup fPlayer and fFeedBack in destructor
Index: rpdutils/src/rpdutils.cxx
- fix small memory leak
Index: thread/src/TThread.cxx
- initialize new global mutexes
Revision
11281 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 10 17:57:05 2005 UTC (9 years, 10 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 16329 byte(s)
Diff to
previous 11264
From Marek Biskup:
major new PROOF developments:
- access to PROOF directly via the TChain interface (creating a TDSet
in the background).
- access to PROOF based trees via the TTreeViewer
- fully implemented the TChain/TDSet::Draw() interface.
- PROOF sessions can now be browsed via the TBrowser
Revision
11047 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Feb 7 18:02:37 2005 UTC (9 years, 11 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 15665 byte(s)
Diff to
previous 10608
From Maarten and Kristjan Gulbrandsen:
Here is the patch with the restructured PROOF code. It parameterizes
PROOF startup, currently implementing "Standard", Condor, MLM and PEAC.
It can easily be extended with other "TProof" classes, e.g. AliEn Proof.
Or what ever next Grid implementation or scheduler comes along.
The MLM, Multi Level Master, code uses a basic packetizer, based on a
MSD (massstorage domain) tag. In MLM mode we have multi-tier client
server setup, like:
client -> super master -> sub master 0 -> slave[0..N]
...
-> sub master M -> slave[0..N]
It also contains a large number of smaller fixes. Credit for most of
the work goes to Kris!
We have tested this on multipe platforms (RH7.3, RH9, SL3) and in
multiple configurations. Should be stable.
Revision
10608 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 24 07:41:32 2004 UTC (10 years, 2 months ago) by
brun
Original Path:
trunk/proof/inc/TProof.h
File length: 12721 byte(s)
Diff to
previous 10328
From Maarten Ballintijn and Kristj�n Gulbrandsen
a patch and files that complete the benchmark package.
I strongly recommend using this for demos rather then the H1 example.
The README file should walk you through a complete demo, which should
not take more then maybe ten minutes or so. After you have some
data files generated, you can show significant parts of the sytem
in a minute or two.
I added a feedback request api to TProof, this simplifies things
a lot from a usability perspective. I also modified TDrawFeedback
to use gProof by default, again simplifying things.
Kris wrote the support scripts and fixed the benchmark
scripts to read the full Events.
Please try it out and have fun!
It is as simple as this (I use log level 2 to slow things
down a bit :-))
gROOT->Proof()
.L make_tdset.C
TDSet *d= make_tdset("/data1/tmp",2)
TDrawFeedback fb
gProof->AddFeedback("PROOF_ProcTimeHist")
gProof->AddFeedback("PROOF_LatencyHist")
gProof->AddFeedback("PROOF_EventsHist")
gProof->UploadPackage("event.par")
gProof->EnablePackage("event")
gEnv->SetValue("Proof.StatsHist",1);
gProof->SetLogLevel(2)
d->Process("EventTree_Proc.C")
Revision
10305 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Oct 13 15:34:18 2004 UTC (10 years, 3 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 12382 byte(s)
Diff to
previous 9322
add status word to TSlaveInfo to keep track if a slave is active,
not-active or bad. TSlaveInfo::Print() supports now the "active",
"notactive" and "bad" options, e.g.:
gProof->GetSlaveInfo()->Print("", "notactive")
or
gProof->GetSlaveInfo()->Print("opla*", "bad")
are now supported.
Revision
9322 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 25 17:27:09 2004 UTC (10 years, 7 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 12122 byte(s)
Diff to
previous 9063
From Maarten:
- new class TParameter
- new class TDrawFeedback
- fixes to the feedback of performance histograms
- selection of the packetizer
- cleanups
Example commands:
gROOT->Proof()
... package setup ...
TDSet *d = make_tdset(2)
gEnv->SetValue("Proof.StatsTrace",1)
gEnv->SetValue("Proof.StatsHist",1)
TList *fb = new TList
fb->SetName("FeedbackList")
fb->Add(new TObjString("EventsHist"))
fb->Add(new TObjString("CpuTimeHist"))
TDrawFeedback *dfb = new TDrawFeedback((TProof*)gProof)
gProof->AddInput(fb)
d->Process("EventTree_Proc.C","")
Revision
9063 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun May 30 23:14:18 2004 UTC (10 years, 7 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 11366 byte(s)
Diff to
previous 8746
From Maarten:
- Cleanup and refactor packetizer functionality into utility classes
- Fix bugs in round-robin distribution of work
- Fix bugs in processing sub-range of the TDSet
- Add "slaves per file node monitoring" histogram and trace event
- Rename TPacketizer2 into stable TPacketizer, in preparation
for further packetizer developement
Revision
8746 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 29 23:43:38 2004 UTC (10 years, 8 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 11340 byte(s)
Diff to
previous 8239
From Maarten:
Can now use 1 slave server:
- 1 or more slaves -> parallel (i.e. run on slave servers)
- 0 slaves -> sequential (execute on/in master)
before the option of 1 slave was not possible, because we always
reverted in that case to running on the master.
Revision
8239 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 19 00:11:19 2004 UTC (10 years, 11 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 11320 byte(s)
Diff to
previous 7682
Big authentication patch by Gerri:
General purpose:
Add support for 'authenticated' sockets on client side
and prepare for support of server authenticated sockets.
Main changes:
o TSocket, TPsocket:
Added support of 'authenticated' sockets: authentication
is delegated to TSocket by calling a static method
CreateAuthSocket() returning a TSocket*.
TSocket is now the only class calling TAuthenticate.
o TFTP, TNetFile, TSlave:
modified to cope with new socket authentication scheme.
o TAuthDetails replaced by TSecContext containing:
- local authentication info
- expiration time
- pointer to a security context for the method (if any)
- information for cleanup (via TSecContextCleanup)
o A list of valid TSecContext has been added to TROOT,
accessible via gROOT->GetListOfSecContexts().
o THostAuth rewritten using arrays to avoid multiple use
of 'new'; functionality extended by the addition of
several new methods.
o TAuthenticate:
- Loading of information from .rootauthrc has been optimized;
this allowed to simplify method signatures and drop several
methods. Also collection and transmission of authentication
information from TSlave to TProofServ gets simplified by the
new scheme.
- Added support for server dependent directives in .rootauthrc
- Added check for changes in .rootauthrc each time a new
TAuthenticate is instantiated, so that changes in the file
are picked-up interactively.
- Checking for an existing TSecContext (previously TAuthDetails)
has been improved
- Improved diagnostics for SshAuth
- Enlarged support for authentication method indication in protocol:
UsrPwd: rootup/proofup
SRP: roots/proofs (already supported)
Krb5: rootk/proofk (already supported)
Globus: rootg/proofg
SSH: rootsh/proofsh
UigGid: rootug/proofug
o GlobusAuth.cxx, Krb5Auth.cxx, SRPAuth.cxx
- Adapted to new class TSecContext
- Added support for improved search for reusable TSecContext
- Drop globals used to store established security contexts
(saved in TSecContext) and related methods
o Automatic creation of <RootDir>/etc/system.rootauthrc from
compilation flags; this has priority on old envs
'Rootd.Authentication' and 'Proofd.Authentication' and is
superseded by $HOME/.rootauthrc
o Automatic creation of <RootDir>/etc/system.authdaemonrc from
compilation flags; this is superseded by $HOME/.rootauthrc
o rpdutils:
- several almost identical methods moved in from rootd/proofd
- several new methods to simplify manipulation of the
authentication tab file
- moved (and improved) check for running of sshd in RpdSshAuth,
performed only in case of failure (to avoid spurious messages
printed by sshd in /var/log/messages)
o proofd.cxx, rootd.cxx
- increased protocol version
- all initialization stuff (included authentication and
login) done via RpdInitSession
- postpone opening of parallels sockets after authentication
(to solve problem of Kerberos/Globus authentication with
parallel sockets)(rootd)
- Fixed problem with kerberos and globus authentication in rootd
with parallel sockets.
Revision
7409 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Oct 7 21:09:55 2003 UTC (11 years, 3 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 11432 byte(s)
Diff to
previous 7406
From Gerri:
Index: README/README.AUTH
o Updated
Index: globusauth/src/GlobusAuth.cxx
o Drop use of environment variables (DEFAULTUSER,AUTHREUSE,PROMPTUSER)
Index: krb5auth/src/Krb5Auth.cxx
o Drop use of environment variables (DEFAULTUSER,AUTHREUSE,PROMPTUSER)
Index: net/inc/TAuthenticate.h
Index: net/src/TAuthenticate.cxx
o Drop use of environment variables (DEFAULTUSER,AUTHREUSE,PROMPTUSER)
o Fix problem with defaults
o Fix problem with method ReadAuthRc when reading an empty .rootauthrc
o Fix problem with method ReadAuthRc when updating information for an
existing THostAuth
Index: proof/inc/TProof.h
o Propagation of new fSRPPwd flag
Index: proof/inc/TProofServ.h
o Propagation of new fSRPPwd flag
Index: proof/src/TProofServ.cxx
o Propagation of new fSRPPwd flag
Index: proof/src/TSlave.cxx
o Propagation of new fSRPPwd flag
Index: rpdutils/src/rpdutils.cxx
o Fix small problem with uninitialized variables to avoid
compiler complains (from Ioannis Papadopoulos).
Index: srputils/src/SRPAuth.cxx
o Drop use of environment variables (DEFAULTUSER,AUTHREUSE,PROMPTUSER)
Revision
7406 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Oct 7 14:03:03 2003 UTC (11 years, 3 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 11369 byte(s)
Diff to
previous 7262
From Gerri:
clib/inc/rsalib.h, clib/src/rsalib.c
o Random seed initialization moved from rsalib.c to in rootd.cxx,
proofd.cxx and TAuthenticate.
o Introduced counter to avoid infinite loops during key generation
etc/rpdauth.allow
o Introduced default with all authentication methods allowed in
rpdauth.allow
globusauth/src/GlobusAuth.cxx
o Secure RSA public transmission to servers (receiving a server
key)
o Added test on Argc() before use of the Argv() arguments
o Use isatty to check if interactive session
krb5auth/src/Krb5Auth.cxx
o Secure RSA public transmission to servers (receiving a server
key)
o Added test on Argc() before use of the Argv() arguments
o Use isatty to check if interactive session
net/inc/TAuthenticate.h, net/src/TAuthenticate.cxx
o Secure RSA public transmission to servers (receiving a server
key)
o Added possibility for a "default" THostAuth instantiation valid
for all hosts if anything more specific is not found.
Used by TProofServ/TAuthenticate for host without specific
authentication directives in proof.conf .
o Random seed initialization moved from rsalib.c to in rootd.cxx,
proofd.cxx and TAuthenticate.
o Introduced counter to avoid infinite loops during key generation
o Fixed potential problem with SSH master-to-slave authentication;
force failure if, for some reason, the slave is not accepting
the standard key files (depending on the user ssh config
directives, this could cause interactive prompt for password
on the master, therefore hanging the system).
Specific directives to avoid prompting are passed via command
line with the '-o' ssh option.
o Fixed problem with forming the message used to notify an SSH
failure
o Use mkstemp instead of tmpnam
o Use isatty to check if interactive session
o Avoid creating duplicates of TAuthDetails instantiation for
offset = -1
o Fixed a few inconsistency of debug levels error messages after
failed authentications
o Fixed a few inconsistency between authentication method names
and ROOT environment variable names
o Fixed problem with null passwd sending in ClearAuth
o Fixed problem with method attempting order during negotiation
o Add possibility to avoid check on localhost for testing purposes
(in method GetAuthMeth)
net/src/THostAuth.cxx
o Added possibility for a "default" THostAuth instantiation valid
for all hosts if anything more specific is not found.
Used by TProofServ/TAuthenticate for host without specific
authentication directives in proof.conf .
proof/inc/TProof.h, proof/src/TProof.cxx
o Moved collection of Authentication information for slaves from
TProof to TProofServ
proof/inc/TProofServ.h, proof/src/TProofServ.cxx
o Improved transmission of RSA public key between TSlave and
TProofServ
o Moved collection of Authentication information for slaves
from TProof to TProofServ
o Added test on Argc() before use of the Argv() arguments
proof/src/TSlave.cxx
o Improved transmission of RSA public key between TSlave and
TProofServ.
Added possibility to securely forward the SRP password to
the master (ROOT environment variable: Proof.SendSRPPwd,
default 0 - off).
o Removed checks on Proofd.Authentication in TSlave; security
stuff is setup in TProofServ and used in TAuthenticate
proofd/src/proofd.cxx
o Random seed initialization moved from rsalib.c to in rootd.cxx,
proofd.cxx and TAuthenticate.
rootd/src/rootd.cxx
o Random seed initialization moved from rsalib.c to in rootd.cxx,
proofd.cxx and TAuthenticate.
rpdutils/inc/rpdp.h, rpdutils/src/rpdutils.cxx
o Secure RSA public transmission from clients (sending a server
key)
o Fixed ambiguity with method index resolving from name due to
the fact that 'usrpwd' contains the string 'srp'
o Add file existence check before trying open
o Add a few debug messages
o Fixed problem with domain checking in daemon.access
('cern.ch uidgid' or '.cern.ch uidgid' were not accepted)
o Fixed problem with null passwd receiveing in RpdUser
rpdutils/src/ssh.cxx
o Fixed function name in debug message in ssh.cxx
o Use mkstemp instead of mktemp
srputils/src/SRPAuth.cxx
o Secure RSA public transmission to servers (receiving a server
key)
Revision
7262 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 11 23:12:19 2003 UTC (11 years, 4 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 11415 byte(s)
Diff to
previous 7175
From Gerri:
This patch contains Maarten's suggestions, and the fixes I have done
since then.
There was problem in the transmission of the password to master/slaves
that I believe was causing the hanging ...
Revision
6243 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Mar 4 17:29:29 2003 UTC (11 years, 10 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 10272 byte(s)
Diff to
previous 5751
implementation of package manager. Package manager allows the distribution,
installation and setting up of user code in the PROOF sandbox environment.
The package manager distributes so called PAR files, which are standard
tarred and gziped files, but with extension .par. A file "mylibs.par" is
required to untar into a directory "mylibs". A PAR file contains in addition
to the user's code and libraries one special directory PROOF-INF that contains
two scripts: BUILD.sh and SETUP.C. BUILD.sh is a shell script that is
used to build the user's libraries on the PROOF cluster (which might be
of a different architecture/compiler then the user's machine). SETUP.C is
a ROOT macro that is used to load the user's libraries, built by BUILD.sh,
and to do any other kind of setup needed to run with the user libraries.
These scripts are executed in the package directory (not the PROOF-INF
directory). An example of a BUILD.sh is:
#! /bin/sh
make libEvent.so
An example of SETUP.C is:
void SETUP()
{
gSystem->Load("libEvent");
}
The package manager API is:
gProof->UploadPackage()
gProof->EnablePackage()
gProof->ClearPackage()
Revision
4514 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri May 10 11:07:22 2002 UTC (12 years, 8 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 10326 byte(s)
Diff to
previous 4385
added define R__GLOBALSTL for the old aCC compiler that has all STL classes
in global namespace. Changed all references to __HP_aCC>=53000 to use this
new define. Also new aCC does not have the R__TEMPLATE_OVERLOAD_BUG anymore.
Revision
4182 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Mar 15 17:23:40 2002 UTC (12 years, 10 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 9760 byte(s)
Diff to
previous 4180
implemented TProof::CheckFile() which is called by SendFile() to make sure
files are not send when not needed. They are only send when the md5 is
changed. It also makes a check on the remote nodes with unique file system
to see if the file is already there (by sending the md5 over in a message
of type kPROOF_CHECKFILE).
Revision
3699 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 18 14:24:10 2002 UTC (13 years ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 8292 byte(s)
Diff to
previous 3657
relocate some proof file to remove circular dependencies between the
treeplayer and proof shared libraries. Also rename TPlayer to TProofPlayer
et al. Also remove Begin() from TSelector, use Begin(0) instead. This to
be backward compatible with existing TSelector scripts that don't have
Begin() and therefor give warnings about Begin() being hidden in the base
class.
Revision
1750 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Mar 5 15:34:32 2001 UTC (13 years, 10 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 7929 byte(s)
Diff to
previous 1246
add PROOF specific interrupt handler class for handling ctlr-c when PROOF
is active. Is possible due to a recent fix in TSystem which now correctly
calls the Notify()'s of all handlers registered for a signal (before
only the Notify() of the first handler for a trapped signal was called).
Revision
1205 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 13 15:13:57 2000 UTC (14 years, 1 month ago) by
brun
Original Path:
trunk/proof/inc/TProof.h
File length: 8088 byte(s)
Diff to
previous 1203
W A R N I N G !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
==================================================================
A very long list of changes in this pre-release of version 3.00.
We have modified the signature of many functions (in particular TObject)
to introduce more constness in the system.
You must change your code if your class derives from TObject and uses
one of the modified functions such as ls, Print, Compare, Hash, etc.
The modified functions in TObject have the following signature:
virtual TObject *Clone() const;
virtual Int_t Compare(const TObject *obj) const;
virtual void Delete(Option_t *option=""); // *MENU*
virtual void DrawClass() const; // *MENU*
virtual void DrawClone(Option_t *option="") const; // *MENU*
virtual void Dump() const; // *MENU*
virtual TObject *FindObject(const TObject *obj) const;
virtual char *GetObjectInfo(Int_t px, Int_t py) const;
virtual ULong_t Hash() const;
virtual void Inspect() const; // *MENU*
virtual Bool_t IsEqual(const TObject *obj) const;
virtual void ls(Option_t *option="") const;
virtual void Print(Option_t *option="") const;
A similar operation has been done with classes such as TH1, TVirtualPad,
TTree, etc.
Revision
106 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Jun 11 12:25:48 2000 UTC (14 years, 7 months ago) by
rdm
Original Path:
trunk/proof/inc/TProof.h
File length: 6470 byte(s)
Diff to
previous 3
now use 1093 as port number for proofd service. This port number has been
assigned by IANA for proofd usage. In the old scheme we used two ports
for PROOF: one for the master server (proofserv) and another for the client
servers (proofslave). This has now been changed to a single port (proofd)
and the server type is communicated by the client to the server.
Update the /etc/services file from:
proofserv 349/tcp
proofslave 359/tcp
rootd 432/tcp
to
proofd 1093/tcp
rootd 1094/tcp
And /etc/inetd.conf from:
proofserv stream tcp nowait root /usr/proof/bin/proofd proofserv /usr/proof
proofslave stream tcp nowait root /usr/proof/bin/proofd proofslave /usr/proof
to
proofd stream tcp nowait root /usr/proof/bin/proofd /usr/proof
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.