hep icon indicating copy to clipboard operation
hep copied to clipboard

xrootd: implement a XRootD client in pure-Go

Open sbinet opened this issue 7 years ago • 3 comments

  • protocol: http://xrootd.org/doc/dev45/XRdv310.pdf
  • scalable service interface (ssi):
    • http://xrootd.org/doc/dev49/ssi_reference-V2.pdf
    • slides

sbinet avatar Dec 05 '17 15:12 sbinet

@ljanyst wrote in https://github.com/cern-eos/eos/issues/13#issuecomment-349547449

I would be unlikely to beat you. I was primarily interested in looking at the core
communication engine and seeing how I could design the asynchronous APIs
using the Go concepts. I probably would not even touch the distributed failure
 handling and recovery, which, honestly, is probably most of the work.

you are free to devote any amount of work you want on this. Fork it, break it: https://github.com/go-hep/xrootd I am mostly involved in the interpreter right now, and will then gaze at the ROOT I/O subsystem after that. so you definitely have a possible headstart :) That said, I can provide some blueprint if you want.

FYI: usually, in Go, we write and export synchronous APIs (and let users compose them with channels and goroutines in an asynchronous way if needed)

sbinet avatar Dec 06 '17 08:12 sbinet

@ljanyst not sure whether you are aware of it, but the xrootd client in Go is moving forward.

see:

  • https://github.com/go-hep/hep/issues/170
  • https://github.com/go-hep/hep/issues?q=is%3Aissue+is%3Aopen+label%3Axrootd
  • https://godoc.org/go-hep.org/x/hep/xrootd
  • https://go-hep.org/news/release-0.13.0/

BTW, if you have any insights about https://github.com/go-hep/hep/issues/250#issuecomment-401004496, that would be very much appreciated :)

sbinet avatar Jun 28 '18 16:06 sbinet

@sbinet I started a new job, so I have pretty much no time to work on anything I had planned to work before. I think, all of the auth stuff is custom and not covered by the protocol spec. When I implemented the C++ client, I just called the appropriate auth plugin in a way defined by the protocol. Gerri (@gganis) wrote these plugins, so he's the best person to ask about that.

ljanyst avatar Jun 28 '18 19:06 ljanyst