[ https://issues.apache.org/jira/browse/HDDS-4285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17203321#comment-17203321 ]
Yiqun Lin edited comment on HDDS-4285 at 9/28/20, 3:58 PM: ----------------------------------------------------------- Looking into this, I am thinking of two approaches for this: 1. Initialize UGI instance in ChunkInputStream (or other invoke places), then set UGI in XceiverClientSpi, extract UGI and get token string in ContainerProtocolCalls method. 2. Make UGI as a thread local field in ContainerProtocolCalls, and then reset ContainerProtocolCalls#UGI in ChunkInputStream or other places. #1 is a more generic approach, UGI stored in XceiverClientSpi can be reused in other places. was (Author: linyiqun): Looking into this, I am thinking of two approaches for this: 1. Initialize UGI instance in ChunkInputStream (or other invoke places), then set UGI in XceiverClientSpi, extract UGI and get token string in ContainerProtocolCalls method. 2. Make UGI as a thread local field in ContainerProtocolCalls, and then set UGI in ChunkInputStream or other similar places. #1 is a more generic approach, UGI stored in XceiverClientSpi can be reused in other places. > Read is slow due to the frequent usage of UGI.getCurrentUserCall() > ------------------------------------------------------------------ > > Key: HDDS-4285 > URL: https://issues.apache.org/jira/browse/HDDS-4285 > Project: Hadoop Distributed Data Store > Issue Type: Improvement > Reporter: Marton Elek > Assignee: Marton Elek > Priority: Major > Attachments: image-2020-09-28-16-19-17-581.png, > profile-20200928-161631-180518.svg > > > Ozone read operation turned out to be slow mainly because we do a new > UGI.getCurrentUser for block token for each of the calls. > We need to cache the block token / UGI.getCurrentUserCall() to make it faster. > !image-2020-09-28-16-19-17-581.png! > To reproduce: > Checkout: https://github.com/elek/hadoop-ozone/tree/mocked-read > {code} > cd hadoop-ozone/client > export > MAVEN_OPTS=-agentpath:/home/elek/prog/async-profiler/build/libasyncProfiler.so=start,file=/tmp/profile-%t-%p.svg > mvn compile exec:java > -Dexec.mainClass=org.apache.hadoop.ozone.client.io.TestKeyOutputStreamUnit > -Dexec.classpathScope=test > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: ozone-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: ozone-issues-h...@hadoop.apache.org