Marton Bod created HIVE-23236: --------------------------------- Summary: Remove the global lock from acquireLock Key: HIVE-23236 URL: https://issues.apache.org/jira/browse/HIVE-23236 Project: Hive Issue Type: Improvement Reporter: Marton Bod Assignee: Marton Bod
Currently we have a global lock (NEXT_LOCK_ID) when running enqueueLock, because the algorithm in checkLock requires the locks to have a well defined order, and also requires that every lock component is already stored in the RDBMS before checking the locks. Proposed approach: * Enqueue lock without a global lock, using a sequence for getting the next lock ID * Insert the locks as usual, but with an additional timestamp (enqueued_at) * Check lock should check all enqueued locks for the given db/table/partition but order should be determined based on the enqueued_at time instead of the lockID * If there is no blocking lock, update the state to acquired as usual -- This message was sent by Atlassian Jira (v8.3.4#803005)