[
https://issues.apache.org/jira/browse/HIVE-23052?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marton Bod updated HIVE-23052:
------------------------------
Attachment: HIVE-23052.1.patch
Status: Patch Available (was: In Progress)
> 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
> Priority: Major
> Attachments: HIVE-23052.1.patch
>
>
> 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 moving these txn_component
> inserts before the S4U would 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)