[root] / trunk / proof / proof / inc / TProofMgr.h Repository:
ViewVC logotype

Log of /trunk/proof/proof/inc/TProofMgr.h

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 47238 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 13 19:22:52 2012 UTC (2 years, 2 months ago) by ganis
File length: 8670 byte(s)
Diff to previous 42858
Fix a few issues preventing proper cleaning of the 'data' directory when running stressProof in Proof-Lite

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: 8684 byte(s)
Diff to previous 41904
   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 41904 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Nov 11 11:17:00 2011 UTC (3 years, 2 months ago) by ganis
File length: 8088 byte(s)
Diff to previous 40193
   Extend TProofMgr::Ping functionality to 'xrootd' too. This is useful to test if
   an xrootd server is available at a given address. There is a new second argument,
   a boolean to switch to that:

        TProofMgr::Ping("<host>[:<port>]", checkxrd)

   The default for checkxrd is kFALSE, so that the old behaviour is kept.
   The patch also fixes the default port values, so that specifying 1093 is not needed.

Revision 40193 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Jul 11 16:07:08 2011 UTC (3 years, 6 months ago) by ganis
File length: 8062 byte(s)
Diff to previous 38789
  - In TProofMgr, add 'ping' functionality to test in non-blocking way if a PROOF
    service is listening at a given port of a given host (adapted from the macro
    function CheckXproofdAt in getProof.C) .
    Practical in many occasions.

Revision 38789 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Apr 9 18:03:24 2011 UTC (3 years, 9 months ago) by pcanal
File length: 8019 byte(s)
Diff to previous 38580
TProofMgr: Anything that is added to the list of Sockets must have a Close method.
TROOT: properly lookp over fSockets (knowning Close remove the object from the list)
and properly look up Close for non-TSockets.

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: 7970 byte(s)
Diff to previous 30791
  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 30791 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Oct 19 07:07:32 2009 UTC (5 years, 3 months ago) by ganis
File length: 7931 byte(s)
Diff to previous 30171
Fix a few member initializations in default constructors

Revision 30171 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Sep 15 13:43:12 2009 UTC (5 years, 4 months ago) by ganis
File length: 7915 byte(s)
Diff to previous 29609
   Add support for method TProofMgr::Find to run 'find' on the sandbox and
   allowed directories

Revision 29609 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jul 29 10:06:49 2009 UTC (5 years, 5 months ago) by ganis
File length: 7826 byte(s)
Diff to previous 29579
    Make the recently introduced TProofMgr::Rm return an error code instead of void.

Revision 29579 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Jul 25 12:19:25 2009 UTC (5 years, 6 months ago) by ganis
File length: 7815 byte(s)
Diff to previous 28746
   In TProofMgr, add support for the following functionality:
       - sandbox file listing and browsing
       - sandbox file removal
       - file upload, download
   See http://root.cern.ch/drupal/content/accessing-sandbox for details.

Revision 28746 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu May 28 13:03:29 2009 UTC (5 years, 7 months ago) by ganis
File length: 6771 byte(s)
Diff to previous 27442
   Cleanup of the TProofMgr fucntions DetachSession and ShutdownSession, and better
   handling of the internal list registration, to fix potential segvs when reopening
   a PROOF session inside the same ROOT session.
   Now, for both normal PROOF and PROOF-Lite, it should be possible to close a
   session handled by the TProof object 'p' with any of the following:

       root[] delete p
   or
       root[] TProof::Mgr("<server>")->ShutdownSession(p)
   or
       root[] TProof::Mgr("<server>")->ShutdownSession(id_p)

       (where id_p is the local session id given by TProof::Mgr("<server>")->QuerySessions())

   and re-open a session on the same server right after.

   Other fixes / changes:
    - New auxilliary methods:
      - TProofMgr::DiscardSession(TProof *) to remove a session from the internal
        list of a manager;
      - TProofDesc *TProofMgr::GetProofDesc(TProof *) to quickly get the TProofDesc
        container associated with a session by object
    - Make sure that the default port is always 1093 (in a couple of places it was 1094!)
    - Improve some comments

Revision 27442 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Feb 12 19:15:43 2009 UTC (5 years, 11 months ago) by ganis
File length: 6583 byte(s)
Diff to previous 26951
Cosmetic realignment

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: 6569 byte(s)
Diff to previous 26823
   - 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 26823 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Dec 11 09:26:32 2008 UTC (6 years, 1 month ago) by ganis
File length: 6565 byte(s)
Diff to previous 25918
   - In logs. filter-out by default the service messages used for memory monitoring;
     a new check box has been added to the log dialog box to force display of those
     messages; this reduces considerably the number of 'noise' messages and also the
     default soze of logs.

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: 6553 byte(s)
Diff to previous 24588
   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 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: 6461 byte(s)
