cern srm development benjamin coutourier shaun de witt chep06 - mumbai
TRANSCRIPT
![Page 1: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/1.jpg)
CERN SRM Development
Benjamin CoutourierShaun de Witt
CHEP06 - Mumbai
![Page 2: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/2.jpg)
Background Original version based on SRM 1.1
Specification implemented by CERN Latest version based on SRM 2.1.1
Specification Collaborative Effort
CERN (CH) RAL (UK)
Based on modified WSDL (http://sdm.lbl.gov/srm-wg/srm.v2.1.1.modified.wsdl)
![Page 3: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/3.jpg)
Tools
Based on modified WSDL (http://sdm.lbl.gov/srm-wg/srm.v2.1.1.modified.wsdl)
Selected gsoap-2.7.2
![Page 4: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/4.jpg)
Tools
cgsi-soap plugin Oracle (10.2.1) umbrello (
http://uml.sourceforge.net) g++ (3.2.3) valgrind
![Page 5: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/5.jpg)
Design Objectives
Low latency Short requests handled synchronously Longer requests (involving CASTOR
stager) mostly handled asynchronously Multi-threading architecture
Robustness Asynchronous requests stored in
database
![Page 6: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/6.jpg)
Design Objectives Interoperability
Actually a common theme with all SRMs Using common WSDL Tested CASTOR SRM with DCACHE
clients and DCACHE SRM with CASTOR clients
Robustness Load testing submitting many requests
near simultaneously – using Tier1 machines
![Page 7: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/7.jpg)
Design
DatabaseSRMServer
SRMDaemon
CASTORStager
CASTORNameserver
SRM
CASTOR
ClientClientClientClients
![Page 8: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/8.jpg)
Design
Significant reuse of CASTOR code dlf threadpools database services IObject model
![Page 9: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/9.jpg)
Server Design
Thread pool default 10 threads but can be
overridden Currently no maximum, but it should
probably exist Soap backlog
default 40 messages, but can be overridden
![Page 10: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/10.jpg)
Daemon Design
Four dedicated threads pool of threads for PUT requests pool of threads for GET requests single thread for COPY request single thread for SRM Garbage
collection Selection from database triggered
by database entry (TBC).
![Page 11: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/11.jpg)
Data Flow Summary Directory Functions
client – server – nameserver PrepareToXXX, Copy, putDone
client – server – daemon – stager Other Data Transfer
client - server Space Management
client - server
![Page 12: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/12.jpg)
Development Issues
gsoap Steep learning curve default namespace issues
sometimes generated ns1__, sometimes ns2__
We explicitly use srm__ API changes between minor releases
using same wsdl Meaning the generated API’s.
![Page 13: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/13.jpg)
Development Issues Umbrello
Not as robust or well documented as similar commercial tools
Spent several days recovering from undocumented problems.
ORACLE Need matching versions of client and
sever libraries (not v9 clients and v10 servers anyway
![Page 14: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/14.jpg)
Interoperability issues
SRM Specs do not state when/where to use status codes For a request like srmRm with
multiple files If any file succeeds, we return SUCCESS If all files fail, we return FAILURE Each file that is successful, we return
DONE Each file that fails we return FAILURE
![Page 15: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/15.jpg)
Interoperability Issues
Explanation in return status CASTOR SRM returns empty string DPM SRM returns NULL
Type Promotion Castor only supports Permanent file
types If client requests volatile or durable –
SRM returns SUCCESS Return PERMANENT is file structure
![Page 16: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/16.jpg)
Status By end of January
All methods implemented except Permission functions
Full regression test suite available Still to do
Permission functions VOMS integration Complete memory leak checking Thread Tuning/Signal handling/documentation
![Page 17: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/17.jpg)
Status
Few issues with interface to CASTOR still need investigating. Some methods only log first DLF call Some APIs which accept multiple files
only return a single result.
![Page 18: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/18.jpg)
CASTOR specific Only permanent files supported Space reservation is notional
Handled entirely within SRM with no reference to CASTOR
CASTOR storage considered semi-infinite
srmLs limits number of returns Configurable limit Set to 2048 currently
![Page 19: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/19.jpg)
CASTOR specific Suspend/Resume not supported Dynamic space compacting not
supported Pin lifetimes are advisory
Used in weighting CASTOR garbage collection policy
Pins are applied once files are staged putDone issued or file staged.
![Page 20: CERN SRM Development Benjamin Coutourier Shaun de Witt CHEP06 - Mumbai](https://reader036.vdocuments.us/reader036/viewer/2022082713/5697bfa31a28abf838c966cf/html5/thumbnails/20.jpg)
Castor Specific
Non-static TURL Need to call status to get new TURL
srmRmdir does not support recursion