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)