[ https://issues.apache.org/jira/browse/HIVE-15376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15760406#comment-15760406 ]
Wei Zheng commented on HIVE-15376: ---------------------------------- Yes, the call from DbTxnManagrer.acquireLocks() always uses 0 for the delay param, which is not impacted by the change. Regarding testing heartbeat for R/O queries, I added a test case to testLockTimeout to show there's actually heartbeat being sent, otherwise the locks will be expired. Please see patch 10. > Improve heartbeater scheduling for transactions > ----------------------------------------------- > > Key: HIVE-15376 > URL: https://issues.apache.org/jira/browse/HIVE-15376 > Project: Hive > Issue Type: Bug > Components: Transactions > Affects Versions: 2.2.0 > Reporter: Wei Zheng > Assignee: Wei Zheng > Attachments: HIVE-15376.1.patch, HIVE-15376.2.patch, > HIVE-15376.3.patch, HIVE-15376.4.patch, HIVE-15376.5.patch, > HIVE-15376.6.patch, HIVE-15376.7.patch, HIVE-15376.8.patch, HIVE-15376.9.patch > > > HIVE-12366 improved the heartbeater logic by bringing down the gap between > the lock acquisition and first heartbeat, but that's not enough, there may > still be some issue, e.g. > Time A: a transaction is opened > Time B: acquireLocks is called (blocking call), but it can take a long time > to actually acquire the locks and return if the system is busy > Time C: as acquireLocks returns, the first heartbeat is sent > If hive.txn.timeout < C - A, then the transaction will be timed out and > aborted, thus causing failure. -- This message was sent by Atlassian JIRA (v6.3.4#6332)