dcache / dcache-cta Goto Github PK
View Code? Open in Web Editor NEWdCache driver for CTA
License: GNU Affero General Public License v3.0
dCache driver for CTA
License: GNU Affero General Public License v3.0
To identify bottlenecks the following performance metrics are required:
As CTA has it's own job queue, if dCache is restarted after request submition we might get an IO request and/or status update for a request, that is not in the dCache's flush/stage pool's queue. Thus we need a persistent store for all on-the-flight requests.
The HSM URI generated by the plugin must include configure hsm name and type
The currently used ManagedChannel is connected at configure stage and plugin fails to start if connection can't be created. more over, the re-connect on failure as well as error handling are missing.
The functionality of the driver depends on new NearlineStorage API (dCache/dcache#6141).
04 Jan 2022 11:36:58 [nioEventLoopGroup-3-8] [] Opening /osmcache/dcache/dcache-tpm103/data/0000F3B008DCC88C45028E0CDDA9A5ED004B for reading.
04 Jan 2022 11:37:26 [nioEventLoopGroup-3-8] [] xrootd server error while processing org.dcache.xrootd.protocol.messages.CloseRequest@362106c3 (please report this to [email protected])java.lang.IllegalStateException: Handle is closed
at org.dcache.pool.repository.v5.ReadHandleImpl.getReplicaFile(ReadHandleImpl.java:102)
at org.dcache.pool.nearline.NearlineStorageHandler$FlushRequestImpl.getReplicaUri(NearlineStorageHandler.java:969)
at org.dcache.nearline.cta.ForwardingFlushRequest.getReplicaUri(ForwardingFlushRequest.java:26)
at org.dcache.nearline.cta.xrootd.DataServerHandler.getFile(DataServerHandler.java:490)
at org.dcache.nearline.cta.xrootd.DataServerHandler.doOnClose(DataServerHandler.java:333)
at org.dcache.nearline.cta.xrootd.DataServerHandler.doOnClose(DataServerHandler.java:84)
at org.dcache.xrootd.core.XrootdRequestHandler.requestReceived(XrootdRequestHandler.java:186)
at org.dcache.xrootd.core.XrootdRequestHandler.channelRead(XrootdRequestHandler.java:99)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
at org.dcache.xrootd.core.XrootdAuthenticationHandler.channelRead(XrootdAuthenticationHandler.java:216)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
The CTA doesn't have a special success
even on stage.Thus closing the destination file should trigger StageRequest#complete
The IO testing is based on manual store/restore with integration of running dCache. A simpler unit-test based alternative is desired.
When a submitted request completes (successfully or unsuccessfully) it stays in the queue and never removed, which will endup with OOM at some point.
in some situations we want driver to pause until admin enables it again.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.