hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wei Zheng (JIRA)" <>
Subject [jira] [Commented] (HIVE-15376) Improve heartbeater scheduling for transactions
Date Tue, 20 Dec 2016 18:58:58 GMT


Wei Zheng commented on HIVE-15376:

Previously heartbeat was started inside acquireLocksWithHeartbeatDelay, which will first call
acquireLocks and then startHeartbeat (if there's lock). So just calling acquireLocks is fine
as it didn't start any heartbeat.

But now we've moved the startHeartbeat inside acquireLocks, so we need a param to differentiate
cases whether or not to start heartbeat.

> Improve heartbeater scheduling for transactions
> -----------------------------------------------
>                 Key: HIVE-15376
>                 URL:
>             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

View raw message