Diff to previous 24540

  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 24540 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Jun 25 14:03:08 2008 UTC (6 years, 7 months ago) by ganis
File length: 6370 byte(s)
Diff to previous 22635
Invalidate the TProofMgr when the physical connection is closed

Revision 22635 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 13 10:50:20 2008 UTC (6 years, 10 months ago) by rdm
File length: 6331 byte(s)
Diff to previous 22428
move all PROOF related libraries under the new proof directory.

Revision 22428 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 3 18:17:03 2008 UTC (6 years, 10 months ago) by brun
Original Path: trunk/proof/inc/TProofMgr.h
File length: 6331 byte(s)
Diff to previous 20882
From Federico:
Changes to support the gcc -weffc++ compiler option.

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/proof/inc/TProofMgr.h
File length: 6104 byte(s)
Diff to previous 20862
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 20862 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sun Nov 18 14:51:42 2007 UTC (7 years, 2 months ago) by ganis
Original Path: trunk/proof/inc/TProofMgr.h
File length: 6104 byte(s)
Diff to previous 20682
   Synchronize with braches/dev/proof r20835

   Summary:

   TProofServ:
     - read session.rootrc with level kEnvChange to be able to change existing
       settings
     - Avoid deleting a query result twice in some special cases
     - Fix a problem with the initialization of fKeptQueries
   rootrc.in:
     - restore default settings the asynchronous reading
   TFileCacheRead:
     - add missing protection in ReadBuffer
   TEventIter:
     - Enable the usage of TTreeCache
   XrdProofdProtocol:
     - Additional check on the ownership of the unix socket
     - Improve notification during Reset
     - Reduce default timeout on admin requests and make it configurable
   XrdProofConn:
     - Use the configurable maxtry everywhere where relevant
   TPacketizerAdaptive:
     - Store info on all the processed packets in per-worker lists

   TProofMgr, TXProofMgr, TXSocket, XProofProtocol, XrdProofdProtocol:
     - Add possibility for the admin to broadcast a message to the connected users

   getProof:
     - Add missing protection

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/TProofMgr.h
File length: 6033 byte(s)
Diff to previous 19826
  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 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/proof/inc/TProofMgr.h
File length: 5886 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/proof/inc/TProofMgr.h
File length: 5934 byte(s)
Diff to previous 18353
remove :$ from tag line

Revision 18353 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 19 15:14:10 2007 UTC (7 years, 10 months ago) by rdm
Original Path: trunk/proof/inc/TProofMgr.h
File length: 5944 byte(s)
Diff to previous 17035
From Gerri:
- Support for multiple ROOT versions on a PROOF cluster.
  TProofMgr::ShowROOTVersions() giving the following output:

root [0] TProof::Mgr("")->ShowROOTVersions()
----------------------------------------------------------

Available versions (tag ROOT-vers remote-path PROOF-version):

 * cvs 5.15/03 /home/ganis/local/root/head/head 12
   dev 5.15/03 /home/ganis/local/root/head/root 12

----------------------------------------------------------

- TProofMgr::SetROOTVersion(const char *version_tag)

    to change the default for the user, eg

root [1] TProof::Mgr("")->SetROOTVersion("dev")
root [2] TProof::Mgr("")->ShowROOTVersions()
----------------------------------------------------------

Available versions (tag ROOT-vers remote-path PROOF-version):

   cvs 5.15/03 /home/ganis/local/root/head/head 12
 * dev 5.15/03 /home/ganis/local/root/head/root 12

----------------------------------------------------------

Available version are defined by the administrator via the
"xpd.rootsys" directive:

xpd.rootsys /home/ganis/local/root/head/head cvs
xpd.rootsys /home/ganis/local/root/head/root dev

in the xrootd config file.

- Improve error reporting in TXSocket
- Fix a problem with resetting a label in TProofProgressDialog

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/TProofMgr.h
File length: 5842 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 16969 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Nov 28 12:10:52 2006 UTC (8 years, 1 month ago) by rdm
Original Path: trunk/proof/inc/TProofMgr.h
File length: 5520 byte(s)
Diff to previous 15507
From Gerri:
This patch eliminates TVirtualProof, TVirtualProofMgr and TVirtualProofDesc.
The first is integrated in TProof, the second in TProofMgr and the third
becomes TProofDesc defined in TProofMgr.h.

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/TProofMgr.h
File length: 2041 byte(s)
Diff to previous 13616
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 13616 - (view) (download) (as text) (annotate) - [select for diffs]
Added Sat Dec 10 16:51:57 2005 UTC (9 years, 1 month ago) by rdm
Original Path: trunk/proof/inc/TProofMgr.h
File length: 1993 byte(s)
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.

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.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9