XROOTD-L Archives

Support use of xrootd by HEP experiments


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Fabrizio Furano <[log in to unmask]>
19 Oct 2006 16:45:47 +0200Thu, 19 Oct 2006 16:45:47 +0200
text/plain (78 lines)

  what JY says is correct, the only thing I want to add is that, since 
you are writing C/C++ code (it seems) you may directly use xrdclient, 
avoiding the posix wrappers which are built on it. Just have a look at 
XrdClient.hh for the public interface.


Jean-Yves Nief wrote:
> hello Dan,
> Daniel Engh wrote:
>> Hi,
>> I am from Vanderbilt University trying to hook up the 
>> Vanderbilt/UT-Knoxville  L-Store/IBP storage backend to xrootd.
>> basically IBP is a bit-torrent like distributed data-storage system, 
>> LORS adds some file-system functionality analogous to inodes,  and the 
>> new Vanderbilt L-Store is an SRM complient meta-data layer on top of IBP.
>> I have been playing with the latest development version of xrootd 
>> downloadable from the web:
>> xrootd-20060523-1741.src.tgz
>> I initially want to do a very simple file streaming test  of a root 
>> file on ibp.  I'm not an expert on posix i/o but I think I need only
>> use my posix-complient methods:
>>   int fd = xio_open(my_uri, O_RDONLY);
>> and
>>   xio_read(fd, buffer, bufsize)
>> I need then 2 things from xrootd:
>> 1. location of the posix i/o calls I should modify
>> ie.  where is an xrootd posix open() call I can replace with xio_open()
>> ie.  and then and xrootd posix  read() call I can replace with xio_read()
>> 2. how do I launch xrootd to use my modified xrootd module
>> 3. how do I use root to call this xrootd/ibp streamed file.
>> I've tested my lors/ibp libs with a simple c++ Hello IBP-world program.
>> And I can compile IBP libs into xrootd and get things like an xrootd 
>> init() call
>> to call xio_open() xio_read() and print out a hello-ibp message.
> on the client side, the Xrootd POSIX functions are for example: 
> XrdPosix_Open, XrdPosix_Lseek, XrdPosix_Read etc...
> don't forget to include:
> XrdPosix/XrdPosix.hh
> you might take a look at the XrdPosix package in any case (README, 
> etc...). You will find instructions on how to build the file URL in 
> order to open it through xrootd, compile etc... If you wish, I can send 
> you some sample code to use the posix clients + the make file.
> one other possibility (providing you are using the regular unix calls: 
> open, read, write, but that is not your case at the moment) is to use 
> the preload library. In that case, you can talk to a xrootd server 
> without changing any single line of code (and without recompiling): the 
> unix calls are redirected to the  xrootd calls. It is a pretty nice 
> feature, we have an experiment which is using it here (it has some 
> little disadvantages).
> hope this help,
> JY
>> Now I just need the correct place in xrootd to put in my ibp io commands.
>> Eventually I'd like to make xrootd recognize a couple of protocols named:
>> lors://  and lstore://  but for now I can masquerade as some other 
>> protocol
>> and just set up an xrootd service that is hard-coded to only look into 
>> its IBP setup.
>> thanks for any suggestions on how to get the latest code and trying 
>> some things out,
>> Dan