[ https://issues.apache.org/jira/browse/HIVE-12421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15009159#comment-15009159 ]
Alan Gates commented on HIVE-12421: ----------------------------------- [~roshan_naik] can comment further, but I think the thinking was some writers have no ability to buffer their inbound data, so blocking on a lock could force them to drop data. We should change this to have the writer pass a maximum wait time. If this code fails to obtain a lock in the allowed time then it can throw an exception that makes clear what happened and let the writer decide what to do from there. > Streaming API TransactionBatch.beginNextTransaction() does not wait for locks > ----------------------------------------------------------------------------- > > Key: HIVE-12421 > URL: https://issues.apache.org/jira/browse/HIVE-12421 > Project: Hive > Issue Type: Bug > Components: HCatalog, Transactions > Affects Versions: 0.14.0 > Reporter: Eugene Koifman > Assignee: Eugene Koifman > > TransactionBatchImpl.beginNextTransactionImpl() has > {noformat} > LockResponse res = msClient.lock(lockRequest); > if (res.getState() != LockState.ACQUIRED) { > throw new TransactionError("Unable to acquire lock on " + endPt); > } > {noformat} > This means that if there are any competing locks already take, this will > throw an Exception to client. This doesn't seem like the right behavior. It > should block. > We could also add TransactionBatch.beginNextTransaction(long timeoutMs) to > give the client more control. > cc [~alangates] [~sriharsha] -- This message was sent by Atlassian JIRA (v6.3.4#6332)