[ 
https://issues.apache.org/jira/browse/HIVE-10128?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14387951#comment-14387951
 ] 

Gunther Hagleitner commented on HIVE-10128:
-------------------------------------------

maybe it's because it's late, but it seems you're not actually using the 
threadLocalHashMap in the container. That seems to kind of defeat the purpose. 
Also, I think threadLocalHashMap is a confusing name for a "getter".

Is there a reason to keep the non thread safe methods around? You could just 
force everyone to use a getter object w/ position to access right? There 
wouldn't be a perf overhead as far as I can tell.

> BytesBytesMultiHashMap does not allow concurrent read-only access
> -----------------------------------------------------------------
>
>                 Key: HIVE-10128
>                 URL: https://issues.apache.org/jira/browse/HIVE-10128
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Gopal V
>            Assignee: Sergey Shelukhin
>             Fix For: llap
>
>         Attachments: HIVE-10128.01.patch, HIVE-10128.02.patch, 
> HIVE-10128.patch, hashmap-after.png, hashmap-sync-source.png, hashmap-sync.png
>
>
> The multi-threaded performance takes a serious hit when LLAP shares 
> hashtables between the probe threads running in parallel. 
> !hashmap-sync.png!
> This is an explicit synchronized block inside ReusableRowContainer which 
> triggers this particular pattern.
> !hashmap-sync-source.png!
> Looking deeper into the code, the synchronization seems to be caused due to 
> the fact that WriteBuffers.setReadPoint modifies the otherwise read-only 
> hashtable.
> To generate this sort of result, run LLAP at a WARN log-level, to avoid all 
> the log synchronization that otherwise affects the thread sync.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to