[ 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)