[ 
https://issues.apache.org/jira/browse/HDDS-12195?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Attila Doroszlai resolved HDDS-12195.
-------------------------------------
    Fix Version/s: 2.0.0
       Resolution: Fixed

> Missing skip() Method Causes Performance Issues in OzoneFSInputStream
> ---------------------------------------------------------------------
>
>                 Key: HDDS-12195
>                 URL: https://issues.apache.org/jira/browse/HDDS-12195
>             Project: Apache Ozone
>          Issue Type: Bug
>    Affects Versions: 1.4.1
>            Reporter: Star Poon
>            Assignee: Star Poon
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.0.0
>
>
> The skip() method is not implemented in `OzoneFSInputStream`. As a result, it 
> defaults to `java.io.InputStream#skip`, which uses `read()` and slows down 
> performance.
> Here is a stack trace showing the issue:
> {code:java}
> ...
>     at 
> org.apache.hadoop.hdds.scm.XceiverClientGrpc.sendCommandAsync(XceiverClientGrpc.java:538)
>     at 
> org.apache.hadoop.hdds.scm.XceiverClientGrpc.sendCommandWithRetry(XceiverClientGrpc.java:430)
>     at 
> org.apache.hadoop.hdds.scm.XceiverClientGrpc.lambda$sendCommandWithTraceIDAndRetry$0(XceiverClientGrpc.java:373)
>     at 
> org.apache.hadoop.hdds.tracing.TracingUtil.executeInSpan(TracingUtil.java:169)
>     at 
> org.apache.hadoop.hdds.tracing.TracingUtil.executeInNewSpan(TracingUtil.java:149)
>     at 
> org.apache.hadoop.hdds.scm.XceiverClientGrpc.sendCommandWithTraceIDAndRetry(XceiverClientGrpc.java:365)
>     at 
> org.apache.hadoop.hdds.scm.XceiverClientGrpc.sendCommand(XceiverClientGrpc.java:346)
>     at 
> org.apache.hadoop.hdds.scm.storage.ContainerProtocolCalls.readChunk(ContainerProtocolCalls.java:359)
>     at 
> org.apache.hadoop.hdds.scm.storage.ContainerProtocolCalls.lambda$readChunk$2(ContainerProtocolCalls.java:346)
>     at 
> org.apache.hadoop.hdds.scm.storage.ContainerProtocolCalls.tryEachDatanode(ContainerProtocolCalls.java:146)
>     at 
> org.apache.hadoop.hdds.scm.storage.ContainerProtocolCalls.readChunk(ContainerProtocolCalls.java:345)
>     at 
> org.apache.hadoop.hdds.scm.storage.ChunkInputStream.readChunk(ChunkInputStream.java:442)
>     at 
> org.apache.hadoop.hdds.scm.storage.ChunkInputStream.readChunkDataIntoBuffers(ChunkInputStream.java:419)
>     at 
> org.apache.hadoop.hdds.scm.storage.ChunkInputStream.readChunkFromContainer(ChunkInputStream.java:404)
>     at 
> org.apache.hadoop.hdds.scm.storage.ChunkInputStream.prepareRead(ChunkInputStream.java:336)
>     at 
> org.apache.hadoop.hdds.scm.storage.ChunkInputStream.read(ChunkInputStream.java:176)
>     at 
> org.apache.hadoop.hdds.scm.storage.ByteArrayReader.readFromBlock(ByteArrayReader.java:54)
>     at 
> org.apache.hadoop.hdds.scm.storage.BlockInputStream.readWithStrategy(BlockInputStream.java:362)
>     at 
> org.apache.hadoop.hdds.scm.storage.ExtendedInputStream.read(ExtendedInputStream.java:56)
>     at 
> org.apache.hadoop.hdds.scm.storage.ByteArrayReader.readFromBlock(ByteArrayReader.java:54)
>     at 
> org.apache.hadoop.hdds.scm.storage.MultipartInputStream.readWithStrategy(MultipartInputStream.java:96)
>     at 
> org.apache.hadoop.hdds.scm.storage.ExtendedInputStream.read(ExtendedInputStream.java:56)
>     at 
> org.apache.hadoop.fs.ozone.OzoneFSInputStream.read(OzoneFSInputStream.java:64)
>     at java.base/java.io.InputStream.skip(InputStream.java:547)    at 
> java.base/java.io.FilterInputStream.skip(FilterInputStream.java:149)    at 
> java.base/java.io.FilterInputStream.skip(FilterInputStream.java:149)    at 
> io.trino.filesystem.hdfs.HdfsTrinoInputStream.skip(HdfsTrinoInputStream.java:116)
>  
> ...{code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to