Dayakar M created HIVE-29762:
--------------------------------

             Summary: Synchronization logic added as a part of HIVE-24428 is 
having hash collision issue.
                 Key: HIVE-29762
                 URL: https://issues.apache.org/jira/browse/HIVE-29762
             Project: Hive
          Issue Type: Bug
            Reporter: Dayakar M
            Assignee: Dayakar M


Synchronization logic added as a part of HIVE-24428 is having hash collision 
issue.



To prevent concurrent issues as a part of _add_partitions_ request, added 
_com.google.common.util.concurrent.Striped.lock(stripes)_ mechanism which 
internally creates lock objects by hashing the given key. Here it also uses the 
stripes value while calculating the hash. Due to which for some unrelated keys 
it is generating the same hash which resulting same key used for locking. 
The intent of this locking mechanism is to prevent concurrent requests for the 
add_partitions request for the same table but due to hash collision for 
unrelated keys(db.table names) it is using same lock object which is preventing 
other unrelated add_partition requests.
In this case if stripe size increased to some bigger value like 1024 then it is 
generating different hash which results different keys but there could be still 
hash collision can happen which need to share same lock for unrelated keys.

So this has to be checked and need a proper fix.



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

Reply via email to