Hi Andy, (Artem, Jean-Yves, Wilko, Jerome, ....) It is interesting as this question also came up today in talking to the Arda guys (CC-d). Given that Jean-Yves also got into a funny situation we should probably be more explicit about which types of systems are currently supported. The following is my understanding of the current situation. Please comment and then I'll stick it visibly off the xrootd webpage and/or add the "simple examples" style documentation... Currently supported: (a) xrootd/olbd (ro) + mps + MSS - xrootd/olbd provides read-only access to files across multiple servers - new files added be "put" into MSS with whatever external mechanism is desirable, at which point the xrootd/olbd read-only system can see and serve them. The "put" can also drop the file onto a disk (in addition to putting it into MSS) if it likes. - no support for file updates - the MSS catalog is the ultimate list of files available in the system and must be checked by whatever mechanism adds new files to make sure a particular doesn't exist (and isn't being updated) - The simplest mechanism for replication of files is simply to restage from MSS (although others which copy between servers can be plugged in if desired) - mps scripts provide basic mechanism for managing/purging the disk cache - This particular solution covers a reasonable portion of the necessary functionality for HEP - system running at SLAC, CCIn2p3, RAL and setup for testing at Cornell (b) xrootd/olbd (ro), no MSS backend - xrootd/olbd provides read-only access to files across multiple servers - With respect to NFS or rootd, the advantage here is that the olbd system provides a means of finding all files across many servers via a single entry point (the redirector) and w/o a heavyweight catalog - if a server goes down, files on that server become unavailable unless: - there is still a replica on a server which is still up - some other MSS-like or the proxy mechanism is used to contact another xrootd system out in the world and find/access the file - new files can be added to the system simply by dropping them on one of the disks - file "update" functionality not really supported (unless user arranges by hand to overwrite all replicas on the disks via non-xrootd mechanism) - internal replication for load can be triggered by xrootd/olbd, but requires a backend server-to-server copy plugin (which could be xrootd/olbd/xrdcp itself, but has the obvious issues if one copies the file from the already too-loaded server to the less loaded one) - trivial system for small sites to setup just to serve their event data (background triggers, pileup events, conditions, ....) - used at CNAF, FZK plus a bunch of university sites (c) xrootd/olbd (r/w), no MSS backend - this is like the BaBar skim output buffer as used since last fall (which we use to write temporary output from individual jobs before a "merge" process merges many jobs' output for eventual "publishing" for analysis users) - all files should be read/written via the xrootd interface - if no replication mechanism is deployed (and no servers are down) no problems with either update or write - useful "temporary" output buffer for production activities before file is "put" into system like (a) above - used at SLAC (although BaBar production skimming may still need to remove a few workarounds it was using at the beginning) Proposed additional system: (d) xrootd/olbd (ro or r/w) + SRM backend - new files can be added either via the xrootd interface (if r/w) or the SRM one - when an xrootd (configured for r/w) creates a new file it must ask/tell SRM after selecting a data server - when SRM adds a new file to the disk cache (or underlying MSS) xrootd can just discover it as in (a) above - files can be updated via either interface - when xrootd updates a file, it must tell SRM to allow internal replicas to be removed - when SRM updates a file it must tell xrootd to invalidate that entry in its redirector cache (and SRM must update all replicas) - files can be _read_ via xrootd with _no_ communication necessary between xrootd/olbd and SRM if file is on disk - files can be _read_ via SRM with _no_ communication necessary between xrootd/olbd and SRM - files can be _read_ via xrootd with a mssgwcmd-style communication with SRM if file is not currently on disk (and MSS exists) - xrootd/olbd decides when files should be replicated and chooses a server based on load info and free space info from SRM, SRM on the back end arranges for the replication (using whatever mechanism it likes, e.g. restaging from MSS or disk-to-disk copy) - while (a) can be used for most of the bulk data in HEP, this solution has some advantages for some methods of managing user data, etc. Anything I've missed or gotten wrong? Pete On Wed, Mar 02, 2005 at 12:10:47PM -0800, Andrew Hanushevsky wrote: > Hi JY, > > Hmmm, it works out in practice that checking for the file every time in > HPSS significantly slows down the open process. That also would mean that > if HPSS is down, the disk cache becomes inaccessible since xrootd > can't check the hpss copy. Something we've decided to avoid here for > robustness reasons (there is already an option to check during file > creation). > > The real problem here is that the person is using a backdoor to modify > the file. Had the user modified the file on the disk cache and let it > migrate back down, there would not be a problem. Using backdoors opens > a whole range of problems, only one of which the user experienced. > > I'm not opposed to putting in an option to do the check but I think > serious consideration needs to be given whether this is *really* the > mode of operation you want or will be happy with. > > Andy > > On Wed, 2 Mar 2005, Jean-Yves Nief wrote: > > > hello all, > > > > one of the D0 user accessing files via xrootd encountered the > > following issue: after having accessed a file via xrootd (so after being > > staged from the "master" copy stored in HPSS), he modified the master > > copy in HPSS and wanted to access the modified file via xrootd: but as > > the old version of the file was already on the disk cache, no staging > > occured of course (but that is the expected behavior obviously) and he > > grabbed the old one version, which is not what he wanted. Well as an > > emergency solution and as it was the first time it happened, I've > > deleted the old version on the disk cache so he could proceed. > > However, I think it would be nice to have some control on the validity > > of the cache: one solution would be to add the following test: in case > > the file is already in the cache, compare the creation time on the cache > > disk (t1) with the last modified time of the file stored in HPSS (t2): > > if t1<t2 then restage the file. > > it will be a very small overhead to the mechanism, each time a file is > > accessed: it have just to issue a "statx" request to the MSS. > > or maybe there is a more simple solution. > > cheers, > > JY > > > > ------------------------------------------------------------------------- Peter Elmer E-mail: [log in to unmask] Phone: +41 (22) 767-4644 Address: CERN Division PPE, Bat. 32 2C-14, CH-1211 Geneva 23, Switzerland -------------------------------------------------------------------------