Marton Bod created HIVE-23052:
---------------------------------
Summary: Optimize lock enqueueing in TxnHandler
Key: HIVE-23052
URL: https://issues.apache.org/jira/browse/HIVE-23052
Project: Hive
Issue Type: Improvement
Reporter: Marton Bod
Assignee: Marton Bod
TxnHandler::enqueueLockWithRetry uses select for update (S4U) to retrieve the
next lock id from the metastore. This locks the NEXT_LOCK_ID table for
concurrent lock requests until the transaction has been committed.
Since this creates contention, we should reduce the scope of this S4U, thereby
locking the table for only as long as necessary. Currently, within the same
txn, after the initial S4U, we also insert the transaction components
(TXN_COMPONENTS table) before committing, even though they are independent and
do not make use of the lock id. So factoring out these txn_component inserts
should decrease the time the next_lock_id table is locked and thus increase
concurrency.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)