You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Slim Bouguerra (Jira)" <ji...@apache.org> on 2019/11/13 17:59:00 UTC
[jira] [Commented] (HIVE-22492) Amortize lock contention due to
LRFU accounting
[ https://issues.apache.org/jira/browse/HIVE-22492?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16973569#comment-16973569 ]
Slim Bouguerra commented on HIVE-22492:
---------------------------------------
{code}
IO-Elevator-Thread-9 Blocked CPU usage on sample: 609ms
org.apache.hadoop.hive.llap.cache.LowLevelLrfuCachePolicy.notifyUnlock(LlapCacheableBuffer) LowLevelLrfuCachePolicy.java:125
org.apache.hadoop.hive.llap.cache.CacheContentsTracker.notifyUnlock(LlapCacheableBuffer) CacheContentsTracker.java:173
org.apache.hadoop.hive.llap.cache.LowLevelCacheImpl.unlockBuffer(LlapDataBuffer, boolean) LowLevelCacheImpl.java:391
org.apache.hadoop.hive.llap.cache.LowLevelCacheImpl.decRefBuffers(List) LowLevelCacheImpl.java:379
org.apache.hadoop.hive.llap.io.encoded.OrcEncodedDataReader.returnData(Reader$OrcEncodedColumnBatch) OrcEncodedDataReader.java:759
org.apache.hadoop.hive.llap.io.encoded.OrcEncodedDataReader.returnData(Object) OrcEncodedDataReader.java:110
org.apache.hadoop.hive.llap.io.decode.EncodedDataConsumer.returnSourceData(EncodedColumnBatch) EncodedDataConsumer.java:100
org.apache.hadoop.hive.llap.io.decode.EncodedDataConsumer.consumeData(EncodedColumnBatch) EncodedDataConsumer.java:92
org.apache.hadoop.hive.llap.io.decode.EncodedDataConsumer.consumeData(Object) EncodedDataConsumer.java:34
org.apache.hadoop.hive.ql.io.orc.encoded.EncodedReaderImpl.readEncodedColumns(int, StripeInformation, OrcProto$RowIndex[], List, List, boolean[], boolean[], Consumer) EncodedReaderImpl.java:532
org.apache.hadoop.hive.llap.io.encoded.OrcEncodedDataReader.performDataRead() OrcEncodedDataReader.java:407
org.apache.hadoop.hive.llap.io.encoded.OrcEncodedDataReader$4.run() OrcEncodedDataReader.java:266
org.apache.hadoop.hive.llap.io.encoded.OrcEncodedDataReader$4.run() OrcEncodedDataReader.java:263
java.security.AccessController.doPrivileged(PrivilegedExceptionAction, AccessControlContext) AccessController.java (native)
javax.security.auth.Subject.doAs(Subject, PrivilegedExceptionAction) Subject.java:422
org.apache.hadoop.security.UserGroupInformation.doAs(PrivilegedExceptionAction) UserGroupInformation.java:1688
org.apache.hadoop.hive.llap.io.encoded.OrcEncodedDataReader.callInternal() OrcEncodedDataReader.java:263
org.apache.hadoop.hive.llap.io.encoded.OrcEncodedDataReader.callInternal() OrcEncodedDataReader.java:110
org.apache.tez.common.CallableWithNdc.call() CallableWithNdc.java:36
org.apache.hadoop.hive.llap.daemon.impl.StatsRecordingThreadPool$WrappedCallable.call() StatsRecordingThreadPool.java:110
java.util.concurrent.FutureTask.run() FutureTask.java:266
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) ThreadPoolExecutor.java:1142
java.util.concurrent.ThreadPoolExecutor$Worker.run() ThreadPoolExecutor.java:617
java.lang.Thread.run() Thread.java:745
{code}
> Amortize lock contention due to LRFU accounting
> -----------------------------------------------
>
> Key: HIVE-22492
> URL: https://issues.apache.org/jira/browse/HIVE-22492
> Project: Hive
> Issue Type: Improvement
> Reporter: Slim Bouguerra
> Assignee: Slim Bouguerra
> Priority: Major
>
> LRFU eviction policy can be a major source of contention under high load.
> This can be see on the following profiles.
> To fix this the idea is to use a batching wrapper to amortize the locking contention.
> The trick i a common way to amortize locking as explained here http://www.ece.eng.wayne.edu/~sjiang/pubs/papers/ding-09-BP-Wrapper.pdf
--
This message was sent by Atlassian Jira
(v8.3.4#803005)