You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Ritesh Shukla (Jira)" <ji...@apache.org> on 2023/03/06 17:36:00 UTC

[jira] [Assigned] (HDDS-8085) Reduce network traffic in XceiverClientGrpc::sendCommandWithRetry

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

Ritesh Shukla reassigned HDDS-8085:
-----------------------------------

    Assignee: Ritesh Shukla

> Reduce network traffic in XceiverClientGrpc::sendCommandWithRetry 
> ------------------------------------------------------------------
>
>                 Key: HDDS-8085
>                 URL: https://issues.apache.org/jira/browse/HDDS-8085
>             Project: Apache Ozone
>          Issue Type: Improvement
>          Components: Ozone Client
>            Reporter: Rajesh Balamohan
>            Assignee: Ritesh Shukla
>            Priority: Major
>              Labels: performance
>
> Context: simple "select count(*) from store_sales" causes lot of network traffic in Ozone than in HDFS.
> Probing revealed good amount of time being spent in splits, which needs to be fixed separately.
> Another potential fix is that, XceiverClientGrpc gets a list of DataNodes which it can communicate with in the task. 
> {color:#0747A6}If DN matches that of localhost, it should prefer localhost rather than communicating with another node. 
> Request is get "InetAddress.getLocalHost().getHostName().trim()", and compare with the set of hosts available in "DatanodeDetails". If found, prefer that DN rather than remote node.
> {color}
> https://github.com/apache/ozone/blob/master/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientGrpc.java#L397-L440 
> Stacktrace below many not match with apache ozone, but pasting it to provide codepath details.
> {noformat}
> 	at java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1742)
> 	at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908)
> 	at org.apache.hadoop.hdds.scm.XceiverClientGrpc.sendCommandWithRetry(XceiverClientGrpc.java:398)
> 	at org.apache.hadoop.hdds.scm.XceiverClientGrpc.lambda$sendCommandWithTraceIDAndRetry$0(XceiverClientGrpc.java:330)
> 	at org.apache.hadoop.hdds.scm.XceiverClientGrpc$$Lambda$71/1551468933.get(Unknown Source)
> 	at org.apache.hadoop.hdds.tracing.TracingUtil.executeInSpan(TracingUtil.java:174)
> 	at org.apache.hadoop.hdds.tracing.TracingUtil.executeInNewSpan(TracingUtil.java:148)
> 	at org.apache.hadoop.hdds.scm.XceiverClientGrpc.sendCommandWithTraceIDAndRetry(XceiverClientGrpc.java:324)
> 	at org.apache.hadoop.hdds.scm.XceiverClientGrpc.sendCommand(XceiverClientGrpc.java:305)
> 	at org.apache.hadoop.hdds.scm.storage.ContainerProtocolCalls.readChunk(ContainerProtocolCalls.java:283)
> 	at org.apache.hadoop.hdds.scm.storage.ChunkInputStream.readChunk(ChunkInputStream.java:432)
> 	at org.apache.hadoop.hdds.scm.storage.ChunkInputStream.readChunkDataIntoBuffers(ChunkInputStream.java:404)
> 	at org.apache.hadoop.hdds.scm.storage.ChunkInputStream.readChunkFromContainer(ChunkInputStream.java:389)
> 	- eliminated <0x00000007823965b0> (a org.apache.hadoop.hdds.scm.storage.ChunkInputStream)
> 	at org.apache.hadoop.hdds.scm.storage.ChunkInputStream.prepareRead(ChunkInputStream.java:321)
> 	- locked <0x00000007823965b0> (a org.apache.hadoop.hdds.scm.storage.ChunkInputStream)
> 	at org.apache.hadoop.hdds.scm.storage.ChunkInputStream.read(ChunkInputStream.java:207)
> 	- locked <0x00000007823965b0> (a org.apache.hadoop.hdds.scm.storage.ChunkInputStream)
> 	at org.apache.hadoop.hdds.scm.storage.ByteBufferReader.readFromBlock(ByteBufferReader.java:56)
> 	at org.apache.hadoop.hdds.scm.storage.BlockInputStream.readWithStrategy(BlockInputStream.java:303)
> 	- locked <0x0000000783646d30> (a org.apache.hadoop.hdds.scm.storage.BlockInputStream)
> 	at org.apache.hadoop.hdds.scm.storage.ExtendedInputStream.read(ExtendedInputStream.java:64)
> 	- locked <0x0000000783646d30> (a org.apache.hadoop.hdds.scm.storage.BlockInputStream)
> 	at org.apache.hadoop.hdds.scm.storage.ByteBufferReader.readFromBlock(ByteBufferReader.java:56)
> 	at org.apache.hadoop.ozone.client.io.KeyInputStream.readWithStrategy(KeyInputStream.java:273)
> 	- locked <0x0000000783646ca0> (a org.apache.hadoop.ozone.client.io.KeyInputStream)
> 	at org.apache.hadoop.ozone.client.io.KeyInputStream.read(KeyInputStream.java:250)
> 	- locked <0x0000000783646ca0> (a org.apache.hadoop.ozone.client.io.KeyInputStream)
> 	at org.apache.hadoop.fs.ozone.OzoneFSInputStream.read(OzoneFSInputStream.java:110)
> 	at org.apache.hadoop.fs.FSDataInputStream.read(FSDataInputStream.java:152)
> 	at org.apache.parquet.hadoop.util.H2SeekableInputStream$H2Reader.read(H2SeekableInputStream.java:81)
> 	at org.apache.parquet.hadoop.util.H2SeekableInputStream.readFully(H2SeekableInputStream.java:90)
> 	at org.apache.parquet.hadoop.util.H2SeekableInputStream.readFully(H2SeekableInputStream.java:75)
> 	at org.apache.parquet.hadoop.ParquetFileReader$ConsecutivePartList.readAll(ParquetFileReader.java:1427)
> 	at org.apache.parquet.hadoop.ParquetFileReader.readNextRowGroup(ParquetFileReader.java:846)
> 	at org.apache.hadoop.hive.ql.io.parquet.vector.VectorizedParquetRecordReader.checkEndOfRowGroup(VectorizedParquetRecordReader.java:447)
> 	at org.apache.hadoop.hive.ql.io.parquet.vector.VectorizedParquetRecordReader.nextBatch(VectorizedParquetRecordReader.java:425)
> 	at org.apache.hadoop.hive.ql.io.parquet.vector.VectorizedParquetRecordReader.next(VectorizedParquetRecordReader.java:377)
> 	at org.apache.hadoop.hive.ql.io.parquet.vector.VectorizedParquetRecordReader.next(VectorizedParquetRecordReader.java:99)
> 	at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.doNext(HiveContextAwareRecordReader.java:365)
> 	at org.apache.hadoop.hive.ql.io.HiveRecordReader.doNext(HiveRecordReader.java:82)
> 	at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.next(HiveContextAwareRecordReader.java:118)
> 	at org.apache.hadoop.hive.ql.io.HiveContextAwareRecordReader.next(HiveContextAwareRecor
> {noformat}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org