[ https://issues.apache.org/jira/browse/HIVE-15376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15764929#comment-15764929 ]
Wei Zheng commented on HIVE-15376: ---------------------------------- param startHeartbeat is needed for testLockTimeout, where we don't open transaction and don't send heartbeat, but just acquire locks. The old acquireLocksWithHeartbeatDelay cannot be used here, as that is to control heartbeat delay. We don't have heartbeat in testLockTimeOut. > 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.10.patch, > HIVE-15376.11.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